Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dblpy

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dblpy

A simple API wrapper for top.gg written in Python.

  • 0.4.0
  • PyPI
  • Socket score

Maintainers
2

DBL Python Library

.. image:: https://img.shields.io/pypi/v/dblpy.svg :target: https://pypi.python.org/pypi/dblpy :alt: View on PyPi .. image:: https://img.shields.io/pypi/pyversions/dblpy.svg :target: https://pypi.python.org/pypi/dblpy :alt: v0.3.3 .. image:: https://readthedocs.org/projects/dblpy/badge/?version=latest :target: https://dblpy.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

A simple API wrapper for top.gg_ written in Python

Installation

Install via pip (recommended)

.. code:: bash

pip install dblpy

Install from source

.. code:: bash

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

Documentation

Documentation can be found here_

Features

  • POST server count
  • GET bot info, server count, upvote info
  • GET all bots
  • GET user info
  • GET widgets (large and small) including custom ones. See top.gg/api/docs_ for more info.
  • GET weekend status
  • Built-in webhook to help you handle top.gg upvotes
  • Automated server count posting
  • Searching for bots via the API

Additional information

  • Before using the webhook provided by this library, make sure that you have specified port open.
  • webhook_port must be between 1024 and 49151.
  • Below examples are to be used as discord.py cogs. If you need help adding them to your bot, feel free to ask in the #development channel in our Discord server_.

Examples

Posting server count manually:

.. code:: py

from discord.ext import commands, tasks

import dbl


class TopGG(commands.Cog):
    """
    This example uses tasks provided by discord.ext to create a task that posts guild count to top.gg every 30 minutes.
    """

    def __init__(self, bot):
        self.bot = bot
        self.token = 'dbl_token'  # set this to your DBL token
        self.dblpy = dbl.DBLClient(self.bot, self.token)
        self.update_stats.start()

    def cog_unload(self):
        self.update_stats.cancel()

    @tasks.loop(minutes=30)
    async def update_stats(self):
        """This function runs every 30 minutes to automatically update your server count."""
        await self.bot.wait_until_ready()
        try:
            server_count = len(self.bot.guilds)
            await self.dblpy.post_guild_count(server_count)
            print('Posted server count ({})'.format(server_count))
        except Exception as e:
            print('Failed to post server count\n{}: {}'.format(type(e).__name__, e))


def setup(bot):
    bot.add_cog(TopGG(bot))

Using webhook:

.. code:: py

from discord.ext import commands

import dbl


class TopGG(commands.Cog):
    """
    This example uses dblpy's webhook system.
    In order to run the webhook, at least webhook_port must be specified (number between 1024 and 49151).
    """

    def __init__(self, bot):
        self.bot = bot
        self.token = 'dbl_token'  # set this to your DBL token
        self.dblpy = dbl.DBLClient(self.bot, self.token, webhook_path='/dblwebhook', webhook_auth='password', webhook_port=5000)

    @commands.Cog.listener()
    async def on_dbl_vote(self, data):
        """An event that is called whenever someone votes for the bot on top.gg."""
        print("Received an upvote:", "\n", data, sep="")

    @commands.Cog.listener()
    async def on_dbl_test(self, data):
        """An event that is called whenever someone tests the webhook system for your bot on top.gg."""
        print("Received a test upvote:", "\n", data, sep="")


def setup(bot):
    bot.add_cog(TopGG(bot))

With autopost:

.. code:: py

from discord.ext import commands

import dbl


class TopGG(commands.Cog):
    """
    This example uses dblpy's autopost feature to post guild count to top.gg every 30 minutes.
    """

    def __init__(self, bot):
        self.bot = bot
        self.token = 'dbl_token'  # set this to your DBL token
        self.dblpy = dbl.DBLClient(self.bot, self.token, autopost=True)  # Autopost will post your guild count every 30 minutes

    @commands.Cog.listener()
    async def on_guild_post(self):
        print("Server count posted successfully")


def setup(bot):
    bot.add_cog(TopGG(bot))

.. _top.gg: https://top.gg/ .. _top.gg/api/docs: https://top.gg/api/docs .. _here: https://dblpy.rtfd.io .. _Discord server: https://discord.gg/EYHTgJX

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc