Compare commits
2 commits
618ada202a
...
1cd1916feb
| Author | SHA1 | Date | |
|---|---|---|---|
| 1cd1916feb | |||
| 5c3db0b034 |
1 changed files with 54 additions and 13 deletions
67
main.py
67
main.py
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue