Bot discord mute auto et calcul du temps passé
Bonjour,
S'il vous plaît aidez-moi à créer un code pour un bot discord qui va :
- rendre muet tout le monde dans le channel vocal (id du channel vocal : 1307451490901950506 )
- poster tous les jours à minuit le temps passé ces dernières 24h dans le channel vocal de chaque utilisateur (en mode top 3) sur un channel écrit (id du chanel :1307254551199613013)
Windows / Chrome 131.0.0.0
1 réponse
-
Bonjour,
Il faut voir au niveau de l'API discord si tu peux rendre muet un utilisateur et si tu peux effectivement récupérer les temps de paroles de chacun.
Sous ces conditions, tu devrais utiliser la classe datetime.timedelta pour stocker les temps écoulés, puis utiliser la fonction sorted pour faire ton classement.
#!/usr/bin/env python3 from datetime import timedelta from pprint import pprint from operator import itemgetter measurements = [ ("aaa", timedelta(hours=3)), ("bbb", timedelta(hours=3, minutes=2)), ("ccc", timedelta(hours=2)), ("ddd", timedelta(minutes=1)), ("eee", timedelta(days=2, hours=1)), ] pprint(measurements) measurements = sorted( measurements, key=itemgetter(1), # Les durées sont à la position 1 de chaque tuple reverse=True # Tri par durée décroissante ) n = 3 print(f"Top {n}:") for i in range(n): print(measurements[i][0]) # Affichage des nomsRésultat :
[('aaa', datetime.timedelta(seconds=10800)), ('bbb', datetime.timedelta(seconds=10920)), ('ccc', datetime.timedelta(seconds=7200)), ('ddd', datetime.timedelta(seconds=60)), ('eee', datetime.timedelta(days=2, seconds=3600))] Top 3: eee bbb aaaBonne chance