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.
Source Distribution
File details
Details for the file pbpy-1.0.2.tar.gz.
File metadata
- Download URL: pbpy-1.0.2.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.8.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
777ea9fb51551ebd4652566b7b0a68d6062eaa8cc8f3cf3eef338b79e0bd6827
|
|
| MD5 |
d3bb3f3230f0235a1e388b5626cc33c1
|
|
| BLAKE2b-256 |
19dfb3abe2b93502190e7ac6d444e8557df6328ba7a5f3bc01e2efbc613b2d86
|