226 lines
6.2 KiB
Python
226 lines
6.2 KiB
Python
import sys
|
|
import random
|
|
import datetime
|
|
import threading
|
|
|
|
import discord
|
|
import sqlite3
|
|
|
|
import interface
|
|
|
|
secrets_file = open(sys.argv[1], mode="rt")
|
|
secrets = secrets_file.read()
|
|
secrets_file.close()
|
|
|
|
token = secrets
|
|
|
|
intents = discord.Intents.default()
|
|
intents.message_content = True
|
|
intents.members = True
|
|
intents.moderation = True
|
|
|
|
client = discord.Client(intents=intents, activity=discord.Game(name='En train de niquer des mères'))
|
|
|
|
interface.client = client
|
|
|
|
import forgejo
|
|
|
|
database = sqlite3.connect("bdd.db")
|
|
cursor = database.cursor()
|
|
|
|
try:
|
|
cursor.execute("CREATE TABLE casino (id INT PRIMARY KEY, cash INT)")
|
|
database.commit()
|
|
except:
|
|
print("La table existe déja")
|
|
|
|
guilds = []
|
|
|
|
globals()["gmembers"] = {}
|
|
|
|
async def pinguncon(message):
|
|
#fcalva's server
|
|
if message.guild.id == 750665878072328242:
|
|
await message.channel.send("<@499533339468759052>")
|
|
elif message.guild.id in [1008485562304450610, 1157767629738618941]:
|
|
await message.channel.send("<@755081785393676328>")
|
|
elif message.guild.id == 1294017120631525416:
|
|
await message.channel.send("<@504751919760408617>")
|
|
else:
|
|
await message.channel.send("Pas dispo ici")
|
|
|
|
async def pingjuif(message):
|
|
if message.guild.id in [1008485562304450610, 1157767629738618941]:
|
|
await message.channel.send("<@459021187083927553>")
|
|
else:
|
|
message.channel.send("Pas dispo ici")
|
|
|
|
async def pingrand(message):
|
|
choice = random.choice(globals()["gmembers"][str(message.guild.id)])
|
|
await message.channel.send("<@"+str(choice.id)+">")
|
|
|
|
async def roulette(message):
|
|
roll = random.random()
|
|
if roll < 0.16666666666:
|
|
tdelt = datetime.timedelta(minutes=1)
|
|
await message.author.timeout(tdelt, reason="Vous avez perdu à la roulette...")
|
|
try:
|
|
await message.author.timeout(tdelt, reason="Vous avez perdu à la roulette...")
|
|
except:
|
|
await message.channel.send("Une erreur s'est produite ! (Je ne peux probablement pas vous timeout)")
|
|
else:
|
|
await message.channel.send("Ouf ! Il n'y avait pas de cartouche dans la chambre...")
|
|
|
|
async def casino_init(message):
|
|
usrid = int(message.author.id)
|
|
try:
|
|
cursor.execute(f"INSERT INTO casino (id, cash) VALUES ({usrid}, 0)")
|
|
database.commit()
|
|
await message.channel.send(f"Casino initialisé pour <@{usrid}>")
|
|
except:
|
|
await message.channel.send(f"Échec ! Réessayez plus tard")
|
|
|
|
async def balance(message):
|
|
usrid = int(message.author.id)
|
|
cash = cursor.execute(f"SELECT cash FROM casino WHERE id={usrid}").fetchone()
|
|
if cash:
|
|
await message.channel.send(f"Vous avez {cash[0]}$")
|
|
else:
|
|
await message.channel.send(f"Essayez d'initialiser votre portemonnaie avec ?init")
|
|
|
|
async def collect(message):
|
|
collect_gain = 50
|
|
usrid = int(message.author.id)
|
|
cash = cursor.execute(f"SELECT cash FROM casino WHERE id={usrid}").fetchone()
|
|
if cash != None:
|
|
cash = cash[0]
|
|
cash += collect_gain
|
|
cursor.execute(f"UPDATE casino SET cash = {cash} WHERE id={usrid}")
|
|
database.commit()
|
|
await message.channel.send(f"Vous avez recu {collect_gain}$. Vous avez désormais {cash}$")
|
|
else:
|
|
await message.channel.send(f"Essayez d'initialiser votre portemonnaie avec ?init")
|
|
|
|
async def ecoaide(message):
|
|
await message.channel.send("Eco+, un bot Eco plus pour faire des conneries\n"\
|
|
"?pinguncon : Ping le con local\n"\
|
|
"?pingunjuif : Ping le juif local\n"\
|
|
"?pingrand : Ping un membre aléatoire du serveur\n"
|
|
"?roulette : Prennez une chance sur six de vous faire timeout")
|
|
|
|
async def ecohelp(message):
|
|
await message.channel.send("Eco+ help page \n"\
|
|
"?pinguncon : Ping the local dumbass\n"\
|
|
"?pingrand : Ping a random user\n"\
|
|
"?roulette : Take one shot on six to get timed out")
|
|
|
|
async def hello(message):
|
|
await message.channel.send('henlo')
|
|
|
|
commentaires_zizi = [
|
|
#0
|
|
["Vous avez essayé de mesurer à la base ?","Dur d'avoir des chromosomes XX. Retourne à la cuisine"],\
|
|
#1
|
|
["J'ai pitié.", "Échec critique !"],\
|
|
#2
|
|
["Tu peux toujours te dire que la taille ne compte pas"],\
|
|
#3
|
|
["Dire que c'était ma taille à trois ans..."],\
|
|
#4
|
|
["Retourne dans ton 4x4 micropénis"],\
|
|
#5
|
|
["En impérial, ça aurait été la moyenne"],\
|
|
#6
|
|
["T'es pas la bite la plus dure du gloryhole"],\
|
|
#7
|
|
[""],\
|
|
#8
|
|
[""],\
|
|
#9
|
|
[""],\
|
|
#10
|
|
[""],\
|
|
#11
|
|
[""],\
|
|
#12
|
|
[""],\
|
|
#13
|
|
["La moyenne, pour de vrai"],\
|
|
#14
|
|
[""],\
|
|
#15
|
|
[""],\
|
|
#16
|
|
["La verité est dure à avaler"],\
|
|
#17
|
|
["C'est roc, c'est un pic, c'est un cap. Que dis-je ? C'est une péninsule"],\
|
|
#18
|
|
["Si le goût se rapporte à la taille, vous êtes le phoenix des hôtes du gang bang"],\
|
|
#19
|
|
["Bien membré !"],\
|
|
#20
|
|
["Je veux la même !", "Coup critique !"],\
|
|
#21
|
|
["Profite de tes chromosomes YY :moai:", "La taille moyenne en Uganda"]
|
|
]
|
|
|
|
async def zizi(message):
|
|
id = message.author.id
|
|
size = random.randint(0,21)
|
|
comment = random.choice(commentaires_zizi[size])
|
|
await message.channel.send(f"<@{id}>, votre chibre fait **{size} cm**. {comment}")
|
|
|
|
@client.event
|
|
async def on_ready():
|
|
print(f'We have logged in as {client.user}')
|
|
async for guild in client.fetch_guilds(limit=150):
|
|
print(str(guild.id)+":")
|
|
guilds.append(guild)
|
|
sid = str(guild.id)
|
|
globals()["gmembers"] |= {sid:[]}
|
|
async for member in guild.fetch_members(limit=150):
|
|
globals()["gmembers"][sid].append(member)
|
|
print(" "+str(member))
|
|
|
|
cmd_dict = {\
|
|
"?hello":hello,\
|
|
"?pinguncon":pinguncon,\
|
|
"?pingrand":pingrand,\
|
|
"?pingunjuif":pingjuif,\
|
|
"?zizi":zizi,\
|
|
"?roulette":roulette,\
|
|
"?help":ecohelp,\
|
|
"?aide":ecoaide,\
|
|
"?init":casino_init,\
|
|
"?cash":balance,\
|
|
"?collect":collect,\
|
|
}
|
|
|
|
@client.event
|
|
async def on_message(message):
|
|
if message.author == client.user:
|
|
return
|
|
|
|
content = message.content
|
|
|
|
if not content:
|
|
return
|
|
if content[0] != "?":
|
|
return
|
|
|
|
try:
|
|
await cmd_dict[content](message)
|
|
except Exception as err:
|
|
print(err)
|
|
await message.channel.send("Commande non reconnue !")
|
|
|
|
def do_forgejo_thread():
|
|
print("229")
|
|
forgejo.app.run(port=5000)
|
|
|
|
forgejo_thread = threading.Thread()
|
|
forgejo_thread.run = do_forgejo_thread
|
|
|
|
print("227")
|
|
forgejo_thread.start()
|
|
client.run(token)
|