Split FlanaBot into multiple bots
This commit is contained in:
@@ -99,7 +99,6 @@ class FlanaBot(PenaltyBot, PollBot, ScraperBot, WeatherBot, MultiBot, ABC):
|
|||||||
# ---------------------------------------------- #
|
# ---------------------------------------------- #
|
||||||
# HANDLERS #
|
# HANDLERS #
|
||||||
# ---------------------------------------------- #
|
# ---------------------------------------------- #
|
||||||
|
|
||||||
async def _on_bye(self, message: Message):
|
async def _on_bye(self, message: Message):
|
||||||
if message.chat.is_private or self.is_bot_mentioned(message):
|
if message.chat.is_private or self.is_bot_mentioned(message):
|
||||||
await self.send_bye(message)
|
await self.send_bye(message)
|
||||||
|
|||||||
@@ -75,37 +75,6 @@ class ScraperBot(MultiBot, ABC):
|
|||||||
new_line = ' ' if len(medias_sended_info) == 1 else '\n'
|
new_line = ' ' if len(medias_sended_info) == 1 else '\n'
|
||||||
return f'{new_line}{medias_sended_info_joined}:'
|
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]:
|
async def _scrape_and_send(self, message: Message, audio_only=False) -> OrderedSet[Media]:
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
if self._parse_callbacks(message.text, [RegisteredCallback(..., [['sin'], ['timeout', 'limite']])]):
|
if self._parse_callbacks(message.text, [RegisteredCallback(..., [['sin'], ['timeout', 'limite']])]):
|
||||||
@@ -176,6 +145,37 @@ class ScraperBot(MultiBot, ABC):
|
|||||||
|
|
||||||
return OrderedSet(*medias)
|
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 -------------------- #
|
# -------------------- PUBLIC METHODS -------------------- #
|
||||||
# -------------------------------------------------------- #
|
# -------------------------------------------------------- #
|
||||||
|
|||||||
Reference in New Issue
Block a user