diff --git a/.gitignore b/.gitignore index 83c2c3a..dec04eb 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ # App .env db.sqlite + +# Docs +docs/ diff --git a/README.md b/README.md index 4bd98c8..af10489 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ include_toc: true # 🎴 Бот для ведения статистики клана в AniCard +![](./assets/icon.png) + ## 📦 Возможности - [ ] Сохранение статистики побед в КВ членов клана diff --git a/app/__init__.py b/app/__init__.py index 0c66df4..5dbe246 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -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' +"""Имя бота""" diff --git a/app/__main__.py b/app/__main__.py index ff2a71d..c1cb619 100644 --- a/app/__main__.py +++ b/app/__main__.py @@ -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 остановлен') diff --git a/app/actions.py b/app/actions.py index 89f1db5..e37b187 100644 --- a/app/actions.py +++ b/app/actions.py @@ -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, '🛡 Мой клан') diff --git a/app/collect.py b/app/collect.py index c83fff6..05f9b31 100644 --- a/app/collect.py +++ b/app/collect.py @@ -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') diff --git a/app/db.py b/app/db.py index 72897dd..2a7c9c8 100644 --- a/app/db.py +++ b/app/db.py @@ -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: diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000..e766075 Binary files /dev/null and b/assets/icon.png differ diff --git a/pyproject.toml b/pyproject.toml index 8b14488..4e08e8b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 diff --git a/requirements.txt b/requirements.txt index bb247df..c07e4bb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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