49 lines
3.2 KiB
Python
49 lines
3.2 KiB
Python
from flask import Flask, request
|
||
|
||
import settings
|
||
from helpers.alice import Processor
|
||
from helpers.mongo import mongo
|
||
|
||
|
||
def api():
|
||
app = Flask(__name__)
|
||
|
||
@app.route('/stats', methods=['GET'])
|
||
def stats():
|
||
all_users = mongo.users_collection.count_documents({})
|
||
teachers = mongo.users_collection.count_documents({"is_teacher": True})
|
||
text = f"Всего пользователей: {all_users}<br>" \
|
||
f"Пользователей прошедших регистрацию: {mongo.users_collection.count_documents({'email': {'$ne': None}})}<br>" \
|
||
f"Студентов: {all_users - teachers}<br>" \
|
||
f"Преподавателей: {teachers}<br>" \
|
||
f"Отписались от уведомлений: {mongo.users_collection.count_documents({'notify_minutes': None})}<br>" \
|
||
f"Отправлено уведомлений за сегодня: {mongo.lessons_collection.count_documents({'notified': True})}<br>" \
|
||
f"Проиндексировано занятий из РУЗа: {mongo.lessons_collection.count_documents({})}<br>" \
|
||
f"<br>" \
|
||
f"<br>" \
|
||
f"Пользователей из Москвы: {mongo.users_collection.count_documents({'campus': 'Москва'}) + mongo.users_collection.count_documents({'campus': {'$exists': False}})}<br>" \
|
||
f"Пользователей из Москвы (регистрация): {mongo.users_collection.count_documents({'campus': 'Москва', 'email': {'$ne': None}}) + mongo.users_collection.count_documents({'campus': {'$exists': False}, 'email': {'$ne': None}})}<br>" \
|
||
f"Пользователей из Перми: {mongo.users_collection.count_documents({'campus': 'Пермь'})}<br>" \
|
||
f"Пользователей из Перми (регистрация): {mongo.users_collection.count_documents({'campus': 'Пермь', 'email': {'$ne': None}})}<br>" \
|
||
f"Пользователей из Нижнего Новгорода: {mongo.users_collection.count_documents({'campus': 'Нижний Новгород'})}<br>" \
|
||
f"Пользователей из Нижнего Новгорода (регистрация): {mongo.users_collection.count_documents({'campus': 'Нижний Новгород', 'email': {'$ne': None}})}<br>" \
|
||
f"Пользователей из Санкт-Петербурга: {mongo.users_collection.count_documents({'campus': 'Санкт-Петербург'})}<br>" \
|
||
f"Пользователей из Санкт-Петербурга (регистрация): {mongo.users_collection.count_documents({'campus': 'Санкт-Петербург', 'email': {'$ne': None}})}<br>"
|
||
return text
|
||
|
||
@app.route('/alice', methods=['POST'])
|
||
def alice():
|
||
req = request.json
|
||
processor = Processor(req)
|
||
response = {
|
||
"version": req['version'],
|
||
"session": req['session'],
|
||
"response": {
|
||
"end_session": False
|
||
}
|
||
}
|
||
response['response'].update(processor.process())
|
||
return response
|
||
|
||
app.run(host="0.0.0.0", port=1238, debug=settings.DEBUG)
|