June 17, 2025
I've added lots more functionally to bookmarks. To begin with, whenever a user searches for a manga, the selector automatically jumps to the part that the user bookmarked. Additionally, I've added a /bookmarks command (a command I probably should have added a long time ago... wtv lol)
I've added the ability to bookmark mangas now. A user can start reading a manga and then jump to a bookmark they've set while reading. Of course, this bookmark is persistent. In the future, I plan to implement a /bookmarks command so that users can automatically jump to bookmarks without having to go through the entire process of selecting the manga they want to read first.
I've finally started the backend for bookmarking! I plan to use MongoDB for this, and so far, it seems to be working well. I still have yet to implement the UI for this feature, though.
After slightly restructuring the code, the first manga in a search is now automatically selected after running the /read command. I've also made some attempts to make better use of mypy.
I've now added the ability to cache HTTP requests, using the aiohttpclientcache library and sqlite. So far, this library seems to work quite well, and I'm sure it will start to pay off, especially when users try to access more manga. On a side note, I've started using the Black formatter to keep my code more readable. In the future, I plan to implement saving progress in mangas, liking mangas, and more.
I've now added the ability to cycle between chapters.
I'm proud to say that the first version of my bot has gone public! I'm using this project to knock out two birds with one stone: Learn how to build bots with Discord, and learn how to do basic web scraping. Throughout the development of this bot, I have learned quite a bit about both. I hope to continue the development of this bot by cleaning up its codebase and adding more niceties.
A Discord bot for browsing and reading manga directly within Discord using data scraped from MangaPark.
This was widely regarded as a great move by everyone.