From 9b7029dbf377646ca2f081aa37b36d62be6a9d3b Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Sat, 13 Jan 2024 20:36:37 +0100 Subject: [PATCH] Fix snowflake id generation --- Iceshrimp.Backend/Core/Helpers/IdHelpers.cs | 4 ++-- Iceshrimp.Backend/Core/Helpers/NumberExtensions.cs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Iceshrimp.Backend/Core/Helpers/IdHelpers.cs b/Iceshrimp.Backend/Core/Helpers/IdHelpers.cs index a82a75bb..752e521a 100644 --- a/Iceshrimp.Backend/Core/Helpers/IdHelpers.cs +++ b/Iceshrimp.Backend/Core/Helpers/IdHelpers.cs @@ -7,8 +7,8 @@ public static class IdHelpers { private const long Time2000 = 946684800000; public static string GenerateSlowflakeId() { - var cuid = new Cuid2(16); - var now = (long)DateTime.UtcNow.Subtract(DateTime.UnixEpoch).TotalSeconds; + var cuid = new Cuid2(8); + var now = (long)DateTime.UtcNow.Subtract(DateTime.UnixEpoch).TotalMilliseconds; var time = Math.Max(now - Time2000, 0); var timestamp = time.ToBase36().PadLeft(8, '0'); return timestamp + cuid; diff --git a/Iceshrimp.Backend/Core/Helpers/NumberExtensions.cs b/Iceshrimp.Backend/Core/Helpers/NumberExtensions.cs index fa5b68ec..027ad419 100644 --- a/Iceshrimp.Backend/Core/Helpers/NumberExtensions.cs +++ b/Iceshrimp.Backend/Core/Helpers/NumberExtensions.cs @@ -3,14 +3,14 @@ using System.Text; namespace Iceshrimp.Backend.Core.Helpers; public static class NumberExtensions { - private const string Base36Charset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + private const string Base36Charset = "0123456789abcdefghijklmnopqrstuvwxyz"; public static string ToBase36(this long input) { if (input == 0) return "0"; var result = new StringBuilder(); while (input > 0) { - result.Append(Base36Charset[(int)(input % 36)]); + result.Insert(0, Base36Charset[(int)(input % 36)]); input /= 36; } @@ -22,7 +22,7 @@ public static class NumberExtensions { var result = new StringBuilder(); while (input >= 0) { - result.Append(Base36Charset[input % 36]); + result.Insert(0, Base36Charset[input % 36]); input /= 36; }