From e4a47d025c3e6e55b6cdc339b67568da21a8f5a8 Mon Sep 17 00:00:00 2001 From: mtuszowski Date: Fri, 15 Nov 2024 19:59:50 +0100 Subject: [PATCH] safe --- administration_commands.py | 2 +- ai_functions.py | 1 - librarian_commands.py | 6 ++-- music_commands.py | 54 ++++++++++++++++++----------------- other_commands.py | 7 ++++- other_functions.py | 2 -- radio_commands.py | 6 ++++ thin_client.py | 3 -- voice_recognition_commands.py | 2 ++ 9 files changed, 46 insertions(+), 37 deletions(-) diff --git a/administration_commands.py b/administration_commands.py index 4eac164..6113f05 100644 --- a/administration_commands.py +++ b/administration_commands.py @@ -32,7 +32,7 @@ class AdministrationModule(commands.Cog): description="Jeśli nie wiesz jak użyć tej komendy to nawet nie próbuj", guild=discord.Object(id=664789470779932693), ) - @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane') + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def galeria_slaw(self, ctx): if isinstance(ctx.channel, discord.DMChannel): for guild in self.bot.guilds: diff --git a/ai_functions.py b/ai_functions.py index bbca134..eb1395f 100644 --- a/ai_functions.py +++ b/ai_functions.py @@ -64,7 +64,6 @@ async def handle_response( and the response will be generated using a different model :return: The function `handle_response` returns a tuple containing the `result` and `MESSAGE_TABLE`. """ - # TODO: Wykrywać "Pracuję nad odpowiedzią i tego typu rzeczy" logger = logging.getLogger("discord") logger.info("Wywolanie procedury openai z promptem: %s", prompt) temp = {"role": "user", "content": username + ":" + prompt} diff --git a/librarian_commands.py b/librarian_commands.py index e3c67e8..ed858f6 100644 --- a/librarian_commands.py +++ b/librarian_commands.py @@ -28,6 +28,8 @@ class DataModule(commands.Cog): description="Wyświetla losową stronę z losowego komiksu FanSadox. Bardzo NSFW.", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') + async def get_image_sadox(self, ctx): """ Take in a context parameter and retrieve an image related from fansadox collection. @@ -67,7 +69,6 @@ class DataModule(commands.Cog): await ctx.send(file=file) self.logger.info("Get sadox completed") - # TODO: LIBRARIAN @tasks.loop(seconds=3) async def check_data_q(self): """ @@ -118,7 +119,6 @@ class DataModule(commands.Cog): except Empty: pass - # TODO: LIBRARIAN @commands.hybrid_command( name="wyszukaj_linki_do_dokumentow", description="Szuka linkow doi w bazie crossref i podaje linki do scihuba", @@ -181,12 +181,12 @@ class DataModule(commands.Cog): + " Zapytania obsługuje algorytm zasilany czterema chomikami zapierdalającymi w kołowrotku - więc wyniki najwcześniej za kilka godzi - ale mogą być też dni." ) - # TODO: LIBRARIAN @commands.hybrid_command( name="glebokie_gardlo", description="Przygotowuje drinka o nazwie głębokie gardło", guild=discord.Object(id=664789470779932693), ) + async def wyszukaj_linki_do_dokumentow_deep(self, ctx): """ The function `wyszukaj_linki_do_dokumentow_deep` performs a deep search for links to documents in diff --git a/music_commands.py b/music_commands.py index 1870199..12c4288 100644 --- a/music_commands.py +++ b/music_commands.py @@ -25,6 +25,7 @@ class MusicModule(commands.Cog): name="krecimy_pornola", description="Wiadomo co, dla kogo i po co", ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def krecimy_pornola(self, ctx): """ Download a music number from youtube. @@ -35,33 +36,28 @@ class MusicModule(commands.Cog): with the Discord API and """ await ctx.send("Dej mnie chwilkę") - allowed = False - for role in ctx.author.roles: - if role.name == "Bartender": - allowed = True - if allowed: - self.logger.info("Pornol") - async with ctx.typing(): - # wyciagnij linka z kontekstu - content = ctx.message.content.split() - for item_yt in content: - if re.match("http.*", item_yt): - sciezka, files = await music_functions.get_file( - ctx, "Pornol", item_yt + self.logger.info("Pornol") + async with ctx.typing(): + # wyciagnij linka z kontekstu + content = ctx.message.content.split() + for item_yt in content: + if re.match("http.*", item_yt): + sciezka, files = await music_functions.get_file( + ctx, "Pornol", item_yt + ) + if files: + self.logger.info("Pornol udany") + await ctx.send( + f"Jest w tajnym archiwum pod adresem{sciezka})" ) - if files: - self.logger.info("Pornol udany") - await ctx.send( - f"Jest w tajnym archiwum pod adresem{sciezka})" - ) - else: - await ctx.reply("Jak ładnie szefa poprosisz.") @commands.hybrid_command( name="co_na_plejliscie_wariacie", description="Wyswietl kawalki ktore sa na pocztku list radia", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') + async def co_na_plejliscie_wariacie(self, ctx): """ Download a music number from youtube. @@ -101,6 +97,7 @@ class MusicModule(commands.Cog): description="Podaj link do youtube - sciagnie i doda muzyke", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def dej_co_z_jutuba(self, ctx): """ Download a music number from youtube. @@ -132,6 +129,7 @@ class MusicModule(commands.Cog): description="Podaj link do spotify - sciagnie i doda muzyke", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def dej_co_ze_spotifaja(self, ctx): """ Get a playlist or a music number from Spotify. @@ -187,6 +185,7 @@ class MusicModule(commands.Cog): description="Wyłącza muzykę i czyści plejliste.", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def cisza(self, ctx): """ Stop playback of the music and clear the queue. @@ -213,6 +212,7 @@ class MusicModule(commands.Cog): description="Przerzuca na następny kawałek", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def dalej(self, ctx): """ Play next track in queue. @@ -230,12 +230,12 @@ class MusicModule(commands.Cog): voice_client.stop() self.logger.info("Next completed") - # TODO: MUSIC @commands.hybrid_command( name="daj_mi_chwile", description="Pauzuje", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def daj_mi_chwile(self, ctx): """ Pause music playback. @@ -254,12 +254,12 @@ class MusicModule(commands.Cog): voice_client.pause() self.logger.info("Pause completed") - # TODO: MUSIC @commands.hybrid_command( name="graj_dalej", description="Odpauzowuje", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def graj_dalej(self, ctx): """ Unpause music and continue playback. @@ -277,12 +277,12 @@ class MusicModule(commands.Cog): voice_client.resume() self.logger.info("Unpause completed") - # TODO: MUSIC @commands.hybrid_command( name="zagraj_mi_kawalek", description="Wyszukuje w bibliotece muzycznej Hammera kawałek który ma zostać zagrany", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def zagraj_mi_kawalek(self, ctx): """ Play a song or music piece in response to a command @@ -327,12 +327,12 @@ class MusicModule(commands.Cog): "Obawiam się że nie mogę nic znaleźć u siebie. Spróbuj komendy '$dej_co_ze_spotifaja' jeśli masz link" ) - # TODO: MUSIC @commands.hybrid_command( name="zrob_mi_plejliste", description="Generuje playliste - param1 - dlugosc, potem slowa wyszukiwania", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def zrob_mi_plejliste(self, ctx): """ Generate a playlist in queue. First word in this command shall be int defining length of the playlist. @@ -394,12 +394,12 @@ class MusicModule(commands.Cog): await ctx.send(reply) self.logger.info("Plejlista zrobiona") - # TODO: MUSIC @commands.hybrid_command( name="zagraj_muzyke_mego_ludu", description="Gra muzyke wyszukana na bazie tematow konwersacji na kanale NZ", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def zagraj_muzyke_mego_ludu(self, ctx): """ Play completeley random playlist based on messaging history. @@ -480,12 +480,12 @@ class MusicModule(commands.Cog): await ctx.send(reply) self.logger.info("Plejlista zrobiona") - # TODO: MUSIC @commands.hybrid_command( name="parametry_muzyki_mego_ludu", description="Konfiguruje komende zagraj muzyke mojego ludu", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def parametry_muzyki_mego_ludu( self, ctx, ile_historii=1500, ile_slow_kluczowych=15, jak_dluga_plejlista=30 ): @@ -547,6 +547,7 @@ class MusicModule(commands.Cog): description="Włącza muzykę na kanale #nocna-zmiana.", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def graj_muzyko(self, ctx): """ Async function named "graj_muzyko" starts music playback on channel "Nocna Zmiana". @@ -603,6 +604,7 @@ class MusicModule(commands.Cog): description="Zaciąga obiekty z pliku", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def batch_download(self, ctx): content_type = ctx.message.attachments[0].content_type check = re.search("text\/plain; *charset=(.*)", content_type, re.IGNORECASE) diff --git a/other_commands.py b/other_commands.py index 22e4691..3609f2d 100644 --- a/other_commands.py +++ b/other_commands.py @@ -20,6 +20,7 @@ class OtherModule(commands.Cog): @commands.hybrid_command( name="przytul", description="Przytul kogoś - daj mention po komendzie :)" ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def przytul(self, ctx, arg: Optional[discord.Member] = None): """ Generate a text about hugging mentioned user. @@ -53,6 +54,7 @@ class OtherModule(commands.Cog): ) @commands.hybrid_command(name="fabryczka", description="Historia fabryczki") + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def fabryczka(self, ctx): """ Send a general description of "fabryczkagate" to channel. @@ -69,6 +71,7 @@ class OtherModule(commands.Cog): description="Resetowanie zegara - dostępne wyłącznie dla Hammera", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def reset_the_clock(self, ctx): """ Reset the clock on "accidents" in Hammer Fortress adding a new one. @@ -105,6 +108,7 @@ class OtherModule(commands.Cog): name="chata_hammera", description="Czas od ostatniego incydentu w AbsinthHammerTimeSpaceContinuum", ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def chata_hammera(self, ctx): """ Send measured time from last incident in Hammer Fortress to the chat. @@ -127,6 +131,7 @@ class OtherModule(commands.Cog): name="historia_incydentow_u_hammera", description="Wyswietla liste incydentów które miały miejsce w AbsinthHammerTimeSpaceContinuum.", ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def historia_incydentow_u_hammera(self, ctx): """ Send a list of incidents in Hammer Fortress to the chat. @@ -149,12 +154,12 @@ class OtherModule(commands.Cog): index += 1 await ctx.send(return_data) - # TODO: RADIO @commands.hybrid_command( name="radio_hardkor", description="Włącza radio Conjurer na kanale #nocna-zmiana.", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def radio_hardkor(self, ctx): """ Plays the radio hardkor stream in the voice channel. diff --git a/other_functions.py b/other_functions.py index 58a69fc..28957d6 100644 --- a/other_functions.py +++ b/other_functions.py @@ -26,7 +26,6 @@ async def async_iterator_generator(range_of_iterable): """ -# TODO: OTHER async def remove_characters(string, character): """ The `remove_characters` function removes all occurrences of a specified character from a given @@ -39,7 +38,6 @@ async def remove_characters(string, character): return string.replace(character, "") -# TODO: OTHER async def max_weight(lista): """ Take a list of weights and return the maximum weight. diff --git a/radio_commands.py b/radio_commands.py index 53234a1..04d4d35 100644 --- a/radio_commands.py +++ b/radio_commands.py @@ -21,6 +21,7 @@ class RadioModule(commands.Cog): description="Przeskocz kawałek w radiu", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def skip_track(self, ctx): async with ctx.typing(): allowed = False @@ -45,6 +46,7 @@ class RadioModule(commands.Cog): description="Komenda ktora uruchamia radio ponownie jakby się zawiesiło", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def zrestartuj_radio(self, ctx): async with ctx.typing(): allowed = False @@ -68,6 +70,7 @@ class RadioModule(commands.Cog): description="Dodaje do listy ulubionych w radiu", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def dodaj_do_ulubionych(self, ctx): """ Generate a playlist in queue. First word in this command shall be int defining length of the playlist. @@ -104,6 +107,7 @@ class RadioModule(commands.Cog): description="Dodaje do listy ulubionych w radiu", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def request_radio(self, ctx): """ Generate a playlist in queue. First word in this command shall be int defining length of the playlist. @@ -138,6 +142,7 @@ class RadioModule(commands.Cog): description="Dodaje do listy ulubionych w radiu", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def stworz_audycje(self, ctx): """ Generate a playlist in queue. First word in this command shall be int defining length of the playlist. @@ -174,6 +179,7 @@ class RadioModule(commands.Cog): description="Czysci liste ulubionych w radiu", guild=discord.Object(id=664789470779932693), ) + @commands.has_any_role('Legenda', 'Jarl', 'Thane' , 'Bartender') async def wyczysc_ulubione(self, ctx): """ Generate a playlist in queue. First word in this command shall be int defining length of the playlist. diff --git a/thin_client.py b/thin_client.py index a54cd6e..ddfefe6 100644 --- a/thin_client.py +++ b/thin_client.py @@ -73,9 +73,6 @@ async def on_ready(): logger.info("ID:", client.user.id) -# TODO: ADMINISTRATION - - # *================================== Run if __name__ == "__main__": logger.info("Starting discord bot") diff --git a/voice_recognition_commands.py b/voice_recognition_commands.py index 67b9be5..4ff2921 100644 --- a/voice_recognition_commands.py +++ b/voice_recognition_commands.py @@ -161,6 +161,7 @@ class Transcriber(commands.Cog): self.logger = logging.getLogger("discord") @commands.hybrid_command(name="transcribe") + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def test(self, ctx): if self.vc: vc = self.vc # to juz powinien byc voice channel z funkcja conenct @@ -231,6 +232,7 @@ class Transcriber(commands.Cog): self.logger.debug("After %s", after) @commands.command(name="stop_transcribe") + @commands.has_any_role('Nocna Zmiana', 'Jarl', 'Thane' , 'Bartender') async def stop(self, ctx): self.check_data.stop() stop_token = CommunicationObject("STOP", None, None)