From df0c6451fc5cf6625be3122179bfddafb652ef00 Mon Sep 17 00:00:00 2001 From: Interitio Date: Wed, 3 Sep 2025 22:44:52 +1000 Subject: [PATCH] Move Twitch adapter configuration. --- example-config/bot.conf | 12 +++++++++--- example-config/secrets.conf | 5 ++++- src/bot.py | 22 +++++++++++++++++----- src/meta/bot.py | 5 +---- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/example-config/bot.conf b/example-config/bot.conf index 1afa4a8..a6bd929 100644 --- a/example-config/bot.conf +++ b/example-config/bot.conf @@ -4,9 +4,15 @@ bot_id = ALSO_READ = config/secrets.conf -wshost = localhost -wsport = 4343 -wsdomain = localhost:4343 +[TWTICH] +host = +port = +domain = +redirect_path = +oauth_path = +evenstub_path = + +webhooks = [LOGGING] general_log = diff --git a/example-config/secrets.conf b/example-config/secrets.conf index f931031..b545682 100644 --- a/example-config/secrets.conf +++ b/example-config/secrets.conf @@ -1,7 +1,10 @@ -[CROCBOT] +[BOT] client_id = client_secret = +[TWITCH] +eventsub_secret = + [DATA] args = appid = 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