meta-kitties/modules/MiPA/examples/split_timeline/main.py
2024-10-08 19:20:05 +02:00

33 lines
1 KiB
Python

import asyncio
from aiohttp import ClientWebSocketResponse
from mipac import Note
from mipa.ext.commands.bot import Bot
from mipa.ext.timelines.core import AbstractTimeline
class GlobalTimeline(AbstractTimeline):
async def on_note(self, note: Note): # This event is only received in the global timeline notes
print(f'{note.author.username}: {note.content}')
class MyBot(Bot):
def __init__(self):
super().__init__()
async def _connect_channel(self):
await self.router.connect_channel({'global': GlobalTimeline(), 'main': None, 'home': None})
async def on_ready(self, ws: ClientWebSocketResponse):
await self._connect_channel()
print('Logged in ', self.user.username)
async def on_reconnect(self, ws: ClientWebSocketResponse):
await self._connect_channel()
async def on_note(self, note: Note): # This event receives all channel notes
print(f'{note.author.username}: {note.content}')
if __name__ == '__main__':
bot = MyBot()
asyncio.run(bot.start('instance url', 'your token'))