Добавлена функция для удаления иконки подписок

This commit is contained in:
Alexander Popov 2025-05-02 02:05:15 +03:00
parent d48280ec7b
commit 77b8e13619
Signed by: iiiypuk
GPG Key ID: E47FE0AB36CD5ED6
2 changed files with 20 additions and 17 deletions

View File

@ -7,7 +7,7 @@ from pyrogram.enums import MessageEntityType
# Импорт модулей приложения
from . import db
from .utils import get_telegram_id, get_player_data
from .utils import get_telegram_id, get_telegram_data, clean_icons
async def parse_wins_top(message: Message) -> None:
@ -22,17 +22,12 @@ async def parse_wins_top(message: Message) -> None:
for idx, player in enumerate(players):
player = re.sub(r'^\d+. ', '', player) # удаляет нумерацию
player, battle_count = player.split(' - ') # разделяет ник и количество побед в клановых сражениях
# оставляет ники игроков, Python не может в эмодзи в RegExp, по этому пришлось делать через str.replace()
# player = re.sub(r'\s[⚡⚜]$', '', player)
player = player.replace('', '')
player = player.replace('', '').replace('\ufe0f', '')
player = player.replace(' 💎', '')
player = clean_icons(player)
battle_count = battle_count.replace('', '') # удаляем эмодзи мечей
battle_count = int(re.sub(r'[^\x00-\x7F]', '', battle_count)) # преобразовывает строку в число
player_url, player_telegram_id = await get_player_data(message, idx)
player_url, player_telegram_id = await get_telegram_data(message, idx)
WINS.append(
{
@ -63,18 +58,12 @@ async def parse_donates_top(message: Message) -> None:
for idx, player in enumerate(players):
player = re.sub(r'^\d+. ', '', player) # удаляет нумерацию
player, donates_count = player.split(' - ') # разделяет ник и количество пожертвований в клановую сокровищницу
# Оставляет только ники игроков.
# Python не может парсить эмодзи в RegExp, по этому пришлось делать через str.replace()
# player = re.sub(r'\s[⚡⚜]$', '', player)
player = player.replace('', '')
player = player.replace('', '').replace('\ufe0f', '')
player = player.replace(' 💎', '')
player = clean_icons(player)
donates_count = donates_count.replace(' 💠', '') # удаляем эмодзи пожертвований
donates_count = int(re.sub(r'[^\x00-\x7F]', '', donates_count)) # преобразовывает строку в число
player_url, player_telegram_id = await get_player_data(message, idx)
player_url, player_telegram_id = await get_telegram_data(message, idx)
DONATES.append(
{

View File

@ -12,7 +12,7 @@ async def get_telegram_id(username: str) -> int:
return telegram_user.id
async def get_player_data(message: Message, idx: int) -> tuple():
async def get_telegram_data(message: Message, idx: int) -> tuple():
"""..."""
if message.entities[idx].type == MessageEntityType.TEXT_LINK:
player_url = message.entities[idx].url
@ -25,3 +25,17 @@ async def get_player_data(message: Message, idx: int) -> tuple():
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