210 lines
8.9 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import random
class Messages:
class Auth:
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 = "⛔ Нет доступа"
@staticmethod
def hello(data):
name = data.get("name", "студент")
return f"Привет, {name} 👋"
@staticmethod
def failure(err: str):
cases = {
"StudentNotFound": "⛔ Ссылка больше не работает",
"StudentAlreadyAuthed": "⛔ Регистрация по этой ссылке уже прошла",
"AnotherStudentAlreadyAuthed": "😨 Кто-то другой уже зерегистрировался по этой ссылке",
}
return cases.get(err, "😟 Возникли неполадки")
class Assignments:
START = "👀 Посмотрим (~5с) ..."
SELECT_COURSE = "👇 Выбери дисциплину"
SELECT_ASSNT = "👇 Выбери работу"
END = "😉 Всего наилучшего"
TIMEOUT = "🕛 Время запроса вышло"
@staticmethod
def get(
name: str, assignment: list, how_to_display: str, notes: str, deadline: str
):
is_float, n_cols, n_rows = how_to_display.split(",")
n_cols, n_rows = int(n_cols), int(n_rows)
summary = f"<b>{name}</b>:\n"
if is_float == "z":
d = {0: "🟥", 1: ""}
for item in range(0, len(assignment), n_cols):
summary += (
"".join(list(map(d.get, assignment[item : item + n_cols])))
+ "\n"
)
elif is_float == "r":
to_str = lambda x: f"{x:.2f}"
for item in range(0, len(assignment), n_cols):
summary += (
" ".join(list(map(to_str, assignment[item : item + n_cols])))
+ "\n"
)
summary += f"Σ: {to_str(sum(assignment))}\n"
elif is_float == "s":
for item in range(0, len(assignment), n_cols):
summary += (
" ".join(list(map(to_str, assignment[item : item + n_cols])))
+ "\n"
)
if deadline != "-":
summary += f"\n🕚 Дедлайн: {deadline}\n"
if notes:
summary += f"\n📝 {notes}"
return summary
@staticmethod
def timeit(t: float):
return f"⏱ Посмотрели за {t:.2f}с"
@staticmethod
def failure(err: str):
cases = {
"StudentNotFound": "⛔ Для получения оценок нужно зарегистрироваться."
+ "Команда /start поможет с регистрацией",
}
return cases.get(err, "😟 Возникли неполадки")
class Sub:
START = "📜✍ Оформляю подписку на уведомления..."
SUBBED = "👌 Подписка на уведомления оформлена"
GRADES_CHANGED = (
"💌 Твои оценки изменились! Вызови команду /grades, чтобы узнать!"
)
@staticmethod
def failure(err: str):
cases = {
"StudentNotFound": "⛔ Для подписки нужно зарегистрироваться."
+ "Команда /start поможет с регистрацией",
"StudentAlreadySubbed": "💁‍♀️ Подписка уже оформлена ранее",
}
return cases.get(err, "😟 Возникли неполадки")
class Unsub:
START = "📜✍ Оформляю отписку от уведомлений..."
UNSUBBED = "🙄 Подписка на уведомления отменена"
@staticmethod
def failure(err: str):
cases = {
"StudentNotFound": "⛔ Для отписки от уведомлений нужно зарегистрироваться."
+ "Команда /start поможет с регистрацией",
"StudentAlreadyUnsubbed": "💁‍♀️ Подписка на уведомления не была оформлена или уже отменена",
}
return cases.get(err, "😟 Возникли неполадки")
class Variant:
START = "👀 Узнаю вариант..."
@staticmethod
def get(number: int):
return f"🔢 Твой вариант: {number}"
@staticmethod
def failure(err: str):
cases = {
"StudentNotFound": "⛔ Чтобы узнать свой вариант, нужно зарегистрироваться."
+ "Команда /start поможет с регистрацией",
}
return cases.get(err, "😟 Возникли неполадки")
class Deploy:
@staticmethod
def about(commit_id: str, git_describe):
return f" Версия сборки:\n<a href='https://github.com/Faridik/Carolyn/commit/{commit_id}'>{git_describe}</a>"
class Google:
pass
class Stickers:
# Воробей павлик с колокольчиком и надписью "позор"
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(
[
self.POZOR,
self.ROPE,
self.BROCCOLI,
self.THUMB_DOWN,
self.EYES_UP,
self.PPTS,
self.GRUMPY_KENT,
self.WOJAK,
self.OOPS,
self.NELOVKO,
self.MIRROR,
self.CIG,
self.SAND,
self.PANIC,
]
)