From 75121f42d659d28777cd3c26443c5fa046e7d6b8 Mon Sep 17 00:00:00 2001 From: Interitio Date: Wed, 3 Sep 2025 22:49:39 +1000 Subject: [PATCH] Adjust Twitch adapter configuration --- example-config/bot.conf | 21 +++++++++++++++++++++ example-config/secrets.conf | 10 ++++++++++ requirements.txt | 1 + src/bot.py | 22 +++++++++++++++++----- src/meta/bot.py | 5 +---- 5 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 example-config/bot.conf create mode 100644 example-config/secrets.conf diff --git a/example-config/bot.conf b/example-config/bot.conf new file mode 100644 index 0000000..a6bd929 --- /dev/null +++ b/example-config/bot.conf @@ -0,0 +1,21 @@ +[BOT] +prefix = ? +bot_id = + +ALSO_READ = config/secrets.conf + +[TWTICH] +host = +port = +domain = +redirect_path = +oauth_path = +evenstub_path = + +webhooks = + +[LOGGING] +general_log = +warning_log = +error_log = +critical_log = diff --git a/example-config/secrets.conf b/example-config/secrets.conf new file mode 100644 index 0000000..b545682 --- /dev/null +++ b/example-config/secrets.conf @@ -0,0 +1,10 @@ +[BOT] +client_id = +client_secret = + +[TWITCH] +eventsub_secret = + +[DATA] +args = +appid = diff --git a/requirements.txt b/requirements.txt index 3a9a328..2e928e1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,3 +2,4 @@ websockets twitchio psycopg[pool] cachetools +discord.py diff --git a/src/bot.py b/src/bot.py index 7cedf98..37490f4 100644 --- a/src/bot.py +++ b/src/bot.py @@ -13,6 +13,10 @@ logger = logging.getLogger(__name__) class ProxyAiohttpAdapter(AiohttpAdapter): + """ + Overrides the computed AiohttpAdapter redirect_url + to always use provided domain. + """ def _find_redirect(self, request): return self.redirect_url @@ -21,18 +25,26 @@ async def main(): db = Database(conf.data['args']) async with db.open(): - adapter = ProxyAiohttpAdapter( - host=conf.bot.get('wshost', None), - port=conf.bot.getint('wsport', None), - domain=conf.bot.get('wsdomain', None), - eventsub_secret=conf.bot.get('eventsub_secret', None) + adapter_keys = ( + 'host', 'domain', 'port', + 'redirect_path', 'oauth_path', 'eventsub_path', + 'eventsub_secret', ) + adapter_args = {} + for key in adapter_keys: + value = conf.twitch.get(key, '').strip() + if value: + if key == 'port': + value = int(value) + adapter_args[key] = value + adapter = ProxyAiohttpAdapter(**adapter_args) bot = Bot( config=conf, dbconn=db, adapter=adapter, setup=twitch_setup, + using_webhooks=conf.twitch.getboolean('webhooks', False) ) async with websockets.serve(sockets.root_handler, '', conf.wserver.getint('port')): diff --git a/src/meta/bot.py b/src/meta/bot.py index bf8266b..9861671 100644 --- a/src/meta/bot.py +++ b/src/meta/bot.py @@ -29,10 +29,7 @@ class Bot(commands.Bot): super().__init__(*args, **kwargs) # Whether we should do eventsub via webhooks or websockets - if config.bot.get('eventsub_secret', None): - self.using_webhooks = True - else: - self.using_webhooks = False + self.using_webhooks = kwargs.get('using_webhooks', False) self.config = config self.dbconn = dbconn