mirror of
https://github.com/nexus-stc/hyperboria
synced 2024-12-12 04:37:50 +01:00
43be16e4bc
- [nexus] Remove outdated protos - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Development - [nexus] Refactor views - [nexus] Update aiosumma - [nexus] Add tags - [nexus] Development - [nexus] Update repository - [nexus] Update repository - [nexus] Update dependencies - [nexus] Update dependencies - [nexus] Fixes for MetaAPI - [nexus] Support for new queries - [nexus] Adopt new versions of search - [nexus] Improving Nexus - [nexus] Various fixes - [nexus] Add profile - [nexus] Fixes for ingestion - [nexus] Refactorings and bugfixes - [idm] Add profile methods - [nexus] Fix stalled nexus-meta bugs - [nexus] Various bugfixes - [nexus] Restore IDM API functionality GitOrigin-RevId: a0842345a6dde5b321279ab5510a50c0def0e71a
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import asyncio
|
|
import time
|
|
|
|
from library.telegram.base import RequestContext
|
|
from nexus.translations import t
|
|
from telethon import events
|
|
|
|
from .base import BaseCallbackQueryHandler
|
|
|
|
|
|
def is_earlier_than_2_days(message):
|
|
return time.time() - time.mktime(message.date.timetuple()) < 48 * 60 * 60 - 10
|
|
|
|
|
|
class CloseHandler(BaseCallbackQueryHandler):
|
|
filter = events.CallbackQuery(pattern='^/close(?:_([A-Za-z0-9]+))?(?:_([0-9]+))?$')
|
|
|
|
async def handler(self, event, request_context: RequestContext):
|
|
session_id = event.pattern_match.group(1)
|
|
if session_id:
|
|
session_id = session_id.decode()
|
|
request_context.add_default_fields(mode='close')
|
|
|
|
target_events = []
|
|
message = await event.get_message()
|
|
|
|
if message and is_earlier_than_2_days(message):
|
|
target_events.append(event.answer())
|
|
request_context.statbox(
|
|
action='close',
|
|
message_id=message.id,
|
|
session_id=session_id,
|
|
)
|
|
reply_message = await message.get_reply_message()
|
|
if reply_message and is_earlier_than_2_days(reply_message):
|
|
target_events.append(reply_message.delete())
|
|
target_events.append(message.delete())
|
|
else:
|
|
target_events.append(event.answer(t('DELETION_FORBIDDEN_DUE_TO_AGE')))
|
|
await asyncio.gather(*target_events)
|