Skip to content

Commit cad1820

Browse files
committed
main update
1 parent 6254764 commit cad1820

11 files changed

Lines changed: 79 additions & 4 deletions

File tree

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
SHELL := /bin/bash
22

33
configure: venv
4-
source ./venv/bin/activate && pip install -r requirements.txt
4+
source ./venv/bin/activate && pip install --force-reinstall -r requirements.txt
55

66
venv:
7-
python3.11 -m venv venv
7+
python3.12 -m venv venv
88

99
format:
1010
#black isort

requirements.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pydantic
2+
pydantic-settings
3+
sqlalchemy
4+
psycopg2-binary
5+
aiogram

src/__main__.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import logging
2+
from aiogram import Bot, Dispatcher
3+
from aiogram.client.default import DefaultBotProperties
4+
from aiogram.enums import ParseMode
5+
6+
from src.settings import Settings
7+
from src.handlers import start, help, text
8+
9+
settings = Settings()
10+
bot = Bot(token=settings.BOT_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
11+
dp = Dispatcher()
12+
13+
dp.include_router(start.router)
14+
dp.include_router(help.router)
15+
dp.include_router(text.router)
16+
17+
logging.basicConfig(level=logging.INFO)
18+
19+
if __name__ == '__main__':
20+
dp.run_polling(bot)

src/handlers/__init__.py

Whitespace-only changes.

src/handlers/help.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from aiogram import Router
2+
from aiogram.filters import Command
3+
from aiogram.types import Message
4+
5+
router = Router()
6+
7+
@router.message(Command("help"))
8+
async def cmd_help(message: Message):
9+
await message.answer("Это справочное сообщение. Чем могу помочь?")

src/handlers/start.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from aiogram import types
2+
from aiogram.filters import Command
3+
from aiogram.types import Message
4+
from aiogram import Router
5+
6+
router = Router()
7+
8+
@router.message(Command("start"))
9+
async def cmd_start(message: Message):
10+
await message.answer(f"Я бот. Приятно познакомиться, {message.from_user.first_name}!")

src/handlers/text.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from aiogram import Router, F
2+
from aiogram.types import Message
3+
4+
router = Router()
5+
6+
@router.message(F.text)
7+
async def handle_text(message: Message):
8+
if message.text.lower() == 'привет':
9+
await message.answer('Привет!')
10+
else:
11+
await message.answer('Не понимаю, что это значит.')

src/marketing.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"""There will be connection with marketing api for statistics"""

src/models/db.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
class Users(BaseDBModel):
66
__tablename__ = "user_info"
7-
id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True)
7+
id: Mapped[int] = mapped_column(Integer, primary_key=True)
88
tg_id: Mapped[int] = mapped_column(Integer, nullable=False, unique=True)
99
name: Mapped[str] = mapped_column(String, nullable=False)
1010
birthday: Mapped[str] = mapped_column(String, default=None)
@@ -14,4 +14,11 @@ class Holidays(BaseDBModel):
1414
__tablename__ = "holidays_status"
1515
id: Mapped[int] = mapped_column(Integer, ForeignKey("user_info.id"), primary_key=True)
1616
status: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
17-
till_date: Mapped[str] = mapped_column(String, nullable=False, default="null")
17+
till_date: Mapped[str] = mapped_column(String, nullable=False, default="null")
18+
19+
class MetInfo(BaseDBModel):
20+
__tablename__ = "met_info"
21+
id: Mapped[int] = mapped_column(Integer, primary_key=True)
22+
first_user_id: Mapped[int] = mapped_column(ForeignKey("user_info.id"))
23+
second_user_id: Mapped[int] = mapped_column(ForeignKey("user_info.id"))
24+
date: Mapped[str]

src/settings.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from pydantic import ConfigDict, PostgresDsn
2+
from pydantic_settings import BaseSettings
3+
4+
class Settings(BaseSettings):
5+
"""Application settings"""
6+
7+
BOT_TOKEN: str
8+
DB_DSN: PostgresDsn
9+
#MARKETING_URL: str //future tasks
10+
11+
model_config = ConfigDict(case_sensitive=True, env_file=".env", extra="allow")

0 commit comments

Comments
 (0)