Добавлены параметры telegram id и telegram url

This commit is contained in:
Alexander Popov 2025-05-01 20:18:46 +03:00
parent 35c2a3e578
commit f4ce13a2c7
Signed by: iiiypuk
GPG Key ID: E47FE0AB36CD5ED6
4 changed files with 36 additions and 13 deletions

View File

@ -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)

View File

@ -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:

View File

@ -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)

View File

@ -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" }