Compare commits

...

2 commits

Author SHA1 Message Date
1cd1916feb Added youtube dl related code 2022-11-18 13:54:01 +01:00
5c3db0b034 Working join and leave functions 2022-11-18 13:53:43 +01:00

67
main.py
View file

@ -27,12 +27,48 @@ intents = discord.Intents().all()
client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix="!p ", intents=intents)
# YT related code
youtubeUrlRegex = "https?:\/\/(www\.)?(youtu|youtube)\.(com|be)"
def is_a_youtube_url(url: str):
return bool(re.match(youtubeUrlRegex, url))
youtube_dl.utils.bug_reports_message = lambda: ''
ytdl_format_options = {
'format': 'bestaudio/best',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0' # bind to ipv4 since ipv6 addresses cause issues sometimes
}
ffmpeg_options = {
'options': '-vn'
}
ytdl = youtube_dl.YoutubeDL(ytdl_format_options)
class YTDLSource(discord.PCMVolumeTransformer):
def __init__(self, source, *, data, volume=0.5):
super().__init__(source, volume)
self.data = data
self.title = data.get('title')
self.url = ""
@classmethod
async def from_url(cls, url, *, loop=None, stream=False):
loop = loop or asyncio.get_event_loop()
data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))
if 'entries' in data:
# take first item from a playlist
data = data['entries'][0]
filename = data['title'] if stream else ytdl.prepare_filename(data)
return filename
def random_playing_gif():
gifList = ["https://media.tenor.com/Ra6rkhDtYPwAAAAd/anime-dj.gif",
@ -82,24 +118,29 @@ async def play(ctx, url: str):
await ctx.send(embed=embedPlaying)
@bot.command()
@bot.command(name="join",help="Pour demander au bot de rejoindre le canal vocal")
async def join(ctx):
channel = ctx.author.voice.channel
if channel:
print(f"Voice : connecting to {channel.id}")
bot.voice_channel = await channel.connect()
#print(f"Asked to join {channel.id}")
if not ctx.message.author.voice:
embedMessage = discord.Embed(
title="PolaroBot connected", description=f"PolaroBot has connected to {ctx.author}'s channel")
title="🤖PolaroBot ne peut pas se connecter", description=f"T'es dans canal vocal ?")
else:
channel = ctx.author.voice.channel
await channel.connect()
embedMessage = discord.Embed(
title="PolaroBot can't connect", description=f"Are you connected to a voice channel ?")
title="🤖PolaroBot connecté", description=f"PolaroBot connecté au canal de {ctx.author}")
await ctx.send(embed=embedMessage)
@bot.command()
@bot.command(name="leave", help="Pour faire quitter le canal vocal au bot")
async def leave(ctx):
print(f"Voice : leaving {bot.voice_channel.id}")
await ctx.voice_client.disconnect()
voice_client = ctx.message.guild.voice_client
if voice_client and voice_client.is_connected():
embedMessage = discord.Embed(title="🤖PolaroBot se barre", description="Salut mon srab, je m'envole vers d'autres cieux")
await voice_client.disconnect()
else:
embedMessage = discord.Embed(title="🤖PolaroBot n'est pas connecté", description="""Ben déso gros mais je suis pas là...
Faut consulter si tu me vois partout....""")
await ctx.send(embed=embedMessage)
@bot.event