The first bot version

Can connect to voice, recognize youtube.com and youtu.be urls and has cool gifs
This commit is contained in:
Louis Lacoste 2022-11-17 22:21:49 +01:00
parent 8a2209346b
commit 3b0f478bb5
4 changed files with 92 additions and 0 deletions

1
.env.example Normal file
View file

@ -0,0 +1 @@
DISCORD_TOKEN=YourDiscordToken

3
.gitignore vendored
View file

@ -160,3 +160,6 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Emacs
\#*#
*~

85
main.py Normal file
View file

@ -0,0 +1,85 @@
#Polarobot is a discord bot designed mainly to play music
#Copyright (C) 2022 Louis Lacoste
#This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
#Also add information on how to contact you by electronic and paper mail.
import os, sys
import re
import random
import discord
from discord.ext import commands
from discord.utils import get
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
intents = discord.Intents.default()
intents.message_content = True
intents.members = True
bot = commands.Bot(command_prefix="!p ", intents=intents)
youtubeUrlRegex = "https?:\/\/(www\.)?(youtu|youtube)\.(com|be)"
def is_a_youtube_url(url: str):
return bool(re.match(youtubeUrlRegex, url))
def random_playing_gif():
gifList = ["https://media.tenor.com/Ra6rkhDtYPwAAAAd/anime-dj.gif",
"https://media.tenor.com/7o_Y0qCQaJQAAAAM/howan-anime.gif",
"https://media.tenor.com/_OA-44hy1-4AAAAM/anime-music.gif",
"https://media.tenor.com/rJpCgvQJgsEAAAAj/music.gif",
"https://media.tenor.com/sEKdNnp9tmoAAAAM/music-dog.gif",
"https://media.tenor.com/6z00WD2k8foAAAAM/boombox-jamming.gif"]
return random.choice(gifList)
@bot.event
async def on_ready():
print("Starting")
await bot.change_presence(activity= discord.Activity(type = discord.ActivityType.playing, name = 'PolaroBot | !p to call'))
def restart_bot():
os.execv(sys.executable, ['python'] + sys.argv)
@bot.command(aliases=['reboot'])
async def restart(ctx):
"""Reboot bot"""
print("Rebooting...")
embedDeco=discord.Embed(title="~~⚗️ ModBot~~ PolaroBot Statut.. 🛠️ ", description="""~~Modbot~~ PolaroBot Redémarre : Patientez quelques secondes.. """, color=0xF1D50E)
await ctx.send(embed=embedDeco)
restart_bot()
@bot.command(aliases=['play_music'],pass_context=True)
async def play(ctx, url: str):
"""Playing a song"""
if is_a_youtube_url(url):
embedPlaying=discord.Embed(title="P0l4r0B0T is playing", description=f"Je sais pas encore jouer de musique mais tkt frère, vla ton URL mon reuf : {url}")
embedPlaying.set_image(url=random_playing_gif())
else:
embedPlaying=discord.Embed(title="PolaroBot veut casser ta gueule", description=f"FREROT ?! C'EST QUOI {url} ? C'EST DE LA MERDE ! !")
embedPlaying.set_image(url="https://media.tenor.com/wQH1Lm24wLwAAAAM/de-la-merde-jean.gif")
await ctx.send(embed=embedPlaying)
@bot.command()
async def join(ctx):
channel = ctx.author.voice.channel
print(f"Voice : connecting to {channel.id}")
bot.voice_channel = await channel.connect()
@bot.command()
async def leave(ctx):
print(f"Voice : leaving {bot.voice_channel.id}")
await ctx.voice_client.disconnect()
@bot.event
async def on_command_error(ctx, error):
channel = ctx.message.channel
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send("Missing required argument: {}".format(error.param))
elif isinstance(error, commands.BadArgument):
ctx.send(channel, "Could not parse commands argument.")
bot.run(TOKEN)

3
requirements.txt Normal file
View file

@ -0,0 +1,3 @@
discord.py[voice]
python-dotenv
PyNaCl