A simple API wrapper for discordbots.org written in Python
Switch branches/tags
Clone or download
FishyFing Merge pull request #8 from fourjr/patch-1
Allow example to work on both async and rewrite branch of discord.py
Latest commit dc6b954 Jun 17, 2018

README.rst

DBL Python Library

View on PyPi v0.1.6 Documentation Status

A simple API wrapper for discordbots.org written in Python

Installation

Install via pip (recommended)

pip install dblpy

Install from source

pip install git+https://github.com/DiscordBotList/DBL-Python-Library

Documentation

Documentation can be found here

Working

  • POST server count
  • GET bot info, server count, upvote count, upvote info
  • GET all bots
  • GET user info
  • GET widgets (large and small) including custom ones. See discordbots.org/api/docs for more info.

Not Working / Implemented

  • Searching for bots via the api

Example

import dbl
import discord
from discord.ext import commands

import aiohttp
import asyncio
import logging


class DiscordBotsOrgAPI:
    """Handles interactions with the discordbots.org API"""

    def __init__(self, bot):
        self.bot = bot
        self.token = 'dbl_token'  #  set this to your DBL token
        self.dblpy = dbl.Client(self.bot, self.token, loop=bot.loop)
        self.updating = bot.loop.create_task(self.update_stats())

    async def update_stats(self):
        """This function runs every 30 minutes to automatically update your server count"""
        await self.bot.is_ready()
        while not bot.is_closed():
            logger.info('Attempting to post server count')
            try:
                await self.dblpy.post_server_count()
                logger.info('Posted server count ({})'.format(self.dblpy.guild_count())
            except Exception as e:
                logger.exception('Failed to post server count\n{}: {}'.format(type(e).__name__, e))
            await asyncio.sleep(1800)

def setup(bot):
    global logger
    logger = logging.getLogger('bot')
    bot.add_cog(DiscordBotsOrgAPI(bot))