first one
This commit is contained in:
69
bot/app/bot.py
Normal file
69
bot/app/bot.py
Normal file
@ -0,0 +1,69 @@
|
||||
# Telebot imports
|
||||
from telebot.async_telebot import AsyncTeleBot
|
||||
from telebot.asyncio_storage import StateMemoryStorage, StatePickleStorage
|
||||
from telebot.asyncio_handler_backends import State, StatesGroup
|
||||
from telebot.asyncio_filters import StateFilter
|
||||
from telebot import types
|
||||
from telebot.callback_data import CallbackData, CallbackDataFilter
|
||||
from telebot.types import Message
|
||||
|
||||
# Async things imports
|
||||
import asyncio
|
||||
|
||||
# Other modules imports
|
||||
import sqlite3
|
||||
import json
|
||||
from datetime import datetime
|
||||
import math
|
||||
import socket
|
||||
import os
|
||||
|
||||
# Local imports
|
||||
from config import token, admins
|
||||
import textbook
|
||||
import keyboards
|
||||
|
||||
# DB
|
||||
from db.base import Session, engine, Base
|
||||
from db.models import User
|
||||
# from db.engine import Database
|
||||
# from sqlalchemy import select
|
||||
|
||||
|
||||
bot = AsyncTeleBot(token, state_storage=StatePickleStorage())
|
||||
|
||||
class States(StatesGroup):
|
||||
default = State()
|
||||
|
||||
|
||||
@bot.message_handler(commands=["start"])
|
||||
async def start(msg: Message):
|
||||
user = session.query(User).filter_by(id=msg.from_user.id).first()
|
||||
if user:
|
||||
await bot.send_message(chat_id=msg.chat.id, text="Вы зарегистрированы!")
|
||||
else:
|
||||
await bot.send_message(chat_id=msg.chat.id, text="Привет, новый пользователь, регистрирую тебя..")
|
||||
new_user = User(id=msg.from_user.id, name=msg.from_user.first_name, username=msg.from_user.username)
|
||||
session.add(new_user)
|
||||
session.commit()
|
||||
await bot.send_message(chat_id=msg.chat.id, text="Регистрация прошла успешно, добро пожаловать!")
|
||||
print(session.query(User).all(), flush=True)
|
||||
# if msg.chat.type in ("group", "supergroup"):
|
||||
# await bot.send_message(chat_id=msg.chat.id, text=textbook.start_group)
|
||||
# else:
|
||||
# await bot.send_message(chat_id=msg.chat.id, text=textbook.start)
|
||||
|
||||
|
||||
async def main():
|
||||
a = asyncio.create_task(bot.polling(non_stop=True))
|
||||
await a
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("Bot started", flush=True)
|
||||
# db = Database()
|
||||
Base.metadata.create_all(engine)
|
||||
session = Session()
|
||||
bot.add_custom_filter(StateFilter(bot))
|
||||
bot.enable_saving_states(filename="./.state-save/states.pkl")
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user