b-jokes/processor.py
Administrator 21099cda55 done
2022-10-03 17:09:47 +03:00

47 lines
1.3 KiB
Python

import random
from functools import cached_property
from helpers.mongo import mongo
class Processor:
def __init__(self, data: dict):
self.data = data
self.user_id = data['session']['user']['user_id']
self.message = data['request']['original_utterance']
def next(self):
count_docs = mongo.jokes_collection.count_documents({})
rnd = random.randrange(count_docs)
anek = mongo.jokes_collection.find_one({"id": rnd})
return {
"text": anek['text']
}
def save(self):
return {
"text": "Функционал пока в разработке"
}
def finish(self):
return {
"text": "Пока-пока, заходи еще",
"end_session": True
}
@cached_property
def handlers(self) -> dict:
return {
"следующий": self.next,
"сохрани": self.save,
"закончить": self.finish
}
def process(self) -> dict:
action = self.handlers.get(self.message)
if action is None:
return {
"text": f"Я не понимаю этой команды. Я могу выполнить только действия: {', '.join(self.handlers.keys())}"
}
return action()