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}
" \ f"Пользователей прошедших регистрацию: {mongo.users_collection.count_documents({'email': {'$ne': None}})}
" \ f"Студентов: {all_users - teachers}
" \ f"Преподавателей: {teachers}
" \ f"Отписались от уведомлений: {mongo.users_collection.count_documents({'notify_minutes': None})}
" \ f"Отправлено уведомлений за сегодня: {mongo.lessons_collection.count_documents({'notified': True})}
" \ f"Проиндексировано занятий из РУЗа: {mongo.lessons_collection.count_documents({})}
" \ f"
" \ f"
" \ f"Пользователей из Москвы: {mongo.users_collection.count_documents({'campus': 'Москва'}) + mongo.users_collection.count_documents({'campus': {'$exists': False}})}
" \ f"Пользователей из Москвы (регистрация): {mongo.users_collection.count_documents({'campus': 'Москва', 'email': {'$ne': None}}) + mongo.users_collection.count_documents({'campus': {'$exists': False}, 'email': {'$ne': None}})}
" \ f"Пользователей из Перми: {mongo.users_collection.count_documents({'campus': 'Пермь'})}
" \ f"Пользователей из Перми (регистрация): {mongo.users_collection.count_documents({'campus': 'Пермь', 'email': {'$ne': None}})}
" \ f"Пользователей из Нижнего Новгорода: {mongo.users_collection.count_documents({'campus': 'Нижний Новгород'})}
" \ f"Пользователей из Нижнего Новгорода (регистрация): {mongo.users_collection.count_documents({'campus': 'Нижний Новгород', 'email': {'$ne': None}})}
" \ f"Пользователей из Санкт-Петербурга: {mongo.users_collection.count_documents({'campus': 'Санкт-Петербург'})}
" \ f"Пользователей из Санкт-Петербурга (регистрация): {mongo.users_collection.count_documents({'campus': 'Санкт-Петербург', 'email': {'$ne': None}})}
" 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)