ClanStat/app/collect.py

84 lines
3.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Импорт модулей стандартной библиотеки
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('', '').replace('\ufe0f', '')
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/')))
print(WINS)
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('', '').replace('\ufe0f', '')
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/')))
print(DONATES)
db.add_data(DONATES, False)
else:
pass