diff --git a/.gitignore b/.gitignore index fc24815..ec646d8 100644 --- a/.gitignore +++ b/.gitignore @@ -173,6 +173,8 @@ cython_debug/ # PyPI configuration file .pypirc +.vscode + pg_data redis_data certs/* diff --git a/Dockerfile.lint b/Dockerfile.lint index 8c55b28..9d28d52 100644 --- a/Dockerfile.lint +++ b/Dockerfile.lint @@ -2,9 +2,9 @@ FROM pypy:3 WORKDIR /usr/src/app -RUN pip install flake8 --no-cache-dir +RUN pip install ruff COPY requirements.txt . -RUN pip install -r requirements.txt --no-cache-dir +RUN pip install -r requirements.txt --no-cache-dir COPY . . -CMD ["python", "-m", "flake8", "./src"] +CMD ["ruff", "check", "--extend-select", "I"] diff --git a/src/entities/__init__.py b/src/entities/__init__.py index 1854352..93bab19 100644 --- a/src/entities/__init__.py +++ b/src/entities/__init__.py @@ -1,9 +1,9 @@ -from .constants import TOKEN, POSTGRES_USER, POSTGRES_PASSWORD, ADMINS, TEXT -from .fsm import States, storage -from .utils import get_update_user_info, log_error, get_keyboard +from .constants import ADMINS, POSTGRES_PASSWORD, POSTGRES_USER, TEXT, TOKEN from .create_bot import bot from .dispatcher import dp +from .fsm import States, storage from .logs import logger +from .utils import get_keyboard, get_update_user_info, log_error __all__ = ["TOKEN", "POSTGRES_USER", "POSTGRES_PASSWORD", "ADMINS", "TEXT", "States", "get_update_user_info", "storage", "bot", "dp", diff --git a/src/entities/dispatcher.py b/src/entities/dispatcher.py index d0aa487..b31e822 100644 --- a/src/entities/dispatcher.py +++ b/src/entities/dispatcher.py @@ -1,11 +1,18 @@ +from typing import Any, Awaitable, Callable, Dict + from aiogram import Dispatcher from aiogram.types import Update -from typing import Callable, Dict, Any, Awaitable -from models import User -from routers import index_router, link_router, utility_router, \ - create_cert_router, check_cert_router, check_count_router from entities import get_update_user_info, storage +from models import User +from routers import ( + check_cert_router, + check_count_router, + create_cert_router, + index_router, + link_router, + utility_router, +) dp = Dispatcher(storage=storage) @@ -20,7 +27,7 @@ async def get_user(handler: Callable[[Update, Dict[str, Any]], return await handler(update, data) if not username: - username = "unknown:" + chat_id + username = "unknown:" + str(chat_id) query = User.select().where(User.chat_id == chat_id) if not await query.aio_exists(): diff --git a/src/entities/fsm.py b/src/entities/fsm.py index b1580b4..8a4a974 100644 --- a/src/entities/fsm.py +++ b/src/entities/fsm.py @@ -1,6 +1,6 @@ -from aiogram.fsm.state import StatesGroup, State -from aiogram.fsm.storage.redis import RedisStorage import redis.asyncio as redis +from aiogram.fsm.state import State, StatesGroup +from aiogram.fsm.storage.redis import RedisStorage class States(StatesGroup): diff --git a/src/entities/utils.py b/src/entities/utils.py index a775516..b3b20fa 100644 --- a/src/entities/utils.py +++ b/src/entities/utils.py @@ -2,9 +2,10 @@ from aiogram.utils.keyboard import ReplyKeyboardBuilder from entities import ADMINS, TEXT +from models import User + from .create_bot import bot from .logs import logger -from models import User def admin_markup() -> ReplyKeyboardMarkup: diff --git a/src/main.py b/src/main.py index d8c04ee..a4e36af 100644 --- a/src/main.py +++ b/src/main.py @@ -1,7 +1,6 @@ import asyncio -from entities import bot -from entities import dp +from entities import bot, dp async def main(): diff --git a/src/models/__init__.py b/src/models/__init__.py index 0d8208b..7dd7c8f 100644 --- a/src/models/__init__.py +++ b/src/models/__init__.py @@ -1,6 +1,6 @@ -from .user import User, init_user -from .link import Link, init_link from .cert import Cert, init_cert +from .link import Link, init_link +from .user import User, init_user init_user() init_link() diff --git a/src/models/cert.py b/src/models/cert.py index 3e91fb5..f95be70 100644 --- a/src/models/cert.py +++ b/src/models/cert.py @@ -1,8 +1,8 @@ from random import randint -from peewee import TextField, BooleanField +from peewee import BooleanField, TextField -from .db import db, BaseModel +from .db import BaseModel, db def cert_code(): diff --git a/src/models/db.py b/src/models/db.py index dabce73..ddd3483 100644 --- a/src/models/db.py +++ b/src/models/db.py @@ -1,5 +1,6 @@ import peewee_async -from entities import POSTGRES_USER, POSTGRES_PASSWORD + +from entities import POSTGRES_PASSWORD, POSTGRES_USER db = peewee_async.PsycopgDatabase('usmile', user=POSTGRES_USER, diff --git a/src/models/link.py b/src/models/link.py index 66340ec..479109a 100644 --- a/src/models/link.py +++ b/src/models/link.py @@ -1,6 +1,7 @@ -from peewee import TextField, IntegerField, BooleanField +from peewee import BooleanField, IntegerField, TextField from entities.constants import BOT_NAME + from .db import BaseModel, db from .utils import str_uuid diff --git a/src/models/user.py b/src/models/user.py index 428f5bf..d0a9d99 100644 --- a/src/models/user.py +++ b/src/models/user.py @@ -1,4 +1,5 @@ -from peewee import IntegerField, TextField, BigIntegerField +from peewee import BigIntegerField, IntegerField, TextField + from .db import BaseModel, db diff --git a/src/routers/__init__.py b/src/routers/__init__.py index 746ab38..2d6d765 100644 --- a/src/routers/__init__.py +++ b/src/routers/__init__.py @@ -1,9 +1,9 @@ +from .check_cert import router as check_cert_router +from .check_count import router as check_count_router +from .create_cert import router as create_cert_router from .index import router as index_router from .link import router as link_router from .utility import router as utility_router -from .create_cert import router as create_cert_router -from .check_cert import router as check_cert_router -from .check_count import router as check_count_router __all__ = ["index_router", "link_router", "utility_router", "create_cert_router", "check_cert_router", "check_count_router"] diff --git a/src/routers/check_cert.py b/src/routers/check_cert.py index e7b8b7d..cb1bf2f 100644 --- a/src/routers/check_cert.py +++ b/src/routers/check_cert.py @@ -1,7 +1,7 @@ -from aiogram import Router, F +from aiogram import F, Router from aiogram.filters import Command, StateFilter -from aiogram.types import Message, ReplyKeyboardRemove, CallbackQuery from aiogram.fsm.context import FSMContext +from aiogram.types import CallbackQuery, Message, ReplyKeyboardRemove from aiogram.utils.keyboard import InlineKeyboardBuilder from entities import ADMINS, TEXT, States, get_keyboard diff --git a/src/routers/check_count.py b/src/routers/check_count.py index b8699b8..729b8ca 100644 --- a/src/routers/check_count.py +++ b/src/routers/check_count.py @@ -1,8 +1,8 @@ -from aiogram import Router, F -from aiogram.filters import StateFilter, Command +from aiogram import F, Router +from aiogram.filters import Command, StateFilter from aiogram.types import Message -from entities import TEXT, ADMINS +from entities import ADMINS, TEXT from models import User router = Router() diff --git a/src/routers/create_cert.py b/src/routers/create_cert.py index 9781783..1ed4a16 100644 --- a/src/routers/create_cert.py +++ b/src/routers/create_cert.py @@ -1,10 +1,10 @@ -from aiogram import Router, F +from aiogram import F, Router from aiogram.filters import Command, StateFilter -from aiogram.types import Message, FSInputFile, ReplyKeyboardRemove from aiogram.fsm.context import FSMContext +from aiogram.types import FSInputFile, Message, ReplyKeyboardRemove -from entities import States, TEXT, ADMINS, get_keyboard -from models import User, Cert +from entities import ADMINS, TEXT, States, get_keyboard +from models import Cert, User router = Router() diff --git a/src/routers/index.py b/src/routers/index.py index ad6d8a6..c1762ea 100644 --- a/src/routers/index.py +++ b/src/routers/index.py @@ -1,8 +1,8 @@ from aiogram import Router -from aiogram.filters import CommandStart, StateFilter, Command +from aiogram.filters import Command, CommandStart, StateFilter from aiogram.types import Message -from entities import TEXT, ADMINS, get_keyboard +from entities import ADMINS, TEXT, get_keyboard from models import Link, User router = Router() diff --git a/src/routers/link.py b/src/routers/link.py index 086504a..170f955 100644 --- a/src/routers/link.py +++ b/src/routers/link.py @@ -1,10 +1,10 @@ -from aiogram import Router, F +from aiogram import F, Router from aiogram.filters import Command, StateFilter -from aiogram.types import Message, ReplyKeyboardRemove from aiogram.fsm.context import FSMContext +from aiogram.types import Message, ReplyKeyboardRemove from entities import ADMINS, TEXT, States, get_keyboard -from models import User, Link +from models import Link, User router = Router() diff --git a/src/routers/utility.py b/src/routers/utility.py index bdc0584..ead3220 100644 --- a/src/routers/utility.py +++ b/src/routers/utility.py @@ -1,7 +1,7 @@ from aiogram import Router -from aiogram.types import Message, ErrorEvent +from aiogram.types import ErrorEvent, Message -from entities import TEXT, get_update_user_info, bot, log_error +from entities import TEXT, bot, get_update_user_info, log_error router = Router()