Discord.py: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Modificato il linguaggio di programmazione. Sul sito di React Native (framework di javascript per la creazione di app per mobile) risulta che discrod sia stata creata utilizzando questo framework. Lascio il link affinché possiate verificare, scorrete la pagina e troverete discord. https://reactnative.dev/showcase Etichette: Annullato Modifica da mobile Modifica da web per mobile |
m Bot: errori di battitura |
||
(8 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1:
'''Discord.py''' è una [[Libreria (software)|libreria]] [[open source]]<ref>{{Cita web|url=https://awesomeopensource.com/projects/discord-py|titolo=Discord.py|sito=awesomeopensource.com|lingua=EN|accesso=11 Maggio 2021}}</ref> per il linguaggio di programmazione [[Python]], che permette di sviluppare [[Bot (informatica)|Bot]] per il [[social media]] [[Discord (software)|Discord]].
{{Software
|Nome = discord.py
|Sviluppatore = Rapptz
|UltimaVersione =
|SistemaOperativo = multipiattaforma
|Linguaggio =
|Genere = python
|Licenza = [[Licenza MIT|MIT]]
Riga 16:
La libreria discord.py è stata sviluppata da Rapptz come modulo Python per sviluppare Bot per la piattaforma [[VoIP]] [[Discord (software)|Discord]].
La prima versione della libreria è stata rilasciata il 23 agosto 2015<ref>{{Cita web|url=https://github.com/Rapptz/discord.py/releases/tag/v0.1.0|titolo=Release v0.1.0 · Rapptz/discord.py|sito=GitHub|lingua=en|accesso=2021-05-12}}</ref>, compatibile con versioni di Python 2.7+ e 3.3+. La versione 0.10.0 è stata rilasciata il 28 giugno 2016<ref>{{Cita web|url=https://github.com/Rapptz/discord.py/releases/tag/v0.10.0|titolo=Release v0.10.0 · Rapptz/discord.py|sito=GitHub|lingua=en|accesso=2021-05-12}}</ref> è stata la prima versione totalmente compatibile col modulo ''asyncio'', che permette di scrivere codice Python usando la [[sintassi]] async/await<ref>{{Cita web|url=https://docs.python.org/3/library/asyncio.html|titolo=asyncio — Asynchronous I/O — Python 3.9.5 documentation|sito=docs.python.org|lingua=EN|accesso=2021-05-12}}</ref>.
Il 9 aprile 2019 è stata rilasciata la versione v1.0.0<ref>{{Cita web|url=https://github.com/Rapptz/discord.py/releases/tag/v1.0.0|titolo=Release v1.0.0 · Rapptz/discord.py|sito=GitHub|lingua=en|accesso=2021-05-12}}</ref>, frutto di una completa ristrutturazione<ref>{{Cita web|url=https://discordpy.readthedocs.io/en/stable/migrating.html#migrating-1-0|titolo=Migrating to v1.0|sito=discordpy.readthedocs.io|lingua=EN|accesso=2021-05-12}}</ref> e con molteplici cambiamenti non retrocompatibili; inoltre, è stato abbandonato il supporto per Python 3.4 e precedenti.
I creatori hanno annunciato la fine dello sviluppo della libreria<ref name=":1">{{Cita web|url=https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1|titolo=The future of Discord.py|autore=Rapptz|sito=Github|data=28 Agosto 2021|lingua=EN|accesso=21 Ottobre 2021}}</ref> a fine Agosto 2021<ref
La versione più recente è la 1.7.3<ref name=":0">{{Cita web|url=https://discordpy.readthedocs.io/en/stable/whats_new.html?highlight=latest%20version|titolo=Versioni di Discord.py|sito=discordpy.readthedocs.io}}</ref>.▼
Il 18 agosto 2022 è stata rilasciata la version v2.0.0<ref>{{Cita web|url=https://github.com/Rapptz/discord.py/releases/tag/v2.0.0|titolo=Release v2.0.0 · Rapptz/discord.py|sito=GitHub|lingua=en|accesso=2023-10-26}}</ref>, che portò molti cambiamenti non retrocompatibili<ref>{{Cita web|url=https://discordpy.readthedocs.io/en/stable/whats_new.html#v2-0-0|titolo=Changelog — v2.0.0|sito=discordpy.readthedocs.io|lingua=EN|accesso=2023-10-26}}</ref>, i più notevoli sono una completa revisione di molte componenti async<ref>{{Cita web|url=https://discordpy.readthedocs.io/en/stable/migrating.html#asyncio-event-loop-changes|titolo=asyncio Event Loop Changes|sito=discordpy.readthedocs.io|accesso=2023-10-26}}</ref>, e la rimozione del supporto per gli account utente<ref>{{Cita web|url=https://discordpy.readthedocs.io/en/stable/migrating.html#removal-of-support-for-user-accounts|titolo=Removal of Support For User Accounts|sito=discordpy.readthedocs.io|accesso=2023-10-26}}</ref>, consentendo fare [[login]] solo con gli account bot, in conformità con le modifiche ai termini di servizio di Discord<ref>{{Cita web|url=https://support.discord.com/hc/en-us/articles/115002192352-Automated-user-accounts-self-bots|titolo=Automated user accounts (self-bots)|lingua=EN}}</ref>; inoltre, è stato abbandonato il supporto per Python 3.7 e precedenti.
▲I creatori hanno annunciato la fine dello sviluppo della libreria<ref>{{Cita web|url=https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1|titolo=The future of Discord.py|autore=Rapptz|sito=Github|data=28 Agosto 2021|accesso=21 Ottobre 2021}}</ref> a fine Agosto 2021<ref>{{Cita web|url=https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1|titolo=Danny, creator of discord.py, is halting development of the library. Discord.py has come to an end - will likely have a major effect on bots|sito=Reddit|data=28 Agosto 2021|accesso=21 Ottobre 2021}}</ref>, per poi riprendere lo sviluppo<ref>{{Cita web|url=https://gist.github.com/Rapptz/c4324f17a80c94776832430007ad40e6|titolo=dpy_development_plans.md|autore=262588213843476|sito=Gist|lingua=en|accesso=2022-03-26}}</ref> nei primi giorni di Marzo 2022.
▲La versione più recente è la
== 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
=== Funzioni ===
Il Bot può eseguire, così come un normale utente, le seguenti operazioni:
* leggere
*
* scrivere in privato agli utenti
* bannare, espellere e moderare gli utenti
* eliminare messaggi e canali
* creare guilds<ref>Funzione disponibile solo se il bot è in meno di 10 guild.</ref>
* collegarsi a canali vocali e riprodurre audio
Non può naturalmente leggere i messaggi di canali<ref>Si veda [[Discord]], alla definizione di canale, sottodivisione del "server".</ref> che per questioni di autorizzazione<ref>Si veda [[Discord]], nella sezione riguardante la gerarchia dei ruoli, e i vari permessi.</ref> non possa vedere. Non può neanche leggere il contenuto dei messaggi se gli appositi intenti non sono attivati<ref>{{Cita web|url=https://discordpy.readthedocs.io/en/stable/intents.html#message-content|titolo=A Primer to Gateway Intents|sito=discordpy.readthedocs.io|lingua=EN|accesso=2023-10-26}}</ref>.
Allo stesso modo, per mancanza di autorizzazione da parte del proprietario
Le autorizzazioni dei singoli Bot sono gestite da [[discord:developers/applications|Discord Developer Portal]], che genera link di invito al
=== Esempi di codice ===▼
▲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.
Questo codice crea un semplice bot che quando si esegue il comando '!ciao', lui risponde.
Per fare bot più complessi, è suggerito usare la libreria ''discord.ext.commands''<ref>{{Cita web|url=https://discordpy.readthedocs.io/en/stable/ext/commands/index.html|titolo=discord.ext.commands – Bot commands framework|sito=discordpy.readthedocs.io|lingua=EN|accesso=2023-10-26}}</ref>, compresa in ogni installazione di discord.py. Esempi più avanzati si possono trovare [https://github.com/Rapptz/discord.py/tree/master/examples sul sito GitHub della libreria].<syntaxhighlight lang="python3" line="1">
# Questo esempio necessita avere l'intento 'message_content' abilitato.
▲=== Esempi di codice ===
import discord
class MyClient(discord.Client):
Bot.run(token)▼
async def on_ready(self):▼
"""Funzione chiamata dalla libreria quando il cache
interno del cliente è completamente popolato."""
▲async def on_ready():
print(f'Autenticato come {self.user} (ID: {self.user.id})')
print(f'Sono in {len(self.guilds)} server, e vedo {len(bot.users)} utenti.')
print('------')
async def on_message(self, message):
"""Evento chiamato quando il cliente riceve un messaggio."""
# non vogliamo che il bot risponda a se stesso.
if message.author == self.user:
return
# Se il messaggio inizia con '!ciao', noi rispondiamo.
if message.content.startswith('!ciao'):
await message.reply('Ciao da Wikipedia!', mention_author=True)
# Intenti di base, più l'intento necessario per leggere il contenuto dei messaggi.
intents = discord.Intents.default()
intents.message_content = True
# Attività: messaggio mostrato sotto il nome del bot.
activity = discord.CustomActivity(name="Ciao da Wikipedia!")
client = MyClient(intents=intents, activity=activity)
</syntaxhighlight>''Questo esempio è una copia modificata e tradotta dell'esempio ufficiale [https://github.com/Rapptz/discord.py/blob/master/examples/reply.py reply.py]''
== Note ==
|