97 lines
2.9 KiB
Python
97 lines
2.9 KiB
Python
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('''
|
|
<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')
|
|
def main():
|
|
html = "<html><head></head><body>"
|
|
for dialog in mongo.dialogs_collection.find({}).sort([('started_at', -1)]):
|
|
html += f'<a href="/dialog?id={dialog["_id"]}">{dialog["_id"]}</a><br>'
|
|
html += "</body></html>"
|
|
return html
|
|
|
|
|
|
@app.route('/dialog')
|
|
def dialog():
|
|
html = "<html><head></head><body>"
|
|
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"]}<br>'
|
|
html += "</body></html>"
|
|
return html
|