Discord bot

Dan Heng

Shelve a book. Read it page by page inside Discord, search it, and keep your place.

What it does

Books, where the conversation already is

Reads four formats

EPUB, PDF, DOCX and plain text. Chapters come through where the file has them. Scanned PDFs are turned away rather than shelved empty.

A real reader

Turn pages, jump to any number, pick a chapter, star a page. Your place is kept without asking, and search takes you straight to a passage.

Shared or private

Put a book on the server shelf for everyone, or your own shelf where only you can see it. Tags keep either one tidy.

Quiet by default

Every reply is shown only to you. Nothing reaches the channel unless you share it yourself, with a quote or your own reading record.

Commands

Everything it answers to

/shelve Add a book
/library Browse the shelves
/book What it knows about a book
/tag Set or clear a book's tags
/rename Correct a book's title or author
/scope Move a book between shelves
/discard Take a book off the shelf
/read Open a book where you left off
/continue Resume whatever you read last
/find Search inside a book
/download Get the file it was shelved from
/bookmark Add, list, open and remove your marks
/quote Share a page with the channel
/progress How far through you are
/stats What you have read, marked and shelved
/settings Page size, progress bar, reader colour
/help The list, in Discord
/status Health and server count

Two right click entries as well: Shelve attachment on a message carrying a file, and Reading now on a person.

Before you add it

What it can and cannot see

Its connection to Discord asks for one intent, which tells it when it has been added to a server or removed from one. No message, member or presence ever reaches it, so your conversations stay out of reach. It sees a command you ran, or a message you handed it through the right click menu.

Only upload books you have the right to hold. What you shelve is stored as text so it can be read and searched, and the file itself is kept in private storage so that /download can hand it back. /discard removes all of it. The privacy notice has the details.