Добавлена функция для удаления иконки подписок
This commit is contained in:
parent
d48280ec7b
commit
77b8e13619
@ -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(
|
||||
{
|
||||
|
16
app/utils.py
16
app/utils.py
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user