49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
import logging
|
|
import os
|
|
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
|
|
from telegram.ext import Application, CommandHandler, MessageHandler, filters, CallbackQueryHandler, ConversationHandler, ContextTypes
|
|
from dotenv import load_dotenv
|
|
from db import SessionLocal, init_db
|
|
from models import Admin, Channel, Group, Button
|
|
|
|
load_dotenv()
|
|
TELEGRAM_TOKEN = os.getenv('TELEGRAM_TOKEN')
|
|
|
|
logging.basicConfig(level=logging.INFO)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
init_db()
|
|
|
|
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
|
|
session = SessionLocal()
|
|
user_id = update.effective_user.id
|
|
admin = session.query(Admin).filter_by(tg_id=user_id).first()
|
|
if not admin:
|
|
admin = Admin(tg_id=user_id)
|
|
session.add(admin)
|
|
session.commit()
|
|
await update.message.reply_text('Вы зарегистрированы как админ.')
|
|
else:
|
|
await update.message.reply_text('Вы уже зарегистрированы.')
|
|
session.close()
|
|
|
|
|
|
# Импорт обработчиков
|
|
from handlers.add_channel import add_channel
|
|
from handlers.add_group import add_group
|
|
from handlers.add_button import add_button_conv
|
|
from handlers.new_post import new_post_conv
|
|
|
|
def main():
|
|
|
|
application = Application.builder().token(TELEGRAM_TOKEN).build()
|
|
application.add_handler(CommandHandler('start', start))
|
|
application.add_handler(CommandHandler('add_channel', add_channel))
|
|
application.add_handler(CommandHandler('add_group', add_group))
|
|
application.add_handler(add_button_conv)
|
|
application.add_handler(new_post_conv)
|
|
application.run_polling()
|
|
|
|
if __name__ == '__main__':
|
|
main()
|