diff --git a/.deploy/deploy-dev.yaml b/.deploy/deploy-dev.yaml index bc645d4..8481d66 100644 --- a/.deploy/deploy-dev.yaml +++ b/.deploy/deploy-dev.yaml @@ -9,6 +9,8 @@ services: TELEGRAM_TOKEN: $TELEGRAM_TOKEN_DEV MONGO_HOST: "mongo.develop.sprinthub.ru" MONGO_PASSWORD: $MONGO_PASSWORD_DEV + PLATFORM_SECURITY_TOKEN: $PLATFORM_SECURITY_TOKEN + STAGE: "development" deploy: mode: replicated restart_policy: diff --git a/.deploy/deploy-prod.yaml b/.deploy/deploy-prod.yaml index 7c8f733..29ec39c 100644 --- a/.deploy/deploy-prod.yaml +++ b/.deploy/deploy-prod.yaml @@ -9,6 +9,8 @@ services: TELEGRAM_TOKEN: $TELEGRAM_TOKEN_PROD MONGO_HOST: "mongo.sprinthub.ru" MONGO_PASSWORD: $MONGO_PASSWORD_PROD + PLATFORM_SECURITY_TOKEN: $PLATFORM_SECURITY_TOKEN + STAGE: "production" deploy: mode: replicated restart_policy: diff --git a/Dockerfile b/Dockerfile index df96abb..3c5568e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,4 +4,5 @@ WORKDIR /usr/src/app COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . +ENV PYTHONUNBUFFERED 1 ENTRYPOINT ["python", "main.py"] \ No newline at end of file diff --git a/main.py b/main.py index b3a3578..1556829 100644 --- a/main.py +++ b/main.py @@ -2,37 +2,82 @@ import os from random import randrange import telebot +from cachetools import TTLCache +from requests import get from telebot.types import Message from mongo import mongo from storage import set_values, get_chat_info + +DEFAULT_ANSWERS = { + "a": "Хуй на!", + "da": "Pizda!", + "а": "Хуй на!", + "200": "Отсоси на месте!", + "300": "Отсоси у тракториста!", + "dа": "Pizda!", + "gde": "V pizde!", + "net": "Pidora otvet!", + "дa": "Пизда!", + "чe": "Хуй через плечо!", + "чo": "Хуй через плечо!", + "gdе": "V pizde!", + "heт": "Пидора ответ!", + "nеt": "Pidora otvet!", + "да": "Пизда!", + "че": "Хуй через плечо!", + "чо": "Хуй через плечо!", + "чё": "Хуй через плечо!", + "hет": "Пидора ответ!", + "гдe": "В пизде!", + "нeт": "Пидора ответ!", + "ага": "В жопе нога!", + "где": "В пизде!", + "как": "Жопой об косяк!", + "кто": "Конь в пальто!", + "нет": "Пидора ответ!", + "ога": "В жопе нога!", + "опа": "Срослась пизда и жопа!", + "угу": "Иди в пизду!", + "слыш": "За углом поссышь!", + "ладно": "Прохладно!", + "слышь": "За углом поссышь!", + "двести": "Отсоси на месте!", + "триста": "Отсоси у тракториста!", + "здрасте": "Пизду покрасьте!", + "здрасьте": "Пизду покрасьте!" +} + bot = telebot.TeleBot(os.getenv("TELEGRAM_TOKEN")) +security_token = os.getenv("PLATFORM_SECURITY_TOKEN") +stage = os.getenv("STAGE") all_letters = "йцукенгшщзхъёфывапролджэячсмитьбюЙЦУКЕНГШЩЗХЪЁФЫВАПРОЛДЖЭЯЧСМИТЬБЮQWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890 " -answers = [ - [{"да", "дa"}, "Пизда!"], - [{"da", "dа"}, "Pizda!"], - [{'нет', 'нeт', 'hет', 'heт'}, "Пидора ответ!"], - [{"net", "nеt"}, "Pidora otvet!"], - [{"где", "гдe"}, "В пизде!"], - [{"gde", "gdе"}, "V pizde!"], - [{"300", "триста"}, "Отсоси у тракториста!"], - [{"a", "а"}, "Хуй на!"], - [{"че", "чё", "чe", "чо", "чo"}, "Хуй через плечо!"], - [{"ага", "ога"}, "В жопе нога!"], - [{"как"}, "Жопой об косяк!"], - [{"кто"}, "Конь в пальто!"], - [{"200", "двести"}, "Отсоси на месте!"], - [{"слышь", "слыш"}, "За углом поссышь!"], - [{"здрасте", "здрасьте"}, "Пизду покрасьте!"], - [{"ладно"}, "Прохладно!"], - [{"угу"}, "Иди в пизду!"], - [{"опа"}, "Срослась пизда и жопа!"] -] +CACHE_CONFIG = TTLCache(1, 60) + + +def get_answers(): + answers = CACHE_CONFIG.get('answers') + if answers is None: + answers_response = get( + 'https://platform.sprinthub.ru/configs/get', + headers={'X-Security-Token': security_token}, + params={ + 'project': "Pizda Bot", + 'stage': stage, + 'name': "answers" + } + ) + if answers_response.status_code != 200: + print("ERROR") + return DEFAULT_ANSWERS + answers = answers_response.json() + CACHE_CONFIG['answers'] = answers + return answers @bot.message_handler(commands=['setprobability']) @@ -76,11 +121,7 @@ def do_action(message: Message): convert_text = convert_text[-1] else: return - ans = None - for key, value in answers: - if convert_text in key: - ans = value - break + ans = get_answers().get(convert_text) if ans is not None and randrange(1, 101) <= info["probability"]: bot.reply_to(message, ans) mongo.inc(message.from_user.username, message.chat.id)