This commit is contained in:
Maël 2017-07-05 13:58:06 -04:00
parent 8bb5a46f24
commit 7d972d9009
33 changed files with 58 additions and 39 deletions

0
.idea/cogue.iml Normal file → Executable file
View file

0
.idea/inspectionProfiles/profiles_settings.xml Normal file → Executable file
View file

0
.idea/misc.xml Normal file → Executable file
View file

0
.idea/modules.xml Normal file → Executable file
View file

0
.idea/workspace.xml Normal file → Executable file
View file

0
LICENSE Normal file → Executable file
View file

0
bot.py Normal file → Executable file
View file

13
cogs/admin.py Normal file → Executable file
View file

@ -1,10 +1,8 @@
from discord.ext import commands from discord.ext import commands
from random import choice, shuffle
import aiohttp import aiohttp
import asyncio import asyncio
import time import time
import discord import discord
import platform
from .utils import checks from .utils import checks
class Admin: class Admin:
@ -33,7 +31,7 @@ class Admin:
self.bot.unload_extension(module) self.bot.unload_extension(module)
self.bot.load_extension(module) self.bot.load_extension(module)
await self.bot.say("Nice !") await self.bot.say("Nice !")
except Exception as e: except Exception as e: #TODO : A virer dans l'event on_error
await self.bot.say(':( Erreur :') await self.bot.say(':( Erreur :')
await self.bot.say('{}: {}'.format(type(e).__name__, e)) await self.bot.say('{}: {}'.format(type(e).__name__, e))
else: else:
@ -46,17 +44,16 @@ class Admin:
number = number + 1 number = number + 1
await self.bot.purge_from(ctx.message.channel, limit=number) await self.bot.purge_from(ctx.message.channel, limit=number)
await self.bot.say("Hello World !") await self.bot.say("Hello World !")
except Exception as e: except Exception as e: #TODO : A virer dans l'event on_error
await self.bot.say(':sob: Une erreur est survenue : \n {}: {}'.format(type(e).__name__, e)) await self.bot.say(':sob: Une erreur est survenue : \n {}: {}'.format(type(e).__name__, e))
@checks.is_owner() @checks.is_owner()
@commands.command(name='say', pass_context=True, hidden=True) @commands.command(name='say', pass_context=True, hidden=True)
async def _say(self, ctx, dire): async def _say(self, ctx, *dire:str):
try: try:
arg = ctx.message.content.split("say ") await self.bot.say(dire)
await self.bot.say(arg[1])
await self.bot.delete_message(ctx.message) await self.bot.delete_message(ctx.message)
except Exception as e: except Exception as e: #TODO : A virer dans l'event on_error
await self.bot.say(':sob: Une erreur est survenue : \n {}: {}'.format(type(e).__name__, e)) await self.bot.say(':sob: Une erreur est survenue : \n {}: {}'.format(type(e).__name__, e))
@checks.is_owner() @checks.is_owner()

0
cogs/basics.py Normal file → Executable file
View file

16
cogs/ci.py Normal file → Executable file
View file

@ -84,6 +84,22 @@ class Identity:
conn.commit() conn.commit()
await self.bot.say(":clap: Bievenue à toi {} dans le communisme {} ! Fait ``.ci`` pour plus d'informations !".format(ctx.message.author.name, ctx.message.server.name)) await self.bot.say(":clap: Bievenue à toi {} dans le communisme {} ! Fait ``.ci`` pour plus d'informations !".format(ctx.message.author.name, ctx.message.server.name))
@_ci.command(pass_context=True, name="upimage")
async def ci_image(self, ctx):
try:
cursor.execute("""SELECT id, userid FROM users WHERE userid=?""", (ctx.message.author.id,))
existansw = cursor.fetchone()
if existansw != None:
cursor.execute("""UPDATE users SET useravatar = ? WHERE userid = ?""", (ctx.message.author.avatar_url, ctx.message.author.id))
conn.commit()
await self.bot.say(ctx.message.author.mention + "> :ok_hand: Carte d'identité mise à jour; Sympa ton nouvel avatar :wink: !")
else:
await self.bot.say(ctx.message.author.mention + "> :x: Veuillez enregistrer votre carte d'identité pour commencer !")
except Exception as e: #TODO : A virer dans l'event on_error
await self.bot.say(':( Erreur veuillez contacter votre administrateur :')
await self.bot.say('{}: {}'.format(type(e).__name__, e))
@_ci.command(pass_context=True, name="setconfig") @_ci.command(pass_context=True, name="setconfig")
async def ci_setconfig(self, ctx, args_): async def ci_setconfig(self, ctx, args_):
try: try:

