@ -16,7 +16,6 @@ import nio
from datetime import datetime , timedelta
import requests
import html2text
import json
# Var
bot = None
@ -34,6 +33,17 @@ bieres = {} # Boissons a offrir
salons = { } # liste de salons recommandés
welcome = { } # Messages d'accueil des salons
clock = { } # horloges pbta
paquets = { } # paquets de cartes des salons
cartes_base = [ " As de carreau " , " 2 de carreau " , " 3 de carreau " , " 4 de carreau " , " 5 de carreau " , " 6 de carreau " , \
" 7 de carreau " , " 8 de carreau " , " 9 de carreau " , " 10 de carreau " , " Valet de carreau " , " Dame de carreau " , \
" Roi de carreau " , " As de coeur " , " 2 de coeur " , " 3 de coeur " , " 4 de coeur " , " 5 de coeur " , " 6 de coeur " , \
" 7 de coeur " , " 8 de coeur " , " 9 de coeur " , " 10 de coeur " , " Valet de coeur " , " Dame de coeur " , " Roi de coeur " , \
" As de pique " , " 2 de pique " , " 3 de pique " , " 4 de pique " , " 5 de pique " , " 6 de pique " , " 7 de pique " , " 8 de pique " , \
" 9 de pique " , " 10 de pique " , " Valet de pique " , " Dame de pique " , " Roi de pique " , " As de trefle " , " 2 de trefle " , \
" 3 de trefle " , " 4 de trefle " , " 5 de trefle " , " 6 de trefle " , " 7 de trefle " , " 8 de trefle " , " 9 de trefle " , \
" 10 de trefle " , " Valet de trefle " , " Dame de trefle " , " Roi de trefle " , " Joker rouge " , " Joker noir " ]
# Connexion du bot
config = configparser . ConfigParser ( )
@ -128,8 +138,17 @@ def prive_read():
prive = loader . load ( )
except :
prive = { }
def paquets_read ( ) :
global cartes
try :
with open ( " paquets " , " rb " ) as fichier :
loader = pickle . Unpickler ( fichier )
paquets = loader . load ( )
except :
paquets = { }
def save_obj ( room = None , event = None ) :
def save_obj ( room = None , message = None ) :
with open ( " moderateurs " , " wb " ) as fichier :
saver = pickle . Pickler ( fichier )
saver . dump ( modos )
@ -162,6 +181,10 @@ def save_obj(room=None, event=None):
with open ( " welcome " , " wb " ) as fichier :
saver = pickle . Pickler ( fichier )
saver . dump ( welcome )
if ( ' cartes ' in liste_mod ) :
with open ( " paquets " , " wb " ) as fichier :
saver = pickle . Pickler ( fichier )
saver . dump ( paquets )
def signal_handler ( signal , frame ) : # Sauvegarder les données persistantes avant sortie
save_obj ( None , None )
@ -1306,6 +1329,41 @@ async def showquote(room, message): # afficher les citations mode reponse matrix
await reponses ( room , phrases , True )
else :
await msg ( room , " Je n ' ai pas de citations pour ce salon " , sender )
async def card ( room , message ) : # Tirer une carte du paquet sans la retirer
global modules
try :
rmod = modules [ room . room_id , ' card ' ]
except :
modules [ room . room_id , ' card ' ] = False
if ( modules [ room . room_id , ' card ' ] ) :
reponse = cartes_base [ random . randrange ( 0 , len ( cartes_base ) ) ]
await msg ( room , reponse , getUser ( message ) )
async def carte ( room , message ) : # Tirer une carte du paquet en la retirant ensuite
global modules
try :
rmod = modules [ room . room_id , ' carte ' ]
except :
modules [ room . room_id , ' carte ' ] = False
if ( modules [ room . room_id , ' carte ' ] ) :
global paquets
sender = getUser ( message )
cartes = paquets . get ( room . room_id )
if ( cartes is None ) :
cartes = list ( cartes_base )
args = getMessage ( message ) . split ( )
if ( len ( args ) > 1 ) :
cartes = list ( cartes_base )
await msg ( room , " Le paquet est melange " , sender )
else :
if ( len ( cartes ) < 1 ) :
cartes = list ( cartes_base )
await msg ( room , " Le paquet est melange " , sender )
i = random . randrange ( 0 , len ( cartes ) )
await msg ( room , cartes [ i ] , sender )
cartes . pop ( i )
paquets [ room . room_id ] = cartes
async def help ( room , message ) : # Aide en message privé
await help_center ( room , message , " help " , True )
@ -1401,6 +1459,23 @@ async def help_center(room,message,name,private): # Aide sur les commandes dispo
message + = " \n - !modo : Gère les modérateurs du salon \n - !module : Gère les modules actifs sur le salon \n \n - Pour plus de details, tapez ! " + name + " <commande> \n \n Retrouvez Asmodee sur https://git.ombreport.info/nemesis/asmodee_matrix "
await msg ( salon , message , sender , False )
@bot . listener . on_message_event
async def callSave ( room , message ) :
match = botlib . MessageMatch ( room , message , bot , PREFIX )
if match . is_not_from_this_bot ( ) and match . prefix ( ) and match . command ( " save " ) :
save_obj ( room , message )
@bot . listener . on_message_event
async def callCard ( room , message ) :
match = botlib . MessageMatch ( room , message , bot , PREFIX )
if match . is_not_from_this_bot ( ) and match . prefix ( ) and match . command ( " card " ) :
await card ( room , message )
@bot . listener . on_message_event
async def callCarte ( room , message ) :
match = botlib . MessageMatch ( room , message , bot , PREFIX )
if match . is_not_from_this_bot ( ) and match . prefix ( ) and match . command ( " carte " ) :
await carte ( room , message )
@bot . listener . on_message_event
async def callHelp ( room , message ) :