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"{name}:\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" if deadline != "-": summary += f"\n🕚 Дедлайн: {deadline}\n" 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): return f"ℹ️ Информация о сборке:\n{commit_id:7}" class Spreadsheets: 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, ] )