11
cogs/funs.py Normal file → Executable file
View file

@ -22,6 +22,11 @@ class Funs:
embed.set_thumbnail(url=user.avatar_url) embed.set_thumbnail(url=user.avatar_url)
await self.bot.say(embed=embed) await self.bot.say(embed=embed)
@commands.command(pass_context=True)
async def poke(self, user : discord.Member):
"""Poke quelqu'un"""
await self.bot.say(":clap: Hey {0} tu t'es fait poker par {1}.".format(user.mention, ctx.message.author))
@commands.command() @commands.command()
async def btcprice(self): async def btcprice(self):
"""Le prix du BTC""" """Le prix du BTC"""
@ -56,7 +61,7 @@ class Funs:
@commands.command() @commands.command()
async def ethylotest(self): async def ethylotest(self):
"""Ethylotest simulator 2018""" """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 prolbème...``", "Mais j'l'ai foutu où ce p*** d'ethylotest de m..... bordel fait ch..... tab....", "C'est pas possible z'avez cassé l'ethylotest !"] 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*** tab***", "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** !", "J'ai l'air d'être bourré ?", "_laissez moi prendre un bonbon à la menthe..._"] 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** !", "J'ai l'air d'être bourré ?", "_laissez moi prendre un bonbon à la menthe..._"]
result_p = random.choice(results_poulet) result_p = random.choice(results_poulet)
@ -71,8 +76,8 @@ class Funs:
@commands.command() @commands.command()
async def coin(self): async def coin(self):
"""Coin flip simulator 2025""" """Coin flip simulator 2025"""
starts_msg = ["Je lance la pièce !", "C'est partit !", "C'est une pièce de d'un cent faut pas la perdre", "C'est une pièce de d'un euro faut pas la perdre", "Je lance !"] 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} How shit, je crois que je l'ai perdu", "{1} Et bim je te vol ta pièce !", "{0} Oh une erreur d'impression y'a ni pile ni face !"] 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) start = random.choice(starts_msg)
result = random.choice(results_coin) result = random.choice(results_coin)

6
cogs/search.py Normal file → Executable file
View file

@ -69,7 +69,7 @@ class Search:
@_search.command(pass_context=True, name="wikipedia") @_search.command(pass_context=True, name="wikipedia")
async def search_wikipedia(self, ctx, args): async def search_wikipedia(self, ctx, args):
"""Fait une recherche sur wikipd""" """Fait une recherche sur wikipd"""
try: try: # C'est quoi ce try-except de la mort ?
wait = await self.bot.say("_Je cherche..._") wait = await self.bot.say("_Je cherche..._")
results = wikipedia.search(args) results = wikipedia.search(args)
nbmr = 0 nbmr = 0
@ -109,11 +109,11 @@ class Search:
await self.bot.delete_message(wait) await self.bot.delete_message(wait)
await self.bot.say(embed=em) await self.bot.say(embed=em)
except wikipedia.exceptions.PageError: except wikipedia.exceptions.PageError: #TODO : A virer dans l'event on_error
await self.bot.say(":open_mouth: Une **erreur interne** est survenue, si cela ce reproduit contactez votre administrateur ou faites une Issue sur ``github`` !") await self.bot.say(":open_mouth: Une **erreur interne** est survenue, si cela ce reproduit contactez votre administrateur ou faites une Issue sur ``github`` !")
except UnboundLocalError: except UnboundLocalError:
await self.bot.say(":interrobang: Veuillez choisir une réaction valide !") await self.bot.say(":interrobang: Veuillez choisir une réaction valide !")
except: except DisambiguationError: #TODO : A virer dans l'event on_error
await self.bot.say(":open_mouth: Une **erreur interne** est survenue, si cela ce reproduit contactez votre administrateur ou faites une Issue sur ``github`` !") await self.bot.say(":open_mouth: Une **erreur interne** est survenue, si cela ce reproduit contactez votre administrateur ou faites une Issue sur ``github`` !")
except IndexError: except IndexError:
await self.bot.say(" :interrobang: Veuillez entrer un terme de recherche !") await self.bot.say(" :interrobang: Veuillez entrer un terme de recherche !")

0
cogs/utility.py Normal file → Executable file
View file

0
cogs/utils/__init__.py Normal file → Executable file
View file

0
cogs/utils/__pycache__/__init__.cpython-35.pyc Normal file → Executable file
View file

0
cogs/utils/__pycache__/checks.cpython-35.pyc Normal file → Executable file
View file

0
cogs/utils/checks.py Normal file → Executable file
View file

0
cogs/utils/config.py Normal file → Executable file
View file

0
cogs/utils/formats.py Normal file → Executable file
View file

0
cogs/utils/maps.py Normal file → Executable file
View file

0
cogs/utils/paginator.py Normal file → Executable file
View file

0
logs/NOT A EMPTY FOLDER Normal file → Executable file
View file

0
params.json Normal file → Executable file
View file

11
readme.md Normal file → Executable file
View file

@ -1,21 +1,22 @@
# Titre du projet # Tuxbot
[![forthebadge](http://forthebadge.com/images/badges/contains-cat-gifs.svg)](http://forthebadge.com) [![forthebadge](http://forthebadge.com/images/badges/contains-cat-gifs.svg)](http://forthebadge.com)
[![forthebadge](https://forthebadge.com/images/badges/made-with-python.svg)](http://forthebadge.com)
TuxBot, un bot discord écrit en Python. TuxBot, un bot discord écrit en Python.
Ici se trouve le code source de ce bot proventant du serveur Discord "Aide GNU/Linux-Fr", il à été créé spécialement pour ce discord, si vous souhaitez l'utiliser il vous faudra modifier ``settings.json`` et ``cogs/utils/checks.py`` ;) Ici ce trouve le code source du bot provenant du serveur Discord [Aide GNU/Linux-Fr"](https://discord.gg/79943dJ "Rejoindre le serveur"), il à été créé spécialement pour ce discord, si vous souhaitez l'utiliser il vous faudra modifier ``settings.json`` et ``cogs/utils/checks.py`` ;)
### Pré-requis ### Pré-requis
Il vous faut : Il vous faut :
- Un ordinateur sous **linux** avec une connexion à l'internet - Un ordinateur sous **GNU/Linux** avec une connexion à internet;
- Python3.5 ou + - Python3.5 ou + ;
- Installer ``requirements.txt`` (avec ``pip install -r requirements.txt`` par ex) - Installer ``requirements.txt`` (avec ``pip install -r requirements.txt`` par ex)
### Installation ### Installation
Une fois les prérequis installés et les paramètres édités placez vous dans le repertoire du bot et lancez ``bot.py`` avec python3 (ex: ``python3 bot.py``) Une fois les pré-requis installés et les paramètres édités, placez vous dans le repertoire du bot et lancez ``bot.py`` avec python3 (ex: ``python3 bot.py``)
## Démarrage ## Démarrage

0
requirements.txt Normal file → Executable file
View file

5
texts/ci-info.md Normal file → Executable file
View file

@ -2,8 +2,9 @@ La carte d'identité est un petit système dans tuxbot permetant de vous démarq
**Liste des commandes : ** **Liste des commandes : **
-> ci : Affiche l'aide sur les cartes d'identité -> ci : Affiche l'aide sur les cartes d'identité
-> ci show _@pseudo_ : Affiche la carte d'identité de _pseudo_ -> ci show _pseudo_ : Affiche la carte d'identité de _pseudo_
-> ci register : Vous enregistre dans la base de donnée des cartes d'identité -> ci register : Vous enregistre dans la base de donnée des cartes d'identité
-> ci setos _nom de l'os_ : Défini le système d'exploitation -> ci setos _nom de l'os_ : Défini le système d'exploitation
-> ci setconfig _votre configuration pc_ : Défini la configuration de votre ordinateur -> ci setconfig _votre configuration pc_ : Défini la configuration de votre ordinateur
-> ci setcountry : Défini votre Pays -> ci setcountry : Défini votre pays
-> ci upimage : Met à jour votre image si vous l'avez changé :wink:

2
texts/clocks.md Normal file → Executable file
View file

@ -1,5 +1,5 @@
_Pour utiliser les Horloges utilisez la commande : **clock **nom de l'horloge_ _Pour utiliser les horloges utilisez la commande : **clock ** ville_
-> Montreal (Canada, QC) -> Montreal (Canada, QC)
-> Vancouver (Canada, BC) -> Vancouver (Canada, BC)
-> New-York / N-Y (U.S.A.) -> New-York / N-Y (U.S.A.)

27
texts/help.md Normal file → Executable file
View file

@ -1,12 +1,3 @@
**Commandes diverses** :
-> info : Affiche des informations sur le bot
-> help : Affiche ce message
-> ci : Affiche l'aide et des infos sur le système de carte d'identité
-> clock list: Affiche la liste des horloges des villes
-> ping : Ping le bot
-> github : Affiche le repos Github du Bot :heart:
**Commandes utilitaires** **Commandes utilitaires**
-> afk : Signaler son absence -> afk : Signaler son absence
-> back : Signaler son retour -> back : Signaler son retour
@ -14,23 +5,31 @@
-> ytdiscover : Découvrir des chaines youtube -> ytdiscover : Découvrir des chaines youtube
-> search _site_ _contenu_ : Fait une recherche sur un site (.search pour plus d'infos) -> search _site_ _contenu_ : Fait une recherche sur un site (.search pour plus d'infos)
-> avatar _@pseudo_ : Récupère l'avatar de _@pseudo_ -> avatar _@pseudo_ : Récupère l'avatar de _@pseudo_
-> poke _@pseudo_ : Poke _@pseudo_
**Commandes Funs** **Commandes Funs**
-> joke : Affiche une blague aléatoire -> joke : Affiche une blague aléatoire
-> ethylotest : Simule un ethylotest détraqué -> ethylotest : Simule un ethylotest détraqué
-> pokemon : Lance un combat de pokémons aléatoires -> pokemon : Lance un combat de pokémons aléatoires
-> coin : Fait un pile ou face -> coin : Simule un pile ou face
-> randomcat : Affiche des image de chats :3 -> randomcat : Affiche des image de chats :3
**Commandes Carte d'Identité** **Commandes Carte d'Identité**
-> ci : Affiche l'aide sur les cartes d'identité -> ci : Affiche l'aide sur les cartes d'identité
-> ci show _@pseudo_ : Affiche la carte d'identité de _pseudo_ -> ci show _pseudo_ : Affiche la carte d'identité de _pseudo_
-> ci register : Vous enregistre dans la base de donnée des cartes d'identité -> ci register : Vous enregistre dans la base de donnée des cartes d'identité
-> ci setos _nom de l'os_ : Défini le système d'exploitation -> ci setos _nom de l'os_ : Défini le système d'exploitation
-> ci setconfig _votre configuration pc_ : Défini la configuration de votre ordinateur -> ci setconfig _votre configuration pc_ : Défini la configuration de votre ordinateur
-> ci setcountry : Défini votre Pays -> ci setcountry : Défini votre pays
-> ci upimage : Met à jour votre image si vous l'avez changé :wink:
** Commandes d'administration ** **Commandes d'administration**
-> say _votre message_ : fait le bot écrire -> say _votre message_ : Envoi un message de la part du bot
-> clear _nombre_ : Supprime _nombre_ de messages -> clear _nombre_ : Supprime _nombre_ de messages
**Commandes diverses** :
-> info : Affiche des informations sur le bot
-> help : Affiche ce message
-> clock list: Affiche la liste des horloges des villes
-> ping : Ping le bot
-> github : Affiche le repos Github du Bot :heart:

0
texts/info.md Normal file → Executable file
View file

4
texts/jokes.json Normal file → Executable file
View file

@ -1,7 +1,7 @@
{ {
"1": {"content": "Les hyperboles sa sert à manger des hyper-soupes :3 (Lawl!)", "author": "Crumble14 (bukkit.fr)"}, "1": {"content": "Les hyperboles sa sert à manger des hyper-soupes :3 (Lawl!)", "author": "Crumble14 (bukkit.fr)"},
"2": {"content": "Le comble de Windows, cest que pour larrêter, il faut cliquer sur démarrer.", "author": "Keke142 (bukkit.fr)"}, "2": {"content": "Le comble de Windows, cest que pour larrêter, il faut cliquer sur démarrer.", "author": "Keke142 (bukkit.fr)"},
"3": {"content": "Chrome: On est le 8 avril 2016 13h02 \n Safari: On est le 8 avril 2016 12h02 \n Internet Explorer: On est le... **[Internet Explorer a cessé de fonctionner, veuillez redémarrer votre machine]**", "author": "NyoSan"}, "3": {"content": "Chrome: On est le 8 avril 2016 13h02 \n Safari: On est le 8 avril 2016 13h02 \n Internet Explorer: On est le... **[Internet Explorer a cessé de fonctionner, veuillez redémarrer votre machine]**", "author": "NyoSan"},
"4": {"content": "Il y a 10 types de personnes dans le monde, ceux qui comprennent le binaire et les autres.", "author": "Dartasen (bukkit.fr)"}, "4": {"content": "Il y a 10 types de personnes dans le monde, ceux qui comprennent le binaire et les autres.", "author": "Dartasen (bukkit.fr)"},
"5": {"content": "C'est une requête SQL qui rentre dans un bar et qui s'adresse à deux tables \"Puis-je vous joindre ?\".\"", "author": "Dartasen (bukkit.fr)"}, "5": {"content": "C'est une requête SQL qui rentre dans un bar et qui s'adresse à deux tables \"Puis-je vous joindre ?\".\"", "author": "Dartasen (bukkit.fr)"},
"6": {"content": "Combien de développeurs faut-il pour remplacer une ampoule grillée ? Aucun, c'est un problème Hardware.", "author": "Dartasen (bukkit.fr)"}, "6": {"content": "Combien de développeurs faut-il pour remplacer une ampoule grillée ? Aucun, c'est un problème Hardware.", "author": "Dartasen (bukkit.fr)"},
@ -11,4 +11,4 @@
"10": {"content": "Le 1er janvier 1970 c'est le jour où il y a eu le plus de plantages. (cf : http://bit.ly/2rArLVe)", "author": "NyoSan"}, "10": {"content": "Le 1er janvier 1970 c'est le jour où il y a eu le plus de plantages. (cf : http://bit.ly/2rArLVe)", "author": "NyoSan"},
"11": {"content": "Pourquoi est-ce que les girafes aiment magasiner à bas prix? Tout est une question de cou.", "author": "Maxx_Qc (bukkit.fr)"}, "11": {"content": "Pourquoi est-ce que les girafes aiment magasiner à bas prix? Tout est une question de cou.", "author": "Maxx_Qc (bukkit.fr)"},
"12": {"content": "``Même éteint le hackeur peut pirater l'ordi`` \"Le SuperGeek tournant sous Ubuntu (ou Windows)\"", "author": "Outout"} "12": {"content": "``Même éteint le hackeur peut pirater l'ordi`` \"Le SuperGeek tournant sous Ubuntu (ou Windows)\"", "author": "Outout"}
} }

0
texts/pokemons.json Normal file → Executable file
View file

2
texts/search.md Normal file → Executable file
View file

@ -1,5 +1,5 @@
_Attention ! : entrez vos termes de recherche sans espaces !_ _Attention ! entrez vos termes de recherche sans espaces !_
Pour effectuer une recherche utilisez la commande ``.search {site_de_recherche} {termes_recherche}`` Pour effectuer une recherche utilisez la commande ``.search {site_de_recherche} {termes_recherche}``
-> [**docubuntu**](https://doc.ubuntu-fr.org) : Effectuer une recherche sur un paquet dans la Documentation du site ubuntu-fr.org. -> [**docubuntu**](https://doc.ubuntu-fr.org) : Effectuer une recherche sur un paquet dans la Documentation du site ubuntu-fr.org.
-> [**wikipedia**](https://fr.wikipedia.org) : Effectuer une recherche sur l'encyclopédie libre Wikipedia en Français ! -> [**wikipedia**](https://fr.wikipedia.org) : Effectuer une recherche sur l'encyclopédie libre Wikipedia en Français !

0
texts/ytb.json Normal file → Executable file
View file