diff --git a/TelegramBot/bot.py b/TelegramBot/bot.py
index 489b9da..df81bd1 100644
--- a/TelegramBot/bot.py
+++ b/TelegramBot/bot.py
@@ -108,11 +108,11 @@ def start(update: Update, context: CallbackContext):
student_token = context.args[0] if len(context.args) > 0 else None
if student_token is None:
- update.message.reply_markdown_v2(text=MESSAGES.auth.NO_AUTH)
+ update.message.reply_markdown_v2(text=MESSAGES.Auth.NO_AUTH)
return
# Длинная операция, сообщим о запущенном процессе.
- update.message.reply_text(text=MESSAGES.auth.START)
+ update.message.reply_text(text=MESSAGES.Auth.START)
LOG.info(f"Authenticanting {user_id}")
@@ -124,18 +124,18 @@ def start(update: Update, context: CallbackContext):
data = req.json()
except requests.exceptions.RequestException:
LOG.exception("@{username} вызвал: Ошибка подключения к сервису Spreadsheets.")
- update.message.reply_sticker(MESSAGES.stickers.DEAD)
+ update.message.reply_sticker(MESSAGES.Stickers.DEAD)
return
if req.status_code != 200:
LOG.error(f"Ошибка авторизации, у пользователя @{username} {data}")
err = data.get("error", "")
- update.message.reply_text(text=MESSAGES.auth.failure(err))
- update.message.reply_sticker(MESSAGES.stickers.DEAD)
+ update.message.reply_text(text=MESSAGES.Auth.failure(err))
+ update.message.reply_sticker(MESSAGES.Stickers.DEAD)
return
update.message.reply_text(
- text=MESSAGES.auth.hello(data["student"]),
+ text=MESSAGES.Auth.hello(data["student"]),
)
@@ -146,21 +146,21 @@ def grades(update: Update, context: CallbackContext):
start = time.monotonic()
# Длинная операция, сообщим о запущенном процессе.
- look_msg = update.message.reply_html(MESSAGES.score.START)
+ look_msg = update.message.reply_html(MESSAGES.Score.START)
try:
data = requests.get(f"{HOST}/grades", params={"tg_id": user_id}).json()
score = data["score"]
grade = data["grade"]
n_of_assignments = len(data["assignments"])
- score_message = MESSAGES.score.get(grade, score, n_of_assignments)
+ score_message = MESSAGES.Score.get(grade, score, n_of_assignments)
update.message.reply_html(score_message)
- update.message.reply_sticker(MESSAGES.stickers.bad())
+ update.message.reply_sticker(MESSAGES.Stickers.bad())
except:
LOG.exception("Failed to get grades.")
- update.message.reply_sticker(MESSAGES.stickers.DEAD)
+ update.message.reply_sticker(MESSAGES.Stickers.DEAD)
diff = time.monotonic() - start
- look_msg.edit_text(MESSAGES.score.timeit(diff))
+ look_msg.edit_text(MESSAGES.Score.timeit(diff))
def echo(update: Update, context: CallbackContext):
diff --git a/TelegramBot/messages/messages.py b/TelegramBot/messages/messages.py
index b327ad3..48b23bd 100644
--- a/TelegramBot/messages/messages.py
+++ b/TelegramBot/messages/messages.py
@@ -3,15 +3,17 @@ import random
class Messages:
class Auth:
- def __init__(self):
- self.NO_AUTH = "[Правила авторизации](https://github.com/Faridik/Carolyn/wiki/%F0%9F%A6%B8%E2%80%8D%E2%99%82%EF%B8%8F-%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)"
- self.START = "🔑 Авторизация..."
- self.NO_ACCESS = "⛔ Нет доступа"
+ NO_AUTH = "[Правила авторизации](https://github.com/Faridik/Carolyn/wiki/%F0%9F%A6%B8%E2%80%8D%E2%99%82%EF%B8%8F-%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F)"
+ START = "🔑 Авторизация..."
+ NO_ACCESS = "⛔ Нет доступа"
- def hello(self, data):
- return f"Привет, {data['name']} 👋"
+ @staticmethod
+ def hello(data):
+ name = data.get("name", "студент")
+ return f"Привет, {name} 👋"
- def failure(self, err: str):
+ @staticmethod
+ def failure(err: str):
cases = {
"StudentNotFound": "⛔ Ссылка больше не работает",
"StudentAlreadyAuthed": "⛔ Регистрация по этой ссылке уже прошла",
@@ -19,16 +21,11 @@ class Messages:
}
return cases.get(err, "😟 Возникли неполадки")
- def success_log(self, data):
- return f"✅ AUTH: {data['name']} "
-
- def failure_log(self, data):
- return f"🟥 AUTH: {data['desc']}"
-
class Score:
START = "👀 Посмотрим (~3с) ..."
- def get(self, grade, score, n_of_assignments):
+ @staticmethod
+ def get(grade, score, n_of_assignments):
summary = (
f"Ранг: {score:.2f} {n_of_assignments} зад.\n"
+ f"Оценка: {grade:.2f}"
@@ -40,42 +37,69 @@ class Messages:
return f"⏱ Посмотрели за {t:.2f}с"
class Spreadsheets:
- def __init__(self):
- self.DEAD = "⚰ Сервис «таблицы» недоступен"
+ pass
class Stickers:
- def __init__(self):
- # Воробей павлик с колокольчиком и надписью "позор"
- self.POZOR = "CAACAgIAAxkBAAEm1RhhBZg-2D6NypUeTsnbToD8_LMFTAACuUcAAulVBRjfnofQTkeMnCAE"
- # кот Сима в петле плачет и показывает палец вверх
- self.ROPE = "CAACAgIAAxkBAAEm1SFhBZjLaZgFIkvyxfBmAplwUWQFwwACBS0AAulVBRiIaSQ42WLoyyAE"
- # Акио смотрит на брокколи
- self.BROCCOLI = "CAACAgIAAxkBAAEm1SVhBZkd24Dy2B_wYSCi6UrNuUjgwQACEUkAAulVBRiykDzrzywbmiAE"
- # Ян показывает палец вниз
- self.THUMB_DOWN = "CAACAgIAAxkBAAEm1SthBZlcos0_TbJo8W7mAcqGLNAh2wACJ5cAAp7OCwABDddMclD7Tf8gBA"
- # Тигр закатывает глаза
- self.EYES_UP = "CAACAgEAAxkBAAEm1TBhBZmIZTrwzhGSzC47rNFbewQe6QAC4gADOA6CEeTgk4YIcTeWIAQ"
- # Нутри большими глазами и надписью "пипец"
- self.PPTS = "CAACAgIAAxkBAAEm1TZhBZnNVwLXmrbZwvdGjxiSwefzDAACn0sAAulVBRhECmBPSGCXHSAE"
- # Попугай Кент с недовольной мордахой
- self.GRUMPY_KENT = "CAACAgIAAxkBAAEm1UBhBZn1gXmRfxaK_RqFTj1aFxLY-gACy0EAAulVBRhgQdlH2rd0uyAE"
- # wojak
- self.WOJAK = "CAACAgIAAxkBAAEm1UJhBZpfHNYVT_ZLrxUpyi8qRLWJGgACPAADB7lDCi2YrzAEyxJeIAQ"
- # Лэтишный котик и надпись "ОЙ"
- self.OOPS = "CAACAgIAAxkBAAEm1URhBZp2li7w2E1M6PirG7UnqLOc2QACSxEAAlTE4UoR1Olz8RANZCAE"
- # Мем "оп ахах неловко вышло"
- self.NELOVKO = "CAACAgIAAxkBAAEm1UZhBZqZ94SFa1e6d-Zy5I-6_SC_fQACgwgAAh8MqEiLbHl9nugoYSAE"
- # Попугай смотрит в зеркало "посмотри что с тобой стало"
- self.MIRROR = "CAACAgIAAxkBAAEm1VFhBZudma_FmFhybGgXikz3csc0BQAC2UEAAulVBRgkdje995ir7iAE"
- # Попугай с сигаретой
- self.CIG = "CAACAgIAAxkBAAEm1VZhBZv6p7GsHS6wcyt2mCXoHJCo-wAC0UEAAulVBRghLLSQAcU6rSAE"
- # Попугай и песок
- self.SAND = "CAACAgIAAxkBAAEm1VhhBZwbw83_UVS8A5Crsf3EVAABvWIAAshBAALpVQUYl51K7ci-ClIgBA"
- # Акио падает в обморок
- self.PANIC = "CAACAgIAAxkBAAEm1VxhBZxwqRUJmVXDtzmsPJUIIGJgegACB0kAAulVBRiMI-hzK3GcKiAE"
- # Эникей надпись "умер"
- self.DEAD = "CAACAgIAAxkBAAEm1aRhBaWXRb_tcI03O1onx0jW0bHmuAACejcAAulVBRi1oSUXeBATmiAE"
+ # Воробей павлик с колокольчиком и надписью "позор"
+ POZOR = (
+ "CAACAgIAAxkBAAEm1RhhBZg-2D6NypUeTsnbToD8_LMFTAACuUcAAulVBRjfnofQTkeMnCAE"
+ )
+ # кот Сима в петле плачет и показывает палец вверх
+ ROPE = (
+ "CAACAgIAAxkBAAEm1SFhBZjLaZgFIkvyxfBmAplwUWQFwwACBS0AAulVBRiIaSQ42WLoyyAE"
+ )
+ # Акио смотрит на брокколи
+ BROCCOLI = (
+ "CAACAgIAAxkBAAEm1SVhBZkd24Dy2B_wYSCi6UrNuUjgwQACEUkAAulVBRiykDzrzywbmiAE"
+ )
+ # Ян показывает палец вниз
+ THUMB_DOWN = (
+ "CAACAgIAAxkBAAEm1SthBZlcos0_TbJo8W7mAcqGLNAh2wACJ5cAAp7OCwABDddMclD7Tf8gBA"
+ )
+ # Тигр закатывает глаза
+ EYES_UP = (
+ "CAACAgEAAxkBAAEm1TBhBZmIZTrwzhGSzC47rNFbewQe6QAC4gADOA6CEeTgk4YIcTeWIAQ"
+ )
+ # Нутри большими глазами и надписью "пипец"
+ PPTS = (
+ "CAACAgIAAxkBAAEm1TZhBZnNVwLXmrbZwvdGjxiSwefzDAACn0sAAulVBRhECmBPSGCXHSAE"
+ )
+ # Попугай Кент с недовольной мордахой
+ GRUMPY_KENT = (
+ "CAACAgIAAxkBAAEm1UBhBZn1gXmRfxaK_RqFTj1aFxLY-gACy0EAAulVBRhgQdlH2rd0uyAE"
+ )
+ # wojak
+ WOJAK = (
+ "CAACAgIAAxkBAAEm1UJhBZpfHNYVT_ZLrxUpyi8qRLWJGgACPAADB7lDCi2YrzAEyxJeIAQ"
+ )
+ # Лэтишный котик и надпись "ОЙ"
+ OOPS = (
+ "CAACAgIAAxkBAAEm1URhBZp2li7w2E1M6PirG7UnqLOc2QACSxEAAlTE4UoR1Olz8RANZCAE"
+ )
+ # Мем "оп ахах неловко вышло"
+ NELOVKO = (
+ "CAACAgIAAxkBAAEm1UZhBZqZ94SFa1e6d-Zy5I-6_SC_fQACgwgAAh8MqEiLbHl9nugoYSAE"
+ )
+ # Попугай смотрит в зеркало "посмотри что с тобой стало"
+ MIRROR = (
+ "CAACAgIAAxkBAAEm1VFhBZudma_FmFhybGgXikz3csc0BQAC2UEAAulVBRgkdje995ir7iAE"
+ )
+ # Попугай с сигаретой
+ CIG = "CAACAgIAAxkBAAEm1VZhBZv6p7GsHS6wcyt2mCXoHJCo-wAC0UEAAulVBRghLLSQAcU6rSAE"
+ # Попугай и песок
+ SAND = (
+ "CAACAgIAAxkBAAEm1VhhBZwbw83_UVS8A5Crsf3EVAABvWIAAshBAALpVQUYl51K7ci-ClIgBA"
+ )
+ # Акио падает в обморок
+ PANIC = (
+ "CAACAgIAAxkBAAEm1VxhBZxwqRUJmVXDtzmsPJUIIGJgegACB0kAAulVBRiMI-hzK3GcKiAE"
+ )
+ # Эникей надпись "умер"
+ DEAD = (
+ "CAACAgIAAxkBAAEm1aRhBaWXRb_tcI03O1onx0jW0bHmuAACejcAAulVBRi1oSUXeBATmiAE"
+ )
+ @classmethod
def bad(self):
"""Возвращает стикер с грустным смыслом."""
return random.choice(
@@ -96,9 +120,3 @@ class Messages:
self.PANIC,
]
)
-
- def __init__(self):
- self.auth = self.Auth()
- self.score = self.Score()
- self.spreadsheets = self.Spreadsheets()
- self.stickers = self.Stickers()