From 569bed91ad1d16e8383304fb1848386570147c5f Mon Sep 17 00:00:00 2001 From: AlberLC Date: Tue, 8 Nov 2022 04:17:27 +0100 Subject: [PATCH] Split FlanaBot into multiple bots --- flanabot/bots/flana_bot.py | 1 - flanabot/bots/scraper_bot.py | 62 ++++++++++++++++++------------------ 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/flanabot/bots/flana_bot.py b/flanabot/bots/flana_bot.py index 80869fa..d8b0c81 100644 --- a/flanabot/bots/flana_bot.py +++ b/flanabot/bots/flana_bot.py @@ -99,7 +99,6 @@ class FlanaBot(PenaltyBot, PollBot, ScraperBot, WeatherBot, MultiBot, ABC): # ---------------------------------------------- # # HANDLERS # # ---------------------------------------------- # - async def _on_bye(self, message: Message): if message.chat.is_private or self.is_bot_mentioned(message): await self.send_bye(message) diff --git a/flanabot/bots/scraper_bot.py b/flanabot/bots/scraper_bot.py index cc235ea..1b2f626 100644 --- a/flanabot/bots/scraper_bot.py +++ b/flanabot/bots/scraper_bot.py @@ -75,37 +75,6 @@ class ScraperBot(MultiBot, ABC): new_line = ' ' if len(medias_sended_info) == 1 else '\n' return f'{new_line}{medias_sended_info_joined}:' - # ---------------------------------------------- # - # HANDLERS # - # ---------------------------------------------- # - async def _on_no_delete_original(self, message: Message): - if not await self._scrape_and_send(message): - await self._on_recover_message(message) - - async def _on_recover_message(self, message: Message): - pass - - async def _on_scraping(self, message: Message, audio_only=False) -> OrderedSet[Media]: - sended_media_messages = OrderedSet() - - if message.replied_message: - sended_media_messages += await self._scrape_and_send(message.replied_message, audio_only) - - return await self._scrape_send_and_delete(message, audio_only, sended_media_messages) - - async def _on_scraping_audio(self, message: Message) -> OrderedSet[Media]: - return await self._on_scraping(message, audio_only=True) - - @reply - async def _on_song_info(self, message: Message): - song_infos = message.replied_message.song_infos if message.replied_message else [] - - if song_infos: - for song_info in song_infos: - await self.send_song_info(song_info, message) - elif message.chat.is_private or self.is_bot_mentioned(message): - await self._manage_exceptions(SendError('No hay información musical en ese mensaje.'), message) - async def _scrape_and_send(self, message: Message, audio_only=False) -> OrderedSet[Media]: kwargs = {} if self._parse_callbacks(message.text, [RegisteredCallback(..., [['sin'], ['timeout', 'limite']])]): @@ -176,6 +145,37 @@ class ScraperBot(MultiBot, ABC): return OrderedSet(*medias) + # ---------------------------------------------- # + # HANDLERS # + # ---------------------------------------------- # + async def _on_no_delete_original(self, message: Message): + if not await self._scrape_and_send(message): + await self._on_recover_message(message) + + async def _on_recover_message(self, message: Message): + pass + + async def _on_scraping(self, message: Message, audio_only=False) -> OrderedSet[Media]: + sended_media_messages = OrderedSet() + + if message.replied_message: + sended_media_messages += await self._scrape_and_send(message.replied_message, audio_only) + + return await self._scrape_send_and_delete(message, audio_only, sended_media_messages) + + async def _on_scraping_audio(self, message: Message) -> OrderedSet[Media]: + return await self._on_scraping(message, audio_only=True) + + @reply + async def _on_song_info(self, message: Message): + song_infos = message.replied_message.song_infos if message.replied_message else [] + + if song_infos: + for song_info in song_infos: + await self.send_song_info(song_info, message) + elif message.chat.is_private or self.is_bot_mentioned(message): + await self._manage_exceptions(SendError('No hay información musical en ese mensaje.'), message) + # -------------------------------------------------------- # # -------------------- PUBLIC METHODS -------------------- # # -------------------------------------------------------- #