1.0.0
This commit is contained in:
parent
30c2505379
commit
055b7f3bbd
3
.gitignore
vendored
3
.gitignore
vendored
@ -5,3 +5,6 @@
|
||||
# App
|
||||
.env
|
||||
db.sqlite
|
||||
|
||||
# Docs
|
||||
docs/
|
||||
|
@ -5,6 +5,8 @@ include_toc: true
|
||||
|
||||
# 🎴 Бот для ведения статистики клана в AniCard
|
||||
|
||||

|
||||
|
||||
## 📦 Возможности
|
||||
|
||||
- [ ] Сохранение статистики побед в КВ членов клана
|
||||
|
@ -1,6 +1,6 @@
|
||||
# Информация о программе
|
||||
__author__ = 'Alexander Popov'
|
||||
__version__ = (0, 0, 1)
|
||||
__version__ = (1, 0, 0)
|
||||
|
||||
# Импорт модулей стандартной библиотеки
|
||||
from os import getenv
|
||||
@ -15,13 +15,17 @@ from .db import DataBase
|
||||
|
||||
load_dotenv() # Выполняет чтение .env
|
||||
|
||||
# Приложение
|
||||
client = Client(getenv('ACCOUNT'), api_id=getenv('APP_ID'), api_hash=getenv('APP_HASH'))
|
||||
"""Клиент Telegram"""
|
||||
|
||||
# База данных
|
||||
db = DataBase(getenv('DB_PATH'))
|
||||
"""База данных"""
|
||||
|
||||
# Логгер
|
||||
logger.add(getenv('LOG_PATH'), compression='zip')
|
||||
"""Логгер"""
|
||||
|
||||
DELAY_TIME = 12 * 60 * 60 # 12 часов
|
||||
"""Время приостановки выполнения цикла сбора статистики"""
|
||||
|
||||
BOT_NAME = '@anicardplaybot'
|
||||
"""Имя бота"""
|
||||
|
@ -2,11 +2,12 @@
|
||||
import time
|
||||
|
||||
# Импорт модулей приложения
|
||||
from . import client, db, logger
|
||||
from . import client, db, logger, DELAY_TIME
|
||||
from .actions import get_top_wins, get_top_donates
|
||||
|
||||
|
||||
async def main():
|
||||
"""Запускак клиента Telegram"""
|
||||
await client.start()
|
||||
logger.info('Клиент Telegram запущен')
|
||||
|
||||
@ -22,7 +23,8 @@ async def main():
|
||||
except Exception as e:
|
||||
logger.error('Ошибка получения списка пожертвований')
|
||||
|
||||
time.sleep(12 * 60 * 60) # 12 часов
|
||||
# Приостанавливает выполнение цикла
|
||||
time.sleep(DELAY_TIME)
|
||||
|
||||
await client.stop()
|
||||
logger.info('Клиент Telegram остановлен')
|
||||
|
@ -7,6 +7,7 @@ from .collect import parse_wins_top, parse_donates_top
|
||||
|
||||
|
||||
async def get_top_wins() -> None:
|
||||
"""Получает топ клана по победам"""
|
||||
logger.info('Выполняется получения списка побед клана')
|
||||
|
||||
await client.send_message(BOT_NAME, '🛡 Мой клан')
|
||||
@ -42,6 +43,7 @@ async def get_top_wins() -> None:
|
||||
|
||||
|
||||
async def get_top_donates() -> None:
|
||||
"""Получает топ клана по пожертвованиям"""
|
||||
logger.info('Выполняется получения списка пожертвований клана')
|
||||
|
||||
await client.send_message(BOT_NAME, '🛡 Мой клан')
|
||||
|
@ -9,6 +9,7 @@ from . import db
|
||||
|
||||
|
||||
def parse_wins_top(message: Message) -> None:
|
||||
"""Выполняет парсинг данных топа побед членов клана"""
|
||||
if message.text.startswith('🏆 Топ по победам'):
|
||||
gamers = message.text.split('\n')
|
||||
gamers.pop(0)
|
||||
@ -45,6 +46,7 @@ def parse_wins_top(message: Message) -> None:
|
||||
|
||||
|
||||
def parse_donates_top(message: Message) -> None:
|
||||
"""Выполняет парсинг данных топа пожертвований членов клана"""
|
||||
if message.text.startswith('🏆 Топ по пожертвованиям'):
|
||||
players = message.text.split('\n')
|
||||
|
||||
|
@ -4,25 +4,30 @@ import json
|
||||
|
||||
|
||||
class DataBase(object):
|
||||
"""..."""
|
||||
"""Класс для работы с базой данных"""
|
||||
|
||||
def __init__(self, path):
|
||||
super(DataBase, self).__init__()
|
||||
self.path = path
|
||||
"""Путь к файлу базы данных SQLite3"""
|
||||
|
||||
def connect(self) -> bool:
|
||||
"""Выполняет подключение к базе данных"""
|
||||
self.conn = sqlite3.connect(self.path)
|
||||
return True
|
||||
|
||||
def close(self) -> bool:
|
||||
"""Закрывает подключение к базе данных"""
|
||||
self.conn.close()
|
||||
return True
|
||||
|
||||
def commit(self) -> None:
|
||||
"""Выполняет коммит"""
|
||||
self.conn.commit()
|
||||
return True
|
||||
|
||||
def add_data(self, data, wins: bool) -> bool: # wins изменит на Enum
|
||||
"""Добавляет данные в базу данных"""
|
||||
if wins:
|
||||
table = 'wins'
|
||||
else:
|
||||
|
BIN
assets/icon.png
Normal file
BIN
assets/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 681 KiB |
@ -11,7 +11,7 @@ requires-python = ">= 3.8"
|
||||
classifiers=[ 'License :: OSI Approved :: MIT No Attribution License (MIT-0)', ]
|
||||
|
||||
[project.urls]
|
||||
Changelog = "https://change.me//CHANGELOG.md"
|
||||
Changelog = "https://git.a2s.su/AniCard/ClanStat/src/branch/master/CHANGELOG.md"
|
||||
|
||||
[tool.black]
|
||||
skip-string-normalization = true
|
||||
|
@ -1,4 +1,5 @@
|
||||
loguru==0.7.2
|
||||
pdoc==15.0.1
|
||||
Pyrogram==2.0.106
|
||||
python-dotenv==1.0.1
|
||||
TgCrypto==1.2.5
|
||||
|
Loading…
Reference in New Issue
Block a user