Metadata-Version: 2.1
Name: bot-bin
Version: 1.2.0
Summary: Shared cogs and utilities for use in Discord bots
Home-page: https://github.com/bmintz/bot-bin
Author: lambda#0987
License: BlueOak-1.0.0
Download-URL: https://github.com/bot-bin/cogs/archive/v1.2.0.tar.gz
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: AsyncIO
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Internet
Classifier: Topic :: Utilities
Requires-Python: >=3.6.0
Description-Content-Type: text/markdown
Requires-Dist: discord.py (<2.0.0,>=1.2.3)
Requires-Dist: humanize
Requires-Dist: python-dateutil
Requires-Dist: objgraph
Provides-Extra: sql
Requires-Dist: aiocontextvars (>=0.2.2) ; extra == 'sql'
Requires-Dist: asyncpg ; extra == 'sql'
Requires-Dist: prettytable ; extra == 'sql'

# Bot Bin
Shared cogs and utilities for use in Discord bots.
Some cogs require bot configuration; those that do expect a `bot.config` dict attribute.

## bot_bin.bot

Contains an AutoShardedBot subclass. Contains custom error logging, customizable on_message bot ignoring,
case insensitive prefixes, and database setup if the setup_db kwarg is set to True. Requires the config kwarg
to be set to a dict. bot.config['tokens']['discord'] should be the bot's Discord token.

## bot_bin.debug

Contains memory usage and performance debugging commands. Most other debug functionality is already provided
by [jishaku](https://pypi.org/project/jishaku/).

## bot_bin.misc

Contains an uptime, ping, and copyright command. The latter requires bot.config['copyright_license_file'] to be
set to a path to a text file, the contents of which will be sent when the user runs the copyright command.

Also contains various utilities:
- `codeblock` wraps text in a markdown code block
- `absolute_natural_timedelta` returns an English string representing an amount of seconds
- `natural_timedelta` returns an English string representing the difference between two dates.
  This function differs from `absolute_natural_timedelta` in that it also supports years and months.
- `natural_rate` returns an English string representing a rate of occurence.
- `plural` is a format object which pluralizes strings. For example: `f'Found {plural(len(results)):weapon}'`
- `natural_join` joins a sequence of strings according to English grammar
- `timeit` is a context manager that times the code in the `with` block

## bot_bin.sql

Contains SQL execution commands for asyncpg.
Requires `bot.pool` to be set to either an asyncpg Connection or a ConnectionPool.
Requires the `bot_bin[sql]` extra.

## bot_bin.stats

Implements the guild count API for DBL, DBots, Bots For Discord, LBots, and Discord Boats.
This is configured using `bot.config['tokens']['stats']`.
Each key should be a domain, e.g. `bot.config['tokens']['stats']['discordbots.org']` would be the bot's DBL token.

Defines a `send-stats` owner only command which sends the current guild counts to the configured APIs
and reports any errors.


