From 65e04a36e0a87aa2613d703f7b459ebc3216c0ee Mon Sep 17 00:00:00 2001 From: Rykov7 Date: Sat, 28 Oct 2023 18:14:44 +0300 Subject: [PATCH] switch Flask to FastAPI for future async. --- app/bot.py | 13 +++++-------- app/config.py | 4 ++-- requirements.txt | Bin 984 -> 1732 bytes wsgi.py | 5 +---- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/app/bot.py b/app/bot.py index 28d54ab..b86ef3a 100644 --- a/app/bot.py +++ b/app/bot.py @@ -1,5 +1,4 @@ import shelve -from flask import request, abort from . import stan from . import rules @@ -384,13 +383,11 @@ def handle_msg(message: types.Message): """ [ WEBHOOK ] """ -@app.route(f"/bot{TOKEN}/", methods=["POST"]) -def webhook(): +@app.post(f"/bot{TOKEN}/") +def webhook(update: dict): """Parse POST requests from Telegram.""" - if request.headers.get("content-type") == "application/json": - json_string = request.get_data().decode("utf-8") - update = types.Update.de_json(json_string) + if update: + update = telebot.types.Update.de_json(update) bot.process_new_updates([update]) - return "" else: - abort(403) + return diff --git a/app/config.py b/app/config.py index a7a4771..d510e34 100644 --- a/app/config.py +++ b/app/config.py @@ -3,7 +3,7 @@ import re import logging import telebot.types -from flask import Flask +from fastapi import FastAPI from telebot import TeleBot, logger, types from dotenv import load_dotenv @@ -29,7 +29,7 @@ bot = TeleBot( ) LOG_TEXT = "[%s] %s: %s" LOG_COMM = "[%s] [%s] %s: %s" -app = Flask(__name__) +app = FastAPI(docs=None, redoc_url=None) DATA = "data/chat" diff --git a/requirements.txt b/requirements.txt index 6f39cf36040db930adf2110fc319d24ef5c8c08a..951a96faac5d486b7724517951788db38a3e2efa 100644 GIT binary patch literal 1732 zcmY+E-EY%S48{G7#GkUM%|;myJir?WB+!s}oU(p~Wob!L)b5W5&d zv3>vjt*y1CJ=>!-Hn;b>rgp7+qUVjhwpUhLr)z7YzDD^j>`L#W?esl(1imxflav2Z zXj`}4=>J>Y(`4H#cB@#hHYuKrCH_&kwc*#;O7B))TfKL7>xj3G7A)Zha}bY?xE0r2 z#a+re7h<3A8n;&BTIssBce*PfgESYTTAqXaM^#DHy|h82#$Fr+Y~o7(xm)M<f-9q`n>s>qEpy5-vtYjO+y_OzPX~a)F zWAtaO$fd4M*{CyDglFZPHbR{G|A>Zd#BS6F^yt)?UKv1v_0hd!YQnS8|4yEuGXtS; zqkMxbAgmSLtDb$TH>(;PJ`26GU-GO@7}Oco)(+y)x&?O8MSA#E5l=!TZ}{ijSbEu* zqo6!U2mWomNJT_SEG>e0(#X`+R(Ve)W9J5O0CAQRbo)i7E z=KK%E*ofFsw4&~u_tN7b&B=Lv(Mc2nj|r%S%3OE)E}TKlwI1zM&{xLp$~tjk$Nq$kYdK zYWuCMoK8$z*1Gb{#b;Da(Pc7~2^#zyU>iAmLc^Gk+>t@59UM3Qm$PdSdrqyDo@EAO z7SKMQWFRb6XXy|=sB>A%y?wVY(z{KZo)cp{VI5l)8{a$I(KV#z(2wrKMvhWtp&nwR zZ!Tbe>X14CPr4Z@5=Hki-b?CnY1C6O;4-B$F}%;FI(NYLkux9+T7r eB$E^cB$ILlRFen>Dg`wFE&wo-R|YAQq6Q+kA{TA| diff --git a/wsgi.py b/wsgi.py index 3c95a08..b334fe5 100644 --- a/wsgi.py +++ b/wsgi.py @@ -1,4 +1 @@ -from app.bot import app - -if __name__ == "__main__": - app.run(debug=False) +from app.bot import app \ No newline at end of file