Wrapper per l'api di primebots.it
Project description
PrimeBots Python Wrapper
Wrapper in Python per l'API di prime bots
Indice
Installazione
È richiesta la versione di Python 3.5.3 o maggiore
Installazione tramite pip
pip install pbpy
Installazione tramite source
pip3 install git+https://github.com/Polliog/primebots-py-wrapper
Documentazione
La documentazione verrà aggiornata col susseguirsi delle versioni
Indice Documentazione
Inizializzazione
import pbpy
from discord.ext import commands
class PBots(commands.Cog):
"""
Esempio di inizializzazione
"""
def __init__(self, client):
self.client = client
self.token = 'API Token' #Ottenibile accedendo alla sezione API nel pannello di modifica del bot
self.pb_client = pbpy.PBclient(self.client, self.token)
def setup(client):
client.add_cog(PBots(client))
Parametri PBclient
Parametro | Descrizione |
---|---|
client |
discord.Client |
token |
[String] primebots.it API Token |
autoupdate |
[Bool] Aggiornamento automatico dei server |
logger |
[Bool] Debug Logs |
Eventi
Per usare gli eventi si utilizza il decorator @commands.Cog.listener() sopra una funziona col nome dell'evento da controllare piu' eventuali parametri
import pbpy
from discord.ext import commands
class PBots(commands.Cog):
"""
Esempio dell'utilizzo degli eventi all'interno di un cog
"""
def __init__(self, client):
self.client = client
self.token = 'API Token' #Ottenibile accedendo alla sezione API nel pannello di modifica del bot
self.pb_client = pbpy.PBclient(self.client, self.token)
@commands.Cog.listener()
async def on_count_update(self):
"""
Questo evento avviene ogni volta che la conta dei server viene aggiornata
"""
print("Conta dei server aggiornata")
@commands.Cog.listener()
async def on_socket_ready(self):
"""
Questo evento avviene ogni volta che il bot si collega con successo al server dell'API
"""
print("API pronta!")
@commands.Cog.listener()
async def on_vote(self, id):
"""
Questo evento avviene ogni volta che il bot viene votato
:param ID = id dell'utente che ha votato.
"""
user = self.client.get_user(int(id))
print(f"{user.name} ha votato il bot!")
def setup(client):
client.add_cog(PBots(client))
Funzioni
I nomi dei comandi usati nella documentazione sono soltanto da esempio
import pbpy
import discord
from discord.ext import commands
class PBots(commands.Cog):
"""
Questo esempio mostra come aggiornare manualmente il contatore dei server sul sito ogni ora.
"""
def __init__(self, client):
self.client = client
self.token = 'API Token' #Ottenibile accedendo alla sezione API nel pannello di modifica del bot
self.pb_client = pbpy.PBclient(self.client, self.token)
@commands.command()
async def update_guilds(self):
"""
Aggiorna manualmente il numero dei server in cui è presente il bot
"""
await self.pb_client.update_guilds() #Numero dei server preso automaticamente
@commands.command()
async def has_voted(self, ctx, user:discord.User):
"""
Controlla se un utente ha votato
:param userID = ID dell'utente da controllare
:return bool
"""
ha_votato = await self.pb_client.has_voted(user.id)
if ha_votato:
print("L'utente ha votato")
else:
...
@commands.command()
async def get_votes(self):
"""
Questa funzione ti permette di ricavare una lista di tutti gli utenti che hanno votato il bot
:return [ID, ID, ID]
"""
lista_utenti = await self.pb_client.get_votes()
def setup(client):
client.add_cog(PBots(client))
Esempi
Tutti gli esempi vengono eseguiti all'interno di cogs
Attenzione: Il numero dei server mostrati potrebbe essere minore a quello in cui è realmente il bot a causa dei nuovi limiti all'interno dell'API di discord, per attenuare il problema è consigliato avere entrambi gli Privileged Gateway Intents
Aggiornamento manuale della conta dei server ogni ora:
from discord.ext import commands, tasks
import pbpy
class PBots(commands.Cog):
"""
Questo esempio mostra come aggiornare manualmente il contatore dei server sul sito ogni ora.
"""
def __init__(self, client):
self.client = client
self.token = 'API Token' #Ottenibile accedendo alla sezione API nel pannello di modifica del bot
self.pb_client = pbpy.PBclient(self.client, self.token)
self.guild_count_update.start()
@tasks.loop(hours=1)
async def guild_count_update(self):
"""Loop che aggiorna ogni ora automaticamente il contatore dei server sul sito"""
await self.client.wait_until_ready() #Aspetta che la cache del bot sia pronta, inizializzabile anche esternamente alla funzione
await self.pb_client.update_guilds() #Prende automaticamente i server in cui e' il bot.
def setup(client):
client.add_cog(PBots(client))
Aggiornamento automatico tramite autoupdate:
from discord.ext import commands
import pbpy
class PBots(commands.Cog):
"""
Questo esempio mostra come aggiornare automaticamente il contatore dei server sul sito tramite la funzione autoupdate.
"""
def __init__(self, client):
self.client = client
self.token = 'API Token' #Ottenibile accedendo alla sezione API nel pannello di modifica del bot
self.pb_client = pbpy.PBclient(self.client, self.toke, autoupdate=True) #Autoupdate = True: Aggiornamento automatico ogni ora
@commands.Cog.listener()
async def on_count_update(self):
print("Conta dei server aggiornata")
def setup(client):
client.add_cog(PBots(client))
Meta
Libreria distribuita sotto licenza MIT License. Consulta LICENSE
per maggiori informazioni.
Contribuzione
- Fork la repo (https://github.com/Polliog/primebots-py-wrapper/fork)
- Clone il progetto
- Commit usando il tuo branch
- Push il tuo lavoro nel tuo fork
- Invita una Pull request in modo da poter controllare i tuoi cambiamenti
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.