From 2ad9f7767034650b23a8591905fab2ac64530bc9 Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Sat, 28 May 2022 18:23:24 +0200 Subject: [PATCH] dummy bot --- bot.py | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 bot.py diff --git a/bot.py b/bot.py new file mode 100644 index 0000000..0972e4f --- /dev/null +++ b/bot.py @@ -0,0 +1,78 @@ +import logging +import requests + +from racetime_bot import Bot, RaceHandler + +class AosrRaceHandler(RaceHandler): + + stop_at = ['cancelled', 'finished'] + + async def begin(self): + if self.should_stop(): + return + if not self.state.get('intro_sent') and not self._race_in_progress(): + await self.send_message( + 'Welcome to AoSR! Create a seed with !preset or !race ' + ) + self.state['intro_sent'] = True + + async def ex_preset(self, args, message): + try: + preset_name = args[0] + except IndexError: + await self.send_message( + 'You must specify a preset!' + ) + return + await self.roll_game(preset_name, race=False) + + async def ex_race(self, args, message): + try: + preset_name = args[0] + except IndexError: + await self.send_message( + 'You must specify a preset!' + ) + return + await self.roll_game(preset_name, race=True) + + async def roll_game(self, preset_name, race=False): + await self.send_message('Generating game, please wait.') + params = { 'preset': preset_name, 'race': '1' if race else '0' } + try: + response = requests.post('https://aos.localhorst.tv/api/aos-generate', data=params, headers={ 'Accept': 'application/json' }) + if response.status_code == 404: + await self.send_message( + 'unknown preset' + ) + return + response.raise_for_status() + except requests.exceptions.RequestException as e: + print(e) + await self.send_message( + 'error generating seed' + ) + return + json = response.json(); + await self.send_message( + 'Seed: https://aos.localhorst.tv/h/%(hash)s' % json + ) + await self.set_bot_raceinfo('%(preset)s - https://aos.localhorst.tv/h/%(hash)s' % json) + + def _race_in_progress(self): + return self.data.get('status').get('value') in ('pending', 'in_progress') + +class AosrBot(Bot): + + def get_handler_class(self): + return AosrRaceHandler + +logger = logging.getLogger() + +bot = AosrBot( + category_slug='aosr', + client_id='2NUPncWc83ygvx3TZyCuCYgdlrwogAvHf6rYYnHz', + client_secret='j5XN5gcQzWJiS25R4dhQquSREgYdlDJgTbvAMhyHGbnK3ROHsXpOzl0JUIHLU1n91qIOfzkiJN864RICWTBi9pnNIrkvvWNtZH77FC39QnABQ5CNPW0YWPpjC8M0f9hb', + logger=logger, +) +bot.run() -- 2.39.2