Добавлены параметры telegram id
и telegram url
This commit is contained in:
parent
35c2a3e578
commit
f4ce13a2c7
@ -35,7 +35,7 @@ async def get_top_wins() -> None:
|
||||
time.sleep(1)
|
||||
|
||||
async for message in client.get_chat_history(BOT_NAME, limit=1):
|
||||
parse_wins_top(message)
|
||||
await parse_wins_top(message)
|
||||
|
||||
await client.read_chat_history(BOT_NAME)
|
||||
|
||||
@ -71,7 +71,7 @@ async def get_top_donates() -> None:
|
||||
time.sleep(1)
|
||||
|
||||
async for message in client.get_chat_history(BOT_NAME, limit=1):
|
||||
parse_donates_top(message)
|
||||
await parse_donates_top(message)
|
||||
|
||||
await client.read_chat_history(BOT_NAME)
|
||||
|
||||
|
@ -3,12 +3,14 @@ import re
|
||||
|
||||
# Импорт сторонних модулей
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.enums import MessageEntityType
|
||||
|
||||
# Импорт модулей приложения
|
||||
from . import db
|
||||
from .utils import get_telegram_id, get_player_data
|
||||
|
||||
|
||||
def parse_wins_top(message: Message) -> None:
|
||||
async def parse_wins_top(message: Message) -> None:
|
||||
"""Выполняет парсинг данных топа побед членов клана"""
|
||||
if message.text.startswith('🏆 Топ по победам'):
|
||||
players = message.text.split('\n')
|
||||
@ -30,23 +32,24 @@ def parse_wins_top(message: Message) -> None:
|
||||
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)
|
||||
|
||||
WINS.append(
|
||||
{
|
||||
# 'telegram_id': message.entities[idx].url.strip('http://t.me/'),
|
||||
'telegram_id': player_telegram_id,
|
||||
'username': player,
|
||||
'count': battle_count,
|
||||
'url': player_url,
|
||||
}
|
||||
)
|
||||
|
||||
# print('{0} - {1} (@{2})'.format(player, 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:
|
||||
async def parse_donates_top(message: Message) -> None:
|
||||
"""Выполняет парсинг данных топа пожертвований членов клана"""
|
||||
if message.text.startswith('🏆 Топ по пожертвованиям'):
|
||||
players = message.text.split('\n')
|
||||
@ -71,16 +74,17 @@ def parse_donates_top(message: Message) -> None:
|
||||
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)
|
||||
|
||||
DONATES.append(
|
||||
{
|
||||
# 'telegram_id': message.entities[idx].url.strip('http://t.me/'),
|
||||
'telegram_id': player_telegram_id,
|
||||
'username': player,
|
||||
'count': donates_count,
|
||||
'url': player_url,
|
||||
}
|
||||
)
|
||||
|
||||
# print('{0} - {1} (@{2})'.format(player, donates_count, message.entities[idx].url.strip('http://t.me/')))
|
||||
|
||||
print(DONATES)
|
||||
db.add_data(DONATES, False)
|
||||
else:
|
||||
|
21
app/utils.py
21
app/utils.py
@ -1,8 +1,27 @@
|
||||
# Импорт сторонних модулей
|
||||
from pyrogram.types import Message
|
||||
from pyrogram.enums import MessageEntityType
|
||||
|
||||
from . import client
|
||||
|
||||
|
||||
async def get_telegram_id(username: str) -> int:
|
||||
"""Возвращает Telegram ID по имени пользователя"""
|
||||
"""Возвращает Telegram ID"""
|
||||
telegram_user = await client.get_users(username)
|
||||
|
||||
return telegram_user.id
|
||||
|
||||
|
||||
async def get_player_data(message: Message, idx: int) -> tuple():
|
||||
"""..."""
|
||||
if message.entities[idx].type == MessageEntityType.TEXT_LINK:
|
||||
player_url = message.entities[idx].url
|
||||
player_telegram_id = await get_telegram_id(player_url.replace('http://t.me/', ''))
|
||||
elif message.entities[idx].type == MessageEntityType.TEXT_MENTION:
|
||||
player_url = None
|
||||
player_telegram_id = message.entities[idx].user.id
|
||||
else:
|
||||
player_url = None
|
||||
player_telegram_id = None
|
||||
|
||||
return (player_url, player_telegram_id)
|
||||
|
@ -1,7 +1,7 @@
|
||||
[project]
|
||||
dynamic = [ "version" ]
|
||||
name = "..."
|
||||
description = "..."
|
||||
name = "ClanStat"
|
||||
description = "AniCard Clan Statistics"
|
||||
authors = [ {name = "Alexander Popov", email = "iiiypuk@fastmail.fm"}, ]
|
||||
readme = "README.md"
|
||||
license = { text = "MIT-0 License" }
|
||||
|
Loading…
x
Reference in New Issue
Block a user