import io
from time import sleep
from bson import ObjectId
from flask import Flask, Response, request, redirect, jsonify, send_file
from minio import Minio, S3Error
from telebot.apihelper import ApiTelegramException
import settings
from api_processors import steps_dict
from mongo import mongo
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('''
Приветствие
Спокойной ночи
Доброе утро
Квиз 1
Время фото
Музло
Квиз 2
Открытки
Промокоды
''')
@app.route('/info')
def info():
s = ""
for chat in mongo.chats_collection.find({}):
for key, value in chat.items():
s += f"{key}: {value}
"
s += f"
"
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')
def main():
html = ""
for dialog in mongo.dialogs_collection.find({}).sort([('started_at', -1)]):
html += f'{dialog["_id"]}
'
html += ""
return html
@app.route('/dialog')
def dialog():
html = ""
for message in mongo.messages_collection.find({"dialog_id": ObjectId(request.args.get('dialog_id'))}).sort([('sent_at', 1)]):
html += f'{message["sender"]}: {message["text"]}
'
html += ""
return html