42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
# Импорт сторонних модулей
|
|
from pyrogram.types import Message
|
|
from pyrogram.enums import MessageEntityType
|
|
|
|
from . import client
|
|
|
|
|
|
async def get_telegram_id(username: str) -> int:
|
|
"""Возвращает Telegram ID"""
|
|
telegram_user = await client.get_users(username)
|
|
|
|
return telegram_user.id
|
|
|
|
|
|
async def get_telegram_data(message: Message, idx: int) -> tuple():
|
|
"""..."""
|
|
if message.entities[idx].type == MessageEntityType.TEXT_LINK:
|
|
player_url = message.entities[idx].url
|
|
player_telegram_id = await get_telegram_id(player_url.replace('http://t.me/', ''))
|
|
elif message.entities[idx].type == MessageEntityType.TEXT_MENTION:
|
|
player_url = None
|
|
player_telegram_id = message.entities[idx].user.id
|
|
else:
|
|
player_url = None
|
|
player_telegram_id = None
|
|
|
|
return (player_url, player_telegram_id)
|
|
|
|
|
|
def clean_icons(text: str) -> str:
|
|
"""Удаляет иконки подписок из ников"""
|
|
|
|
# оставляет ники игроков, Python не может в эмодзи в RegExp, по этому пришлось делать через str.replace()
|
|
# player = re.sub(r'\s[⚡⚜]$', '', player)
|
|
|
|
output = text
|
|
|
|
for icon in ['⚡', '⚜', '💎']:
|
|
output = output.replace(f' {icon}', '')
|
|
|
|
return output
|