diff --git a/src/modules/tracker/component.py b/src/modules/tracker/component.py index badcf65..58ac2c4 100644 --- a/src/modules/tracker/component.py +++ b/src/modules/tracker/component.py @@ -314,6 +314,26 @@ class TrackerComponent(cmds.Component): message=payload.text, ) + @cmds.Component.listener() + async def event_stream_online(self, payload: twitchio.StreamOnline): + tracked = await TrackingChannel.fetch(payload.broadcaster.id) + if tracked and tracked.joined: + community = await Communities.fetch_or_create(twitchid=payload.broadcaster.id, name=payload.broadcaster.name) + cid = community.communityid + + event_row = await self.data.events.insert( + event_type='stream_online', + communityid=cid, + channel_id=payload.broadcaster.id, + occurred_at=payload.started_at, + ) + detail_row = await self.data.stream_online_events.insert( + event_id=event_row['event_id'], + stream_id=payload.id, + stream_type=payload.type, + ) + + # ----- Commands ----- @cmds.command(name='starttracking') async def cmd_starttracking(self, ctx: cmds.Context):