# Импорт модулей стандартной библиотеки import re # Импорт сторонних модулей from pyrogram.types import Message # Импорт модулей приложения from . import db def parse_wins_top(message: Message) -> None: if message.text.startswith('🏆 Топ по победам'): gamers = message.text.split('\n') gamers.pop(0) gamers.pop(0) WINS = list() for idx, gamer in enumerate(gamers): gamer = re.sub(r'^\d+. ', '', gamer) # удаляет нумерацию gamer, battle_count = gamer.split(' - ') # разделяет ник и количество побед в клановых сражениях # оставляет ники игроков, Python не может в эмодзи в RegExp, по этому пришлось делать через str.replace() # gamer = re.sub(r'\s[⚡⚜]$', '', gamer) gamer = gamer.replace(' ⚡', '') gamer = gamer.replace(' ⚜', '') battle_count = battle_count.replace(' ⚔', '') # удаляем эмодзи мечей battle_count = int(re.sub(r'[^\x00-\x7F]', '', battle_count)) # преобразовывает строку в число WINS.append( { 'telegram_id': message.entities[idx].url.strip('http://t.me/'), 'username': gamer, 'count': battle_count, } ) # print('{0} - {1} (@{2})'.format(gamer, battle_count, message.entities[idx].url.strip('http://t.me/'))) db.add_data(WINS, True) else: pass def parse_donates_top(message: Message) -> None: if message.text.startswith('🏆 Топ по пожертвованиям'): players = message.text.split('\n') # Удаляет из массива строку с заголовком и последующую пустую строку players.pop(0) players.pop(0) DONATES = list() 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(' ⚜', '') donates_count = donates_count.replace(' 💠', '') # удаляем эмодзи пожертвований donates_count = int(re.sub(r'[^\x00-\x7F]', '', donates_count)) # преобразовывает строку в число DONATES.append( { 'telegram_id': message.entities[idx].url.strip('http://t.me/'), 'username': player, 'count': donates_count, } ) # print('{0} - {1} (@{2})'.format(player, donates_count, message.entities[idx].url.strip('http://t.me/'))) db.add_data(DONATES, False) else: pass