Skip to main content

A Discord.py module to facilitate easier viewing for large amounts of content.

Project description

DiscordBook

A Discord module for bot developers wanting a lightweight and customizable package for a book-like info display.

Example of a well-formatted book display:

Terminology:

  • Book - abstracted structure to use
  • Line - particular item inside the book - in the above example, "Abyssal Buckler" would be a line
  • Chapter - group of lines - in the example, "A" would be a chapter
  • Page - combination of chapter headers and lines that can be displayed on the embed

Options

Currently, 2 types of books are supported - a default book with the following default parameters:

Book(chapters = [], title = "\a", description = '\a', color = 1, image = None, per_page = 10)

Example usage of Book:

from discordbook import Book

# Creating the content for the book
lines1 = ["test line 1", "test line 2", "test line 3"]
chapter1 = Chapter("Test Chapter 1", lines1)

lines2 = ["test line 1", "test line 2", "test line 3"]
chapter2 = Chapter("Test Chapter 2", lines2)

lines3 = ["test line 1", "test line 2", "test line 3"]
chapter3 = Chapter("Test Chapter 3", lines3)

lines4 = ["test line 1", "test line 2", "test line 3"]
chapter4 = Chapter("Test Chapter 4", lines4)

lines5 = ["test line 1", "test line 2", "test line 3"]
chapter5 = Chapter("Test Chapter 5", lines5)

# Initializing the object itself
item_book = Book([chapter1, chapter2, chapter3, chapter4, chapter5], "Test Book", "Test book Desc")

# A blocking method that will send and constantly update the book display
await item_book.open_book(client, message.channel, message.author)

And an alphabetically ordered book with the following default parameters:

AlphabeticalBook(content = [], title = "\a", description = '\a', color = 1, per_page = 10, ignore_caps = True)

Example usage of Alphabetical Book:

from discordbook import AlphabeticalBook

# Creating the content for the book
lines1 = ["Test", "test", "Abc", "bc", "D", "Zee"]

# Initializing the object itself
a_book = AlphabeticalBook(lines1, "Test Book", "test desc", ignore_caps = False)

# A blocking method that will send and constantly update the book display
await a_book.open_book(client, message.channel)

Result

Caveats

  • Books are static once generated
  • Opening a book should be the last call in your function, since it will prevent the rest of your code from running
  • Creating a book with empty lines will result in errors

TODO:

  • Develop ordering of chapters based of less than function?
  • Bookmark feature to come back to this page after?
  • Give more fine-grained control with non-blocking books
  • Better error checking on small/empty books
  • Set browsing speed, better options for settings
  • Better documentation

Open to pull requests or issues!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

discordbook-0.2.4.tar.gz (5.0 kB view details)

Uploaded Source

Built Distribution

discordbook-0.2.4-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file discordbook-0.2.4.tar.gz.

File metadata

  • Download URL: discordbook-0.2.4.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for discordbook-0.2.4.tar.gz
Algorithm Hash digest
SHA256 2bef455ec333b0d07c6078aa0e06ca09330dd33c685eaa69593da78d006518a5
MD5 63b7b56c442a8db3c367678389070f44
BLAKE2b-256 4d49cf2573278ff502985f27812df0d50fe8d61bf5469854c34cbe815e255dd7

See more details on using hashes here.

File details

Details for the file discordbook-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: discordbook-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5

File hashes

Hashes for discordbook-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6007b8769d3444f351e73f79f6e50e9b32ca444a0c370c71c2da6eb1c32b1656
MD5 e373b60e824d88d10ad589bbf8919cd8
BLAKE2b-256 e2312d161b7efde9dcd4fce7523f63d3255a94c50891cb5de9ac103bdaeb356f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page