mirror of
https://github.com/kurbezz/discord-bot.git
synced 2025-12-06 07:05:36 +01:00
Fix
This commit is contained in:
@@ -12,6 +12,12 @@ class State(BaseModel):
|
|||||||
last_live_at: datetime
|
last_live_at: datetime
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateEvent(BaseModel):
|
||||||
|
broadcaster_user_id: str
|
||||||
|
title: str
|
||||||
|
category_name: str
|
||||||
|
|
||||||
|
|
||||||
class StateManager:
|
class StateManager:
|
||||||
COLLECTION_NAME = "stream_twitch_state"
|
COLLECTION_NAME = "stream_twitch_state"
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
from datetime import datetime, timezone
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from twitchAPI.helper import first
|
from twitchAPI.helper import first
|
||||||
from twitchAPI.object.eventsub import ChannelUpdateEvent
|
|
||||||
|
|
||||||
from core.broker import broker
|
from core.broker import broker
|
||||||
from repositories.streamers import StreamerConfigRepository
|
from repositories.streamers import StreamerConfigRepository
|
||||||
|
|
||||||
from .state import State
|
from .state import State, UpdateEvent
|
||||||
from .watcher import StateWatcher
|
from .watcher import StateWatcher
|
||||||
from .twitch.authorize import authorize
|
from .twitch.authorize import authorize
|
||||||
|
|
||||||
@@ -15,18 +14,18 @@ from .twitch.authorize import authorize
|
|||||||
"stream_notifications.twitch.on_stream_state_change_with_check",
|
"stream_notifications.twitch.on_stream_state_change_with_check",
|
||||||
retry_on_error=True
|
retry_on_error=True
|
||||||
)
|
)
|
||||||
async def on_stream_state_change_with_check(event: ChannelUpdateEvent):
|
async def on_stream_state_change_with_check(event: UpdateEvent):
|
||||||
twitch = await authorize()
|
twitch = await authorize()
|
||||||
|
|
||||||
stream = await first(twitch.get_streams(user_id=[event.event.broadcaster_user_id]))
|
stream = await first(twitch.get_streams(user_id=[event.broadcaster_user_id]))
|
||||||
if stream is None:
|
if stream is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
await on_stream_state_change.kiq(
|
await on_stream_state_change.kiq(
|
||||||
int(event.event.broadcaster_user_id),
|
int(event.broadcaster_user_id),
|
||||||
State(
|
State(
|
||||||
title=event.event.title,
|
title=event.title,
|
||||||
category=event.event.category_name,
|
category=event.category_name,
|
||||||
last_live_at=datetime.now(timezone.utc)
|
last_live_at=datetime.now(timezone.utc)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ from twitchAPI.oauth import validate_token
|
|||||||
from core.config import config
|
from core.config import config
|
||||||
from repositories.streamers import StreamerConfigRepository, StreamerConfig
|
from repositories.streamers import StreamerConfigRepository, StreamerConfig
|
||||||
from modules.stream_notifications.tasks import on_stream_state_change, on_stream_state_change_with_check
|
from modules.stream_notifications.tasks import on_stream_state_change, on_stream_state_change_with_check
|
||||||
|
from modules.stream_notifications.state import UpdateEvent
|
||||||
from .authorize import authorize
|
from .authorize import authorize
|
||||||
|
|
||||||
|
|
||||||
@@ -26,7 +26,11 @@ class TwitchService:
|
|||||||
self.failed = False
|
self.failed = False
|
||||||
|
|
||||||
async def on_channel_update(self, event: ChannelUpdateEvent):
|
async def on_channel_update(self, event: ChannelUpdateEvent):
|
||||||
await on_stream_state_change_with_check.kiq(event)
|
await on_stream_state_change_with_check.kiq(UpdateEvent(
|
||||||
|
broadcaster_user_id=event.event.broadcaster_user_id,
|
||||||
|
title=event.event.title,
|
||||||
|
category_name=event.event.category_name
|
||||||
|
))
|
||||||
|
|
||||||
async def on_stream_online(self, event: StreamOnlineEvent):
|
async def on_stream_online(self, event: StreamOnlineEvent):
|
||||||
await on_stream_state_change.kiq(int(event.event.broadcaster_user_id))
|
await on_stream_state_change.kiq(int(event.event.broadcaster_user_id))
|
||||||
|
|||||||
Reference in New Issue
Block a user