Fix scraping with reply
This commit is contained in:
@@ -307,6 +307,32 @@ class FlanaBot(MultiBot, ABC):
|
|||||||
|
|
||||||
return sended_media_messages
|
return sended_media_messages
|
||||||
|
|
||||||
|
async def _scrape_send_and_delete(
|
||||||
|
self,
|
||||||
|
message: Message,
|
||||||
|
audio_only=False,
|
||||||
|
sended_media_messages: OrderedSet[Media] = None
|
||||||
|
) -> OrderedSet[Media]:
|
||||||
|
if sended_media_messages is None:
|
||||||
|
sended_media_messages = OrderedSet()
|
||||||
|
|
||||||
|
sended_media_messages += await self._scrape_and_send(message, audio_only)
|
||||||
|
|
||||||
|
if (
|
||||||
|
sended_media_messages
|
||||||
|
and
|
||||||
|
message.chat.is_group
|
||||||
|
and
|
||||||
|
not message.replied_message
|
||||||
|
and
|
||||||
|
message.chat.config['auto_delete_original']
|
||||||
|
):
|
||||||
|
# noinspection PyTypeChecker
|
||||||
|
BotAction(Action.MESSAGE_DELETED, message, affected_objects=[message, *sended_media_messages]).save()
|
||||||
|
await self.delete_message(message)
|
||||||
|
|
||||||
|
return sended_media_messages
|
||||||
|
|
||||||
async def _search_medias(self, message: Message, audio_only=False, timeout_for_media: int | float = None) -> OrderedSet[Media]:
|
async def _search_medias(self, message: Message, audio_only=False, timeout_for_media: int | float = None) -> OrderedSet[Media]:
|
||||||
medias = OrderedSet()
|
medias = OrderedSet()
|
||||||
|
|
||||||
@@ -483,7 +509,7 @@ class FlanaBot(MultiBot, ABC):
|
|||||||
and
|
and
|
||||||
not message.chat.config['auto_scraping']
|
not message.chat.config['auto_scraping']
|
||||||
or
|
or
|
||||||
not await self._on_scraping(message)
|
not await self._scrape_send_and_delete(message)
|
||||||
)
|
)
|
||||||
and
|
and
|
||||||
(
|
(
|
||||||
@@ -649,22 +675,7 @@ class FlanaBot(MultiBot, ABC):
|
|||||||
if message.replied_message:
|
if message.replied_message:
|
||||||
sended_media_messages += await self._scrape_and_send(message.replied_message, audio_only)
|
sended_media_messages += await self._scrape_and_send(message.replied_message, audio_only)
|
||||||
|
|
||||||
sended_media_messages += await self._scrape_and_send(message, audio_only)
|
return await self._scrape_send_and_delete(message, audio_only, sended_media_messages)
|
||||||
|
|
||||||
if (
|
|
||||||
sended_media_messages
|
|
||||||
and
|
|
||||||
message.chat.is_group
|
|
||||||
and
|
|
||||||
not message.replied_message
|
|
||||||
and
|
|
||||||
message.chat.config['auto_delete_original']
|
|
||||||
):
|
|
||||||
# noinspection PyTypeChecker
|
|
||||||
BotAction(Action.MESSAGE_DELETED, message, affected_objects=[message, *sended_media_messages]).save()
|
|
||||||
await self.delete_message(message)
|
|
||||||
|
|
||||||
return sended_media_messages
|
|
||||||
|
|
||||||
async def _on_scraping_audio(self, message: Message) -> OrderedSet[Media]:
|
async def _on_scraping_audio(self, message: Message) -> OrderedSet[Media]:
|
||||||
return await self._on_scraping(message, audio_only=True)
|
return await self._on_scraping(message, audio_only=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user