82 lines
3.4 KiB
Python
82 lines
3.4 KiB
Python
|
# Импорт модулей стандартной библиотеки
|
|||
|
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
|