mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00:00
Suppress
This commit is contained in:
@@ -36,6 +36,7 @@ import spotipy
|
||||
import tiktoken
|
||||
from discord.ext import commands, tasks
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
|
||||
import yt_dlp
|
||||
from spotify_dl import spotify
|
||||
from spotify_dl import youtube as youtube_download
|
||||
@@ -166,11 +167,13 @@ logger.info("Playlist generation")
|
||||
|
||||
# *=========================================== Load Data files
|
||||
|
||||
|
||||
class MusicFileList(object):
|
||||
"""
|
||||
The `MusicFileList` class manages a list of music files, with the ability to refresh the list from a
|
||||
file service or local directory and update the list with new items.
|
||||
The `MusicFileList` class manages a list of music files, with the ability to refresh the list from a
|
||||
file service or local directory and update the list with new items.
|
||||
"""
|
||||
|
||||
def __init__(self, uplogger) -> None:
|
||||
self.music_file_list = []
|
||||
self.file_service_active = False
|
||||
@@ -184,7 +187,7 @@ class MusicFileList(object):
|
||||
"""
|
||||
try:
|
||||
self.logger.info("Attempt to connect to file service")
|
||||
response = requests.get(f'{FILE_SERVICE_ADDRESS}{GET_MP3}',timeout=360)
|
||||
response = requests.get(f"{FILE_SERVICE_ADDRESS}{GET_MP3}", timeout=360)
|
||||
self.music_file_list = response.json()["music_file_list"]
|
||||
self.file_service_active = True
|
||||
except requests.exceptions.RequestException as e:
|
||||
@@ -196,13 +199,15 @@ class MusicFileList(object):
|
||||
self.file_service_active = False
|
||||
self.logger.error(e.strerror)
|
||||
self.logger.error("Service Unavailable")
|
||||
|
||||
def get_file_list(self):
|
||||
"""
|
||||
The `get_file_list` function returns the list of music files stored in the object.
|
||||
:return: The `music_file_list` attribute is being returned.
|
||||
"""
|
||||
return self.music_file_list
|
||||
def update_file_list(self,item):
|
||||
|
||||
def update_file_list(self, item):
|
||||
"""
|
||||
The `update_file_list` function appends an item to a music file list and sends a POST request with
|
||||
the item data to a file service address.
|
||||
@@ -212,8 +217,9 @@ class MusicFileList(object):
|
||||
POST request to a file service address along with the endpoint `SEND_MP3`
|
||||
"""
|
||||
self.music_file_list.append(item)
|
||||
post_data = {"item" : str(item)}
|
||||
requests.post(f'{FILE_SERVICE_ADDRESS}{SEND_MP3}', json=post_data, timeout = 360)
|
||||
post_data = {"item": str(item)}
|
||||
requests.post(f"{FILE_SERVICE_ADDRESS}{SEND_MP3}", json=post_data, timeout=360)
|
||||
|
||||
|
||||
music_file_list = []
|
||||
music_file_list = MusicFileList(logger)
|
||||
@@ -268,6 +274,9 @@ async def on_ready():
|
||||
|
||||
|
||||
@client.event
|
||||
# trunk-ignore(pylint/R0915)
|
||||
# trunk-ignore(pylint/R0914)
|
||||
# trunk-ignore(pylint/R0912)
|
||||
async def on_message(message):
|
||||
"""
|
||||
Handle incoming messages in a Discord server, perform various
|
||||
@@ -473,6 +482,8 @@ async def disconnect(ctx):
|
||||
await voice_client.disconnect()
|
||||
|
||||
|
||||
# trunk-ignore(pylint/R0915)
|
||||
# trunk-ignore(pylint/R0912)
|
||||
async def play(ctx, zamawial=None, arg=None):
|
||||
"""
|
||||
Play a music file, retrieve metadata about the file, and send a
|
||||
@@ -582,12 +593,18 @@ async def check_music():
|
||||
"""
|
||||
if client.voice_clients:
|
||||
voice_client = client.voice_clients[0]
|
||||
if voice_client and voice_client.is_connected() and not voice_client.is_playing() and not voice_client.is_paused():
|
||||
if (
|
||||
voice_client
|
||||
and voice_client.is_connected()
|
||||
and not voice_client.is_playing()
|
||||
and not voice_client.is_paused()
|
||||
):
|
||||
await play(MUZYKA["ctx"], MUZYKA["requester"])
|
||||
await asyncio.sleep(2)
|
||||
|
||||
|
||||
@tasks.loop(seconds=120)
|
||||
# trunk-ignore(pylint/R0915)
|
||||
async def check_data():
|
||||
"""
|
||||
The function `check_data` periodically checks for conditions to send messages and manage log files
|
||||
@@ -610,7 +627,7 @@ async def check_data():
|
||||
handler.doRollover()
|
||||
await channel.send(
|
||||
"*Przeciąga się za barem* No dobra - porobione to można dalej pi... *Zauważa spojrzenie Hammera* ...sać powieści o naszym wspaniałym barze SZEFIE!"
|
||||
)
|
||||
)
|
||||
|
||||
if os.path.getsize(MEMORY_FIVE_MUZYKA) > 300000:
|
||||
await channel.send(
|
||||
@@ -653,13 +670,17 @@ async def check_data():
|
||||
await channel.send(
|
||||
"*Przeciąga się za barem* No dobra - porobione to można dalej pi... *Zauważa spojrzenie Hammera* eprzyć o głupotach z klientami... Szefie... *Bierze 'ukradkowy' łyk z piersiówki*"
|
||||
)
|
||||
# trunk-ignore(pylint/W0603)
|
||||
global LAST_SPONTANEOUS_CALL
|
||||
# trunk-ignore(pylint/W0603)
|
||||
global TIME_BETWEEN_CALLS
|
||||
tdelta = datetime.now() - LAST_SPONTANEOUS_CALL
|
||||
tdelta = tdelta.total_seconds()
|
||||
if tdelta > TIME_BETWEEN_CALLS:
|
||||
logger.info("Spontaneous call")
|
||||
TIME_BETWEEN_CALLS = random.randint(7200,172800) #temp random, set after each call
|
||||
TIME_BETWEEN_CALLS = random.randint(
|
||||
7200, 172800
|
||||
) # temp random, set after each call
|
||||
logger.debug(TIME_BETWEEN_CALLS)
|
||||
LAST_SPONTANEOUS_CALL = datetime.now()
|
||||
async with channel.typing():
|
||||
@@ -677,7 +698,7 @@ async def get_random_cyclic_message():
|
||||
"""
|
||||
channel_id = 1062047367337095268
|
||||
channel = client.get_channel(channel_id)
|
||||
ai_check = random.randint(0,10)
|
||||
ai_check = random.randint(0, 10)
|
||||
logger.info("Losowa wypowiedź")
|
||||
if ai_check < 2:
|
||||
logger.info("Predefiniowana")
|
||||
@@ -686,28 +707,48 @@ async def get_random_cyclic_message():
|
||||
logger.debug(len(cyclic_words))
|
||||
mess_key = list(cyclic_words.keys())[messnum]
|
||||
return cyclic_words[mess_key][0]
|
||||
ai_check2 = random.randint(0,10)
|
||||
ai_check2 = random.randint(0, 10)
|
||||
# trunk-ignore(pylint/W0603)
|
||||
global MESSAGE_TABLE
|
||||
if ai_check2 < 6:
|
||||
logger.info("Dykteryjka")
|
||||
result, MESSAGE_TABLE = await handle_response(
|
||||
"Opowiedz jakąś historię o naszym barze proszę", True, True, MESSAGE_TABLE, "Polish Hammer", "RANDOM"
|
||||
)
|
||||
"Opowiedz jakąś historię o naszym barze proszę",
|
||||
True,
|
||||
True,
|
||||
MESSAGE_TABLE,
|
||||
"Polish Hammer",
|
||||
"RANDOM",
|
||||
)
|
||||
logger.info(result)
|
||||
else:
|
||||
logger.info("Wtracenie w dyskusje")
|
||||
messages = [message async for message in channel.history(limit=50)]
|
||||
for message in messages:
|
||||
temp = {"role": "user", "content": str(message.author) + ":" + str(message.content)}
|
||||
temp = {
|
||||
"role": "user",
|
||||
"content": str(message.author) + ":" + str(message.content),
|
||||
}
|
||||
MESSAGE_TABLE.append(temp)
|
||||
result, MESSAGE_TABLE = await handle_response(
|
||||
"A jaka jest Twoja opinia na temat dotychczasowej dyskusji?", True, True, MESSAGE_TABLE, "Polish Hammer", "RANDOM"
|
||||
"A jaka jest Twoja opinia na temat dotychczasowej dyskusji?",
|
||||
True,
|
||||
True,
|
||||
MESSAGE_TABLE,
|
||||
"Polish Hammer",
|
||||
"RANDOM",
|
||||
)
|
||||
logger.info(result)
|
||||
return result
|
||||
|
||||
|
||||
async def handle_response(prompt, vykidailo, bartender, history, username, request_type):
|
||||
# trunk-ignore(pylint/R0912)
|
||||
# trunk-ignore(pylint/R0913)
|
||||
# trunk-ignore(pylint/R0914)
|
||||
# trunk-ignore(pylint/R0915)
|
||||
async def handle_response(
|
||||
prompt, vykidailo, bartender, history, username, request_type
|
||||
):
|
||||
"""
|
||||
Handle responses by appending them to a history, use OpenAI to
|
||||
generate a response, and then append the generated response to the history.
|
||||
@@ -852,6 +893,8 @@ async def handle_response(prompt, vykidailo, bartender, history, username, reque
|
||||
return result, MESSAGE_TABLE
|
||||
|
||||
|
||||
# trunk-ignore(pylint/R0915)
|
||||
# trunk-ignore(pylint/R0914)
|
||||
async def get_file(ctx, source, link):
|
||||
"""
|
||||
Take in three parameters: "ctx" (context),
|
||||
@@ -928,7 +971,7 @@ async def get_file(ctx, source, link):
|
||||
"force_keyframes": True,
|
||||
},
|
||||
]
|
||||
#TODO: Make sponsorblock work
|
||||
# TODO: Make sponsorblock work
|
||||
sponsorblock_postprocessor = []
|
||||
if platform == "win32":
|
||||
dir_path = "G:\\Muzyka\\Youtube"
|
||||
@@ -1033,6 +1076,9 @@ async def get_stats(ctx, history_limit):
|
||||
yield name, how_many
|
||||
|
||||
|
||||
# trunk-ignore(pylint/R0915)
|
||||
# trunk-ignore(pylint/R0912)
|
||||
# trunk-ignore(pylint/R0914)
|
||||
async def wyszukaj(ctx, how_many=0, slowa_kluczowe=None):
|
||||
"""
|
||||
Take in a context object and an optional integer parameter "how_many" and perform search
|
||||
@@ -1111,7 +1157,10 @@ async def wyszukaj(ctx, how_many=0, slowa_kluczowe=None):
|
||||
search_weight[itr][0]
|
||||
+ (token_weight + (pingu**1.5) / pattern_len) / matched_times
|
||||
)
|
||||
search_weight[itr] = temp_weight, music_file_list.get_file_list()[itr]
|
||||
search_weight[itr] = (
|
||||
temp_weight,
|
||||
music_file_list.get_file_list()[itr],
|
||||
)
|
||||
matched_times += 1
|
||||
itr += 1
|
||||
|
||||
@@ -1195,7 +1244,14 @@ async def dej_co_ze_spotifaja(ctx):
|
||||
else:
|
||||
separator = "/"
|
||||
for file in files:
|
||||
file_path = dir_path + separator + file["artist"] + " - " + file["name"] + ".mp3"
|
||||
file_path = (
|
||||
dir_path
|
||||
+ separator
|
||||
+ file["artist"]
|
||||
+ " - "
|
||||
+ file["name"]
|
||||
+ ".mp3"
|
||||
)
|
||||
global MUZYKA # pylint: disable=global-variable-not-assigned
|
||||
MUZYKA["queue"].insert(
|
||||
0,
|
||||
@@ -1251,6 +1307,8 @@ async def dej_co_z_jutuba(ctx):
|
||||
description="Jeśli nie wiesz jak użyć tej komendy to nawet nie próbuj",
|
||||
guild=discord.Object(id=664789470779932693),
|
||||
)
|
||||
# trunk-ignore(pylint/R0914)
|
||||
# trunk-ignore(pylint/R0912)
|
||||
async def update_banlist(ctx):
|
||||
"""
|
||||
Update a banlist in a Discord guild from preprovided list in channel.
|
||||
@@ -1758,12 +1816,13 @@ async def get_image_stable_diffusion(ctx):
|
||||
if ctx:
|
||||
pass
|
||||
|
||||
|
||||
@client.hybrid_command(
|
||||
name="zagraj_muzyke_mego_ludu",
|
||||
description="Gra muzyke wyszukana na bazie tematow konwersacji na kanale NZ",
|
||||
guild=discord.Object(id=664789470779932693),
|
||||
)
|
||||
# trunk-ignore(pylint/R0912)
|
||||
# trunk-ignore(pylint/R0915)
|
||||
async def zagraj_muzyke_mego_ludu(ctx):
|
||||
"""
|
||||
Play completeley random playlist based on messaging history.
|
||||
|
||||
Reference in New Issue
Block a user