mirror of
https://github.com/kurbezz/discord-bot.git
synced 2025-12-06 15:15:37 +01:00
Update
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user