35 lines
1,017 B
Python
35 lines
1,017 B
Python
import asyncio
|
|
import config
|
|
import secrets
|
|
from aiohttp import ClientWebSocketResponse
|
|
from mipa.ext import commands
|
|
from mipac.models.note import Note
|
|
from prometheus_client import Counter, start_http_server
|
|
|
|
MATCHING_NOTES = Counter('matching_notes', 'Amount of notes in the antenna')
|
|
|
|
class MyBot(commands.Bot):
|
|
def __init__(self):
|
|
super().__init__()
|
|
|
|
async def _connect_channel(self):
|
|
await self.router.connect_channel(['antenna'], config.antenna)
|
|
|
|
async def on_ready(self, ws: ClientWebSocketResponse):
|
|
print(f'connected: {self.user.username}')
|
|
await self._connect_channel()
|
|
|
|
async def on_reconnect(self, ws: ClientWebSocketResponse):
|
|
print('Disconnected from server. Will try to reconnect.')
|
|
await self._connect_channel()
|
|
|
|
async def on_note(self, note: Note):
|
|
MATCHING_NOTES.inc()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
start_http_server(config.prometheus_port)
|
|
|
|
bot = MyBot()
|
|
asyncio.run(bot.start(config.instance, secrets.token))
|