- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Deviens membre Premium magic_button
Débloque cette session en devenant Membre Premium 🚀
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Afin de pouvoir récupérer la liste de tous les membres d'un serveur,il va d'abord falloir que vous activez les Servers Members Intentsà l'intérieur des préférences de votre bot.
00:00:11 :Donc si vous allez dans le portail des développeurs de Discord,dans votre application et que vous allez dans l'onglet Bot,vous allez retrouver ces intents ici dans Privileged Gateway Intentset par défaut ils devraient être désactivés.
00:00:24 :Si vous souhaitez pouvoir obtenir la liste de l'entièreté des membres de votre serveur,il faut donc activer au minimum 7 intents,donc le Server Member Intents.
00:00:33 :Activez-le, sauvegardez les changementset ensuite on va pouvoir accéder à la liste des membres de notre serveuravec quelques lignes de code.Dans notre code, on va également devoir activer ces intents.
00:00:44 :Pour ça, je vais créer un objet Intents à partir de la classe Discord.intentset on a ici une méthode qui nous permet de créer les intents par défaut.
00:00:54 :Donc en fait c'est des permissions par défautauxquelles on va rajouter la permission des membres.Donc je crée une variable ici que j'appelle Intentsqui va être égale à ces intents par défautet je vais ensuite faire Intents.members
00:01:06 :et passer ici cette variable à True.Donc ça, ça va me permettre d'activer,en plus de ce que j'avais fait dans le serveur,donc dans le serveur ici c'était juste pour direqu'on voulait activer au niveau du bot ces permissions,mais ensuite dans notre code, il faut égalementindiquer quelles permissions on veut activer ou désactiver.
00:01:23 :Donc dans ce cas-ci, on veut juste activercette permission members qui par défaut ne l'est paset ensuite quand on va utiliser ici Superpour appeler la méthode init de comments.bot
00:01:32 :dont on irrite dans notre classe,on va passer le Intents à ce paramètre Intents ici.Donc on a le command prefix qui correspondau command prefix de notre bot.
00:01:42 :Il faut lui passer quelque chose ici,donc j'ai passé une chaîne de caractèreet après ça, je lui passe les intentsque j'ai créé à ces lignes ici.
00:01:49 :Donc dans le code, ça va être assez simple.Déjà ce que je fais ici, c'est que je récupèrele serveur sur lequel je suis.Donc pour ça, dans mon bot que j'ai créé ici,donc j'ai une classe qui irrite de comments.bot,
00:02:00 :je vais récupérer les guilds.Donc les guilds, c'est les serveurs sur lesquelssont présents votre bot.Dans ce cas-ci, mon bot n'est présentque sur une seule guild, donc un seul serveur.
00:02:10 :Donc je récupère ce serveur avec les crochets zéroici puisque guilds va me retourner une liste.Donc ça me donne mon serveuret ensuite sur ce serveur qui est un objetde type discord.guild,
00:02:20 :donc cette classe guild ici,vous allez avoir accès à tous les membrestout simplement avec l'attribut members.Donc ça, ça va vous retourner vraiment la listeentière de tous les membres de votre serveur.
00:02:30 :J'ai fait un print ici du nombre totalde membres en faisant l'nde cette liste, donc l'n de all membersqui est la variable qui correspondà tous les membres et juste pour vous montrerce qu'il peut être intéressant de faire également,j'ai importé le moduledateTime, donc on a from dateTime,
00:02:46 :import dateTime et timeDeltaici qui vont me permettrede récupérer tous les utilisateursqui ont rejoint le serveuril y a au moins 30 jours.
00:02:56 :Donc pour ça ce que je fais c'est que je récupère la dated'aujourd'hui avec dateTime.todayça, ça va me retourner un objet datequi est la date d'aujourd'huiet je vais enlever à cette date 30 jours.
00:03:06 :Donc pour ça je crée un timeDeltaet je vais lui passer le nombrede jours 30, donc je fais days égale 30ça, ça me fait un delta de 30 joursque je peux soustraire à la date d'aujourd'hui.
00:03:16 :Donc on va être la date d'aujourd'huimoins 30 jours, j'ai mis ça dans une variableque j'ai appelée lastMonth, donc ça, ça va êtreune date et on va pouvoir comparercette date avec la date à laquelleles membres ont rejoint mon serveur.
00:03:28 :Donc pour ça je fais une compréhension de listeici, donc je récupère memberpour member in all members, donc çapour l'instant c'est juste une boucle for assezbasique et j'ai rajouté une conditionici, donc un if qui me permetde récupérer les membres seulement sijointAt, donc cet attribut ici qui est
00:03:44 :égal à une date, est plus grand quelastMonth. Donc si la date à laquelleles membres ont rejoint le serveurest supérieure à il y a30 jours, et bien je vais les récupérer. Donc je mets
00:03:54 :tout ça dans une variable que j'appelle last30 days et je vais ensuiteafficher, là encore avec l'n, le nombred'utilisateurs qui ont rejoint le serveursur les 30 derniers jours. Donc si
00:04:04 :je lance le script, vous allez voirqu'on va avoir deux phrases qui s'affichentavec le nombre total de membres surmon serveur, donc 9423sur docstring, et le nombre de membresinscrits sur les 30 derniers jours, 737.
00:04:16 :Donc là bien sûr vous pouvez changercette valeur ici, par exemple si je veuxregarder sur les 60 derniers jours,je peux changer le nombre de jours et on va reculerd'autant de jours dansle passé. Donc là on a 1163
00:04:28 :personnes qui ont rejoint le serveur surles 60 derniers jours. Donc voilàcomment récupérer très facilement la listedes membres avec l'attribut membersici, qui va vous retourner une liste,ensuite vous pouvez boucler sur chacun desmembres de cette liste pour récupérer certaines informationssur les membres de votre serveur.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.