diff --git a/flanabot/bots/flana_bot.py b/flanabot/bots/flana_bot.py index 928480c..54fc461 100644 --- a/flanabot/bots/flana_bot.py +++ b/flanabot/bots/flana_bot.py @@ -15,7 +15,7 @@ import plotly.graph_objects import pymongo from flanaapis import InstagramLoginError, MediaNotFoundError, Place, PlaceNotFoundError, WeatherEmoji, instagram, tiktok, twitter, youtube from flanautils import Media, MediaType, NotFoundError, OrderedSet, Source, TimeUnits, TraceMetadata, return_if_first_empty -from multibot import Action, BadRoleError, BotAction, ButtonsGroup, MultiBot, Role, SendError, User, admin, bot_mentioned, constants as multibot_constants, group, ignore_self_message, inline, reply +from multibot import Action, BadRoleError, BotAction, ButtonsGroup, MultiBot, RegisteredCallback, Role, SendError, User, admin, bot_mentioned, constants as multibot_constants, group, ignore_self_message, inline, reply from flanabot import constants from flanabot.models import Chat, Message, Punishment, WeatherChart @@ -298,7 +298,10 @@ class FlanaBot(MultiBot, ABC): return options async def _scrape_and_send(self, message: Message, audio_only=False) -> OrderedSet[Media]: - if not (medias := await self._search_medias(message, audio_only)): + kwargs = {} + if self._parse_callbacks(message.text, [RegisteredCallback(..., [['sin'], ['timeout', 'limite']])]): + kwargs['timeout_for_media'] = None + if not (medias := await self._search_medias(message, audio_only, **kwargs)): return OrderedSet() sended_media_messages, _ = await self.send_medias(medias, message) diff --git a/flanabot/bots/flana_disc_bot.py b/flanabot/bots/flana_disc_bot.py index e024c0c..eacf520 100644 --- a/flanabot/bots/flana_disc_bot.py +++ b/flanabot/bots/flana_disc_bot.py @@ -141,8 +141,8 @@ class FlanaDiscBot(DiscordBot, FlanaBot): except AttributeError: raise BadRoleError(str(self._punish)) - async def _search_medias(self, message: Message, audio_only=False, timeout_for_media: int | float = None) -> OrderedSet[Media]: - return await super()._search_medias(message, audio_only, timeout_for_media=15) + async def _search_medias(self, message: Message, audio_only=False, timeout_for_media: int | float = 15) -> OrderedSet[Media]: + return await super()._search_medias(message, audio_only, timeout_for_media) async def _unpunish(self, user: int | str | User, group_: int | str | Chat | Message, message: Message = None): user_id = self.get_user_id(user) diff --git a/flanabot/bots/flana_tele_bot.py b/flanabot/bots/flana_tele_bot.py index 4c37dac..559eb84 100644 --- a/flanabot/bots/flana_tele_bot.py +++ b/flanabot/bots/flana_tele_bot.py @@ -59,8 +59,8 @@ class FlanaTeleBot(TelegramBot, FlanaBot): return [contact.user_id for contact in contacts_data.contacts] - async def _search_medias(self, message: Message, audio_only=False, timeout_for_media: int | float = None) -> OrderedSet[Media]: - return await super()._search_medias(message, audio_only, timeout_for_media=45) + async def _search_medias(self, message: Message, audio_only=False, timeout_for_media: int | float = 30) -> OrderedSet[Media]: + return await super()._search_medias(message, audio_only, timeout_for_media) @user_client async def _update_whitelist(self):