Discord.py
Discord.py è una libreria open source[1] per il linguaggio di programmazione Python, che permette di sviluppare Bot per il social media Discord.
discord.py software | |
---|---|
Genere | Libreria di Python |
Sviluppatore | Rapptz |
Ultima versione | 1.7.2 |
Sistema operativo | Multipiattaforma |
Linguaggio | Python |
Licenza | MIT (licenza libera) |
Lingua | inglese |
Sito web | discordpy.rtfd.org/en/latest |
Storia
La libreria discord.py è stata sviluppata da Rapptz come modulo Python per sviluppare Bot per la piattaforma VoIP Discord.
La prima versione della libreria è stata rilasciata il 23 agosto 2015[2], compatibile con versioni di Python 2.7+ e 3.3+. La versione 0.10.0 è stata rilasciata il 28 giugno 2016[3] è stata la prima versione totalmente compatibile col modulo asyncio, che permette di scrivere codice Python usando la sintassi async/await[4].
Il 9 aprile 2019 è stata rilasciata la versione v1.0.0[5], frutto di una completa ristrutturazione[6] e con molteplici cambiamenti non retrocompatibili; inoltre, è stato abbandonato il supporto per Python 3.4.
La versione più recente è la 1.7.2[7].
Utilizzo
Dopo aver importato il modulo discord.py in un programma, è possibile utilizzare i suoi metodi per creare il codice di un Bot, il quale a tutti gli effetti può agire su Discord esattamente come un utente umano.
Funzioni
Il Bot può eseguire, così come un normale utente, le seguenti operazioni:
- leggere i messaggi
- inviare messaggi
- allegare file[8]
- scrivere in privato agli utenti
Non può naturalmente leggere i messaggi di canali[9] che per questioni di autorizzazione[10] non possa vedere.
Allo stesso modo, per mancanza di autorizzazione da parte del proprietario[11] del server (che i programmatori usano chiamare Guild[12]) potrebbe subire limitazioni nei permessi per:
- scrivere in privato agli utenti
- menzionare gli utenti
- espellere gli utenti[13]
- bannare gli utenti[14]
- modificare il nickname degli altri utenti
Le autorizzazioni dei singoli Bot sono gestite da Discord Developer Portal, che genera link di invito al server per i Bot a seconda dei permessi che il ruolo personalizzato richiede. In caso di mancata autorizzazione, il compilatore restituisce un errore.
Un Bot avente tutte le autorizzazioni all'interno di un server, può accedere a gran parte del pacchetto dati[15] degli utenti a lui visibili, che include:
- l'indirizzo IP
- l'account connesso a Discord (Twitch, Twitter, Steam, spotify)
- il numero discriminatore[16]
- una lista di qualsiasi sessione attiva: PC, cellulare, browser (incluso indirizzo IP)
- la lista degli amici
- la lista degli utenti bloccati
- informazioni sui pagamenti (Nitro[17])
- informazioni sviluppatore[18] (per webhooks, Bot)
- la lista degli utenti. (Dall'aggiornamento alla versione 1.7 ha causato problemi[19], in quanto necessita di abilitare da Discord Developer Portal[20] una funzione privilegiata[21])
Esempi di codice
Il codice seguente è lo stretto necessario per un programma che semplicemente porti il Bot online.
import discord
import discord.ext.commands.errors
from discord.ext import commands
from discord import client
token = "<inserisci-qui-il-token-del-bot>" #I token dei Bot vengono presi da Discord Developer Portal, e vengono immediatamente rinnovati se trovati online dal sistema di Discord
Bot = commands.Bot(command_prefix = "£", description = "<inserisci-qui-la-descrizione-del-bot>")
gioco = discord.Game("£Aiuto | Bot | @Bot#1127")
Bot.run(token)
Il codice di cui sotto contiene un piccolo evento aggiunto, che stampa a schermata Bot#1127 è ora online ID: 12345678
@Bot.event
async def on_ready():
print(Bot.user, " è ora online ", "ID: ", Bot.user.id)
await Bot.change_presence(status = discord.Status.idle, activity = gioco)
Collegamenti esterni
Note
- ^ Discord.py, su awesomeopensource.com. URL consultato l'11 Maggio 2021.
- ^ (EN) Release v0.1.0 · Rapptz/discord.py, su GitHub. URL consultato il 12 maggio 2021.
- ^ (EN) Release v0.10.0 · Rapptz/discord.py, su GitHub. URL consultato il 12 maggio 2021.
- ^ asyncio — Asynchronous I/O — Python 3.9.5 documentation, su docs.python.org. URL consultato il 12 maggio 2021.
- ^ (EN) Release v1.0.0 · Rapptz/discord.py, su GitHub. URL consultato il 12 maggio 2021.
- ^ Migrating to v1.0, su discordpy.readthedocs.io. URL consultato il 12 maggio 2021.
- ^ Versioni di Discord.py, su discordpy.readthedocs.io.
- ^ Che devono però essere presenti nella stessa cartella del programma, e che vanno quindi consegnati nel caso ci si avvalga di un servizio di hosting.
- ^ Si veda Discord, alla definizione di canale, sottodivisione del "server".
- ^ Si veda Discord, nella sezione riguardante la gerarchia dei ruoli, e i vari permessi.
- ^ Dalla stessa libreria Discord.py definito (discord.guild.)owner.user
- ^ Server vs Guild, su GitHub, 15 Agosto 2016. URL consultato l'11 Maggio 2021.
- ^ Esiste il comando apposito member.kick()
- ^ Esiste il comando apposito member.ban()
- ^ Il tuo Pacchetto Dati di Discord, su support.discord.com.
- ^ Quattro cifre, separate dal nome utente da un'hashtag, che anche i Bot a loro volta hanno.
- ^ Servizio a pagamento, abbonamento "premium" di Discord
- ^ Discord Developer Portal associa ogni Bot all'utente che l'ha creato.
- ^ discord.py - discord py, ctx.guild.members, only returns bot, su Stack Overflow. URL consultato l'11 maggio 2021.
- ^ discord.guild.members, su Python.tutoriallink.com.
- ^ discord.Intents, su https://discordpy.readthedocs.io/. URL consultato l'11 Maggio 2021.