From 937ed6b2b12f62b04f5c0f93300c604478235fb4 Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 12 Jun 2025 14:04:38 +0900 Subject: [PATCH] cast ids to string since they're lexicographically sortable automatically in both systems --- .gitignore | 1 + bot/misskey_service.py | 6 +++--- bot/pleroma_service.py | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index a75052a..ca682b7 100644 --- a/.gitignore +++ b/.gitignore @@ -183,3 +183,4 @@ cython_debug/ # Custom stuff *.db *.ini +reference/ diff --git a/bot/misskey_service.py b/bot/misskey_service.py index 510b32b..ddb8aa2 100644 --- a/bot/misskey_service.py +++ b/bot/misskey_service.py @@ -74,13 +74,13 @@ class MisskeyService(FediverseService): files = [self._convert_misskey_file(f) for f in note_data["files"]] return FediversePost( - id=note_data.get("id", ""), + id=str(note_data.get("id", "")), # Misskey IDs (aid/meid/ulid/objectid) are lexicographically sortable as strings text=note_data.get("text"), user=self._convert_misskey_user(note_data.get("user", {})), visibility=self._convert_misskey_visibility(note_data.get("visibility", "home")), created_at=note_data.get("createdAt"), files=files, - reply_to_id=note_data.get("replyId") + reply_to_id=str(note_data.get("replyId", "")) if note_data.get("replyId") else None ) def _convert_misskey_notification(self, notification_data: Dict[str, Any]) -> FediverseNotification: @@ -90,7 +90,7 @@ class MisskeyService(FediverseService): post = self._convert_misskey_post(notification_data["note"]) return FediverseNotification( - id=notification_data.get("id", ""), + id=str(notification_data.get("id", "")), # Misskey IDs are lexicographically sortable as strings type=self._convert_misskey_notification_type(notification_data.get("type", "")), user=self._convert_misskey_user(notification_data.get("user", {})), post=post, diff --git a/bot/pleroma_service.py b/bot/pleroma_service.py index 21320d1..15b5a68 100644 --- a/bot/pleroma_service.py +++ b/bot/pleroma_service.py @@ -90,7 +90,7 @@ class PleromaService(FediverseService): plain_text = re.sub(r'<[^>]+>', '', content) if content else None return FediversePost( - id=str(status_data.get("id", "")), + id=str(status_data.get("id", "")), # Pleroma IDs (snowflake format) are lexicographically sortable as strings text=plain_text, user=self._convert_mastodon_user(status_data.get("account", {})), visibility=self._convert_mastodon_visibility(status_data.get("visibility", "public")), @@ -106,7 +106,7 @@ class PleromaService(FediverseService): post = self._convert_mastodon_status(notification_data["status"]) return FediverseNotification( - id=str(notification_data.get("id", "")), + id=str(notification_data.get("id", "")), # Pleroma IDs are lexicographically sortable as strings type=self._convert_mastodon_notification_type(notification_data.get("type", "")), user=self._convert_mastodon_user(notification_data.get("account", {})), post=post,