Patai5 / BakaBot

Discord Bot and Web Scraper for the Czech online schooling system "Bakaláři"
GNU General Public License v3.0
2 stars 1 forks source link

Nastavení kanálů #6

Closed janStulhofer closed 6 months ago

janStulhofer commented 7 months ago

Dobrý den, chtěl bych se zeptat zda bot stále funguje. Snažil jsem se ho zprovoznit vše šlo hladce do spuštění, kdy vyžadoval nastavení kanálů přes příkaz "/channel function:Grades" po spuštění příkazu na Discordu jsem dostal chybovou hlášku "Aplikace neodpovídá", v terminálu: Ignoring exception in slash command 'channel': Traceback (most recent call last): File "/home/jst/BakaBot/env/lib/python3.12/site-packages/disnake/ext/commands/interaction_bot_base.py", line 1378, in process_application_commands await app_command.invoke(interaction) File "/home/jst/BakaBot/env/lib/python3.12/site-packages/disnake/ext/commands/slash_core.py", line 717, in invoke await self.prepare(inter) File "/home/jst/BakaBot/env/lib/python3.12/site-packages/disnake/ext/commands/base_core.py", line 315, in prepare raise CheckFailure(f"The check functions for command {self.qualified_name!r} failed.") disnake.ext.commands.errors.CheckFailure: The check functions for command 'channel' failed. Nevíte čím by to mohlo být?

Patai5 commented 6 months ago

Dobrý den, mně bot funguje tak jak má :)

Ten bug pochazi od disnaku, coz je discord API wrapper, ktery bot pouziva. Pravdepodobne se jedna o nedostatecna opravneny bota na serveru. Zkuste botovi pridat vsechna opravneni a znovu ho spustit. Mozna by mohl byt konflikt na serveru i s nejakym jinym botem co pouziva /channel?

Mimochodem bakabot obsahuje dost nahardcodovanych promenych prave na moje bakalare, nicmene to by s touto chybou nemelo nijak souviset. Tady je priklad funkcniho repa, ktere si z bababota nekdo forknul: https://github.com/Vojtak42/BakaBot

janStulhofer commented 6 months ago

Dobrý den, nakonec jsem vyřešil první problém, funkce admin_user_check chybně určovala zda je uživatel admin, nebo ne (tedy alespoň nefungovala správně i když bot byl admin, měl povolené všechny oprávnění i na discord dev portálu). Následně jsem změnil nahardcodované URL a předměty, pak se objevil tento error: ` File "/home/jst/BakaBot/src/bakabot/main.py", line 34, in on_ready await start_feature_couroutines(client) File "/home/jst/BakaBot/src/bakabot/main.py", line 61, in start_feature_couroutines await asyncio.gather( File "/home/jst/BakaBot/src/bakabot/core/reminder.py", line 145, in start_reminding when = Reminder.get_remind_time(Schedule.db_schedule(), get_weekday_sec()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jst/BakaBot/src/bakabot/core/reminder.py", line 41, in get_remind_time nextLesson = Reminder.next_reminder_lesson(schedule.days[weekDay], currentTimeSec) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/jst/BakaBot/src/bakabot/core/reminder.py", line 65, in next_reminder_lesson if Reminder.REMIND[lesson.hour] > currentTimeSec:


IndexError: list index out of range`  

Do logů se ukládá správný HTML soubor s rozvrhem, v konzoli se potom vypíše samotný HTML kód, ale bot ho není schopen parsovat nejspíše.
Patai5 commented 6 months ago

Funkce admin_user_check checkuje jestli je uzivatel, co prikaz pouzil admin, podle nastaveni: https://github.com/Patai5/BakaBot/blob/6d7278bc6f1169b6143bfd36971fd7a9c55a2e3e/.env.example#L4


Vypada to, ze vase bakalari maji jiny pocet hodin ve dne nez ty moje a kvuli tomu to pak crashuje na dalsich nahardcodovanych konstantach :D Rekl bych, ze bude snad stacit pouze zmenit/pridat par hodnot sem: https://github.com/Patai5/BakaBot/blob/6d7278bc6f1169b6143bfd36971fd7a9c55a2e3e/src/bakabot/core/reminder.py#L11-L26 je to v sekundach od zacatku dne, nejakej dement to tam nikde nenapsal 😅

popripade todle: https://github.com/Patai5/BakaBot/blob/6d7278bc6f1169b6143bfd36971fd7a9c55a2e3e/src/bakabot/constants.py#L2