190 lines
7.3 KiB
Python
Executable file
190 lines
7.3 KiB
Python
Executable file
from discord.ext import commands
|
|
import asyncio
|
|
import discord
|
|
import urllib.request
|
|
import json
|
|
import random
|
|
import requests
|
|
|
|
|
|
class Funs(commands.Cog):
|
|
"""Commandes funs."""
|
|
|
|
def __init__(self, bot):
|
|
self.bot = bot
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def avatar(self, ctx, user: discord.Member = None):
|
|
"""Récuperer l'avatar de ..."""
|
|
|
|
if user is None:
|
|
user = ctx.message.author
|
|
|
|
embed = discord.Embed(title="Avatar de " + user.name,
|
|
description=f"[Ouvrir dans mon navigateur]"
|
|
f"({user.avatar_url_as(format='png')})")
|
|
embed.set_image(url=user.avatar_url_as(format='png'))
|
|
await ctx.send(embed=embed)
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command(pass_context=True)
|
|
async def poke(self, ctx, user: discord.Member):
|
|
"""Poke quelqu'un"""
|
|
await ctx.send(f":clap: Hey {user.mention} tu t'es fait poker par"
|
|
f" {ctx.message.author} !")
|
|
await ctx.message.delete()
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def btcprice(self, ctx):
|
|
"""Le prix du BTC"""
|
|
loading = await ctx.send("_réfléchis..._")
|
|
try:
|
|
url = urllib.request.urlopen("https://blockchain.info/fr/ticker")
|
|
btc = json.loads(url.read().decode())
|
|
except KeyError:
|
|
btc = 1
|
|
|
|
if btc == 1:
|
|
await loading.edit(content="Impossible d'accèder à l'API"
|
|
" blockchain.info, veuillez réessayer"
|
|
" ultérieurment ! :c")
|
|
else:
|
|
frbtc = str(btc["EUR"]["last"]).replace(".", ",")
|
|
usbtc = str(btc["USD"]["last"]).replace(".", ",")
|
|
await loading.edit(content=f"Un bitcoin est égal à :"
|
|
f" {usbtc}$US soit {frbtc}€.")
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def joke(self, ctx, number: str = 0):
|
|
"""Print a random joke in a json file"""
|
|
with open('texts/jokes.json') as js:
|
|
jk = json.load(js)
|
|
|
|
try:
|
|
if 15 >= int(number) > 0:
|
|
clef = str(number)
|
|
else:
|
|
clef = str(random.randint(1, 15))
|
|
except Exception:
|
|
clef = str(random.randint(1, 15))
|
|
|
|
joke = jk["{}".format(clef)]
|
|
|
|
embed = discord.Embed(title="Blague _{}_ : ".format(clef),
|
|
description=joke['content'], colour=0x03C9A9)
|
|
embed.set_footer(text="Par " + joke['author'])
|
|
embed.set_thumbnail(url='https://outout.tech/tuxbot/blobjoy.png')
|
|
await ctx.send(embed=embed)
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def ethylotest(self, ctx):
|
|
"""Ethylotest simulator 2018"""
|
|
results_poulet = ["Désolé mais mon ethylotest est sous Windows Vista, "
|
|
"merci de patienter...",
|
|
"_(ethylotest)_ : Une erreur est survenue. Windows "
|
|
"cherche une solution à se problème.",
|
|
"Mais j'l'ai foutu où ce p\\*\\*\\* d'ethylotest de m\\*\\*\\* "
|
|
"bordel fait ch\\*\\*\\*",
|
|
"C'est pas possible z'avez cassé l'ethylotest !"]
|
|
results_client = ["D'accord, il n'y a pas de problème à cela je suis "
|
|
"complètement clean",
|
|
"Bien sur si c'est votre devoir !", "Suce bi\\*e !",
|
|
"J'ai l'air d'être bourré ?",
|
|
"_laissez moi prendre un bonbon à la menthe..._"]
|
|
|
|
result_p = random.choice(results_poulet)
|
|
result_c = random.choice(results_client)
|
|
|
|
await ctx.send(":oncoming_police_car: Bonjour bonjour, contrôle "
|
|
"d'alcoolémie !")
|
|
await asyncio.sleep(0.5)
|
|
await ctx.send(":man: " + result_c)
|
|
await asyncio.sleep(1)
|
|
await ctx.send(":police_car: " + result_p)
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def coin(self, ctx):
|
|
"""Coin flip simulator 2025"""
|
|
starts_msg = ["Je lance la pièce !", "C'est parti !", "C'est une pièce"
|
|
" d'un cent faut"
|
|
" pas la perdre",
|
|
"C'est une pièce d'un euro faut pas la perdre",
|
|
"Je lance !"]
|
|
results_coin = ["{0} pile", "{0} face", "{1} Heu c'est quoi pile c'est"
|
|
" quoi face enfaite ?",
|
|
"{1} Oh shit, je crois que je l'ai perdue",
|
|
"{1} Et bim je te vol ta pièce !",
|
|
"{0} Oh une erreur d'impression il n'y a ni pile ni"
|
|
" face !"]
|
|
|
|
start = random.choice(starts_msg)
|
|
result = random.choice(results_coin)
|
|
|
|
await ctx.send(start)
|
|
await asyncio.sleep(0.6)
|
|
await ctx.send(result.format(":moneybag: Et la pièce retombe sur ...",
|
|
":robot:"))
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def pokemon(self, ctx):
|
|
"""Random pokemon fight"""
|
|
with open('texts/pokemons.json') as js:
|
|
jk = json.load(js)
|
|
|
|
poke1 = jk[random.randint(1, 150)]
|
|
poke2 = jk[random.randint(1, 150)]
|
|
|
|
try:
|
|
if poke1['MaxHP'] > poke2['MaxHP']:
|
|
winer = poke1
|
|
else:
|
|
winer = poke2
|
|
except KeyError:
|
|
winer = poke1
|
|
|
|
await ctx.send(":flag_white: **Le combat commence !**")
|
|
await asyncio.sleep(1)
|
|
await ctx.send(":loudspeaker: Les concurants sont {} contre {} ! Bonne"
|
|
" chance à eux !".format(poke1["Name"], poke2["Name"]))
|
|
await asyncio.sleep(0.5)
|
|
await ctx.send(":boom: {} commence et utilise {}".format(
|
|
poke1["Name"], poke1["Fast Attack(s)"][0]["Name"]))
|
|
await asyncio.sleep(1)
|
|
await ctx.send(":dash: {} réplique avec {}".format(
|
|
poke2["Name"], poke2["Fast Attack(s)"][0]["Name"]))
|
|
await asyncio.sleep(1.2)
|
|
await ctx.send("_le combat continue de se dérouler..._")
|
|
await asyncio.sleep(1.5)
|
|
await ctx.send(":trophy: Le gagnant est **{}** !".format(
|
|
winer["Name"]))
|
|
|
|
"""---------------------------------------------------------------------"""
|
|
|
|
@commands.command()
|
|
async def randomcat(self, ctx):
|
|
"""Display a random cat"""
|
|
r = requests.get('http://aws.random.cat/meow')
|
|
cat = str(r.json()['file'])
|
|
embed = discord.Embed(title="Meow",
|
|
description="[Voir le chat plus grand]({})".
|
|
format(cat), colour=0x03C9A9)
|
|
embed.set_thumbnail(url=cat)
|
|
embed.set_author(name="Random.cat", url='https://random.cat/')
|
|
await ctx.send(embed=embed)
|
|
|
|
|
|
def setup(bot):
|
|
bot.add_cog(Funs(bot))
|