init commit

This commit is contained in:
tavo-wasd 2024-03-30 21:47:48 -06:00
parent 309b44f69c
commit 140093b405

55
main.py Normal file
View file

@ -0,0 +1,55 @@
import discord
from discord.ext import commands
import asyncio
import os
from fuzzywuzzy import process
intents = discord.Intents.default()
intents.message_content = True
intents.voice_states = True
bot = commands.Bot(command_prefix='!', intents=intents)
def find_song(query):
# Define the base directory
base_dir = "songs/"
# Initialize variables to store the best match and confidence
best_match = None
best_confidence = 0
# Recursively search through directories for song files
for root, dirs, files in os.walk(base_dir):
for file in files:
if file.endswith(".mp3"):
song_path = os.path.join(root, file)
song_name = os.path.splitext(file)[0] # Get the song name without extension
confidence = process.extractOne(query, [song_name])[1]
# Update best match if confidence is higher
if confidence > best_confidence:
best_match = song_path
best_confidence = confidence
return best_match, best_confidence
@bot.command()
async def play(ctx, *, query):
voice_channel = ctx.author.voice.channel
if voice_channel:
voice_client = await voice_channel.connect()
# Find the closest match to the query
song_path, confidence = find_song(query)
if confidence >= 70: # Adjust confidence threshold as needed
voice_client.play(discord.FFmpegPCMAudio(song_path))
while voice_client.is_playing():
await asyncio.sleep(1)
await voice_client.disconnect()
else:
await ctx.send("Sorry, couldn't find a match for that song.")
else:
await ctx.send("You need to be in a voice channel to use this command!")
bot.run('TOKEN')