diff --git a/.gitignore b/.gitignore index 960a84d..a75052a 100644 --- a/.gitignore +++ b/.gitignore @@ -181,5 +181,5 @@ cython_debug/ .cursorindexingignore # Custom stuff -gacha_game.db -config.ini +*.db +*.ini diff --git a/bot/bot_app.py b/bot/bot_app.py index 3721edc..e41c452 100644 --- a/bot/bot_app.py +++ b/bot/bot_app.py @@ -3,13 +3,13 @@ import traceback from parsing import parse_notification from db_utils import get_or_create_user, add_pull, get_config, set_config from fediverse_factory import get_fediverse_service +import config # Initialize the Fediverse service fediverse_service = get_fediverse_service() -# Define your whitelist -# TODO: move to config -whitelisted_instances: list[str] = [] +# Get trusted instances from config +whitelisted_instances = config.TRUSTED_INSTANCES def stream_notifications(): print("Starting filtered notification stream...") diff --git a/bot/config.py b/bot/config.py index 9c2c1c4..b22f6c5 100644 --- a/bot/config.py +++ b/bot/config.py @@ -27,6 +27,10 @@ INSTANCE_TYPE = instance_type # Web server port WEB_PORT = config['application'].getint('WebPort', 5000) +# Trusted instances +trusted_instances_str = config['application'].get('TrustedInstances', '') +TRUSTED_INSTANCES = [instance.strip() for instance in trusted_instances_str.split(',') if instance.strip()] + # Extra stuff for control of the bot # TODO: move this to db diff --git a/bot/misskey_service.py b/bot/misskey_service.py index 3a16cd4..510b32b 100644 --- a/bot/misskey_service.py +++ b/bot/misskey_service.py @@ -99,9 +99,12 @@ class MisskeyService(FediverseService): def get_notifications(self, since_id: Optional[str] = None) -> List[FediverseNotification]: """Get notifications from Misskey instance""" - params = {} + params = { + 'include_types': ['mention', 'reply'], + 'limit': 50 + } if since_id: - params["sinceId"] = since_id + params["since_id"] = since_id notifications = self.client.i_notifications(**params) return [self._convert_misskey_notification(notif) for notif in notifications] @@ -121,13 +124,13 @@ class MisskeyService(FediverseService): } if reply_to_id: - params["replyId"] = reply_to_id + params["reply_id"] = reply_to_id if file_ids: - params["fileIds"] = file_ids + params["file_ids"] = file_ids if visible_user_ids and visibility == Visibility.SPECIFIED: - params["visibleUserIds"] = visible_user_ids + params["visible_user_ids"] = visible_user_ids response = self.client.notes_create(**params) return response.get("createdNote", {}).get("id", "") diff --git a/example_config.ini b/example_config.ini index 19ed86f..0c0d634 100644 --- a/example_config.ini +++ b/example_config.ini @@ -20,4 +20,8 @@ DefaultAdmins = ['admin@example.tld'] DatabaseLocation = ./gacha_game.db ; Web server port (default: 5000) -WebPort = 5000 \ No newline at end of file +WebPort = 5000 + +; Comma-separated list of trusted fediverse instances (leave empty to allow only local users) +; Example: TrustedInstances = mastodon.social,misskey.io,pleroma.example.com +TrustedInstances = \ No newline at end of file