This commit is contained in:
2024-08-09 23:07:36 +02:00
parent fde13d22aa
commit 96f6b7553b
2 changed files with 40 additions and 4 deletions

View File

@@ -19,6 +19,11 @@ class Config(BaseSettings):
TWITCH_CLIENT_SECRET: str TWITCH_CLIENT_SECRET: str
TWITCH_CHANNEL_ID: str TWITCH_CHANNEL_ID: str
TWITCH_ADMIN_USER_ID: str
TWITCH_CALLBACK_URL: str
TWITCH_CALLBACK_PORT: int = 80
SECRETS_FILE_PATH: str SECRETS_FILE_PATH: str

View File

@@ -1,8 +1,11 @@
from asyncio import Lock from asyncio import Lock, sleep
import json import json
import uuid
from twitchAPI.eventsub.webhook import EventSubWebhook
from twitchAPI.twitch import Twitch from twitchAPI.twitch import Twitch
from twitchAPI.type import AuthScope from twitchAPI.type import AuthScope
from twitchAPI.object.eventsub import ChannelChatMessageEvent, StreamOnlineEvent, StreamOfflineEvent
import aiofiles import aiofiles
@@ -59,9 +62,37 @@ class TwitchService:
return twitch return twitch
@classmethod async def on_channel_chat_message(self, event: ChannelChatMessageEvent):
async def run(cls): print("on_channel_chat_message", event)
pass
async def on_stream_online(self, event: StreamOnlineEvent):
print("on_stream_online", event)
async def on_stream_offline(self, event: StreamOfflineEvent):
print("on_stream_offline", event)
async def run(self):
try:
eventsub = EventSubWebhook(
callback_url=config.TWITCH_CALLBACK_URL,
port=config.TWITCH_CALLBACK_PORT,
twitch=self.twitch,
message_deduplication_history_length=50
)
await eventsub.unsubscribe_all()
eventsub.start()
await eventsub.listen_channel_chat_message(config.TWITCH_CHANNEL_ID, config.TWITCH_ADMIN_USER_ID, self.on_channel_chat_message)
await eventsub.listen_stream_online(config.TWITCH_CHANNEL_ID, self.on_stream_online)
await eventsub.listen_stream_offline(config.TWITCH_CHANNEL_ID, self.on_stream_offline)
while True:
await sleep(1)
finally:
await eventsub.stop()
await self.twitch.close()
@classmethod @classmethod
async def start(cls): async def start(cls):