This commit is contained in:
emmatveev 2024-05-01 16:19:28 +03:00
parent e495a7c48a
commit 8d68450710

80
api.py
View File

@ -1,88 +1,16 @@
import io
from time import sleep
from bson import ObjectId from bson import ObjectId
from flask import Flask, Response, request, redirect, jsonify, send_file from flask import Flask, request
from minio import Minio, S3Error
from telebot.apihelper import ApiTelegramException
import settings
from api_processors import steps_dict
from mongo import mongo
from tools.mongo import mongo
app = Flask("roulette") app = Flask("roulette")
@app.route('/letsgonumber')
def step():
number = request.args.get('num')
action = steps_dict[int(number)]
for chat in mongo.chats_collection.find({}):
try:
action(chat)
except ApiTelegramException as e:
print(e)
sleep(.2)
return redirect('/adminkadlyapazanov')
@app.route('/adminkadlyapazanov')
def index():
return Response('''
<html>
<head></head>
<body>
<a href="/letsgonumber?num=1">Приветствие</a><br><br><br>
<a href="/letsgonumber?num=2">Спокойной ночи</a><br><br><br>
<a href="/letsgonumber?num=3">Доброе утро</a><br><br><br>
<a href="/letsgonumber?num=4">Квиз 1</a><br><br><br>
<a href="/letsgonumber?num=5">Время фото</a><br><br><br>
<a href="/letsgonumber?num=6">Музло</a><br><br><br>
<a href="/letsgonumber?num=7">Квиз 2</a><br><br><br>
<a href="/letsgonumber?num=8">Открытки</a><br><br><br>
<a href="/letsgonumber?num=9">Промокоды</a><br><br><br>
</body>
</html>
''')
@app.route('/info')
def info():
s = "<html><head></head><body>"
for chat in mongo.chats_collection.find({}):
for key, value in chat.items():
s += f"{key}: {value}<br>"
s += f"<img src=\"/photo?chat_id={chat['chat_id']}\"/><br><hr>"
return Response(s)
@app.route('/photo')
def photo():
chat_id = int(request.args.get('chat_id'))
doc = mongo.chats_collection.find_one({"chat_id": chat_id})
client = Minio(
settings.MINIO_HOST,
access_key=settings.MINIO_ACCESS_KEY,
secret_key=settings.MINIO_SECRET_KEY,
secure=False
)
try:
data = client.get_object(
"8march-bot",
f"selfies/{chat_id}-{doc['username']}-{doc['telegram_name']}.jpg",
).data
except S3Error:
data = open('shrek.jpeg', 'rb').read()
return send_file(io.BytesIO(data), mimetype='image/jpg')
@app.route('/dialogs') @app.route('/dialogs')
def main(): def main():
html = "<html><head></head><body>" html = "<html><head></head><body>"
for dialog in mongo.dialogs_collection.find({}).sort([('started_at', -1)]): for d in mongo.dialogs_collection.find({}).sort([('started_at', -1)]):
html += f'<a href="/dialog?id={dialog["_id"]}">{dialog["_id"]}</a><br>' html += f'<a href="/dialog?id={d["_id"]}">{d["_id"]}</a><br>'
html += "</body></html>" html += "</body></html>"
return html return html