
Manhwa Notifier
-The bot is available on top.gg.
Context
I started to read manhwas around 2020, with more than 10 manhwas to follow on different websites, it was hard to remember to which chapter I was, and when a new chapter was released.
At this time, I didn’t find any bot that could do this, so I decided to make one for me and others.
Features
I added simple feature like:
- Follow/Unfollow a manhwa
- List followed manhwas
- Check every 30 minutes if a new chapter is released for all users
- Notify in user DM when a new chapter is released
- Have a list of all unread chapters
Later, some people asked me to add some features like notify in a channel with a role mention, and I added it.
Screenshots
When the bot got new chapters
The list of unread chapters
The details of an unread chapter
Now
The bot is still active, with 420 users, 3056 manhwas followed, and around 80 active users per week.
At this point, the bot is stable, and I don’t have any plan to add new features, but I’m still fixing bugs and adding new manhwa sources when needed.
I’m still using it a lot with around 50 manhwas followed, so it’s very useful for me.
Technologies
The bot is made with discord.js, the data are stored in json files, and the bot is hosted on my old pc with Ubuntu Server.
I’m using Puppeteer to scrap the manhwa websites, and I’m using a lot of regex to get the data I need. The method use depends on the website, some are easy to scrap, some are hard. Without Puppeteer, some websites would be impossible to scrap because of Cloudflare protection.
I’m using a lot of embeds to make the bot more user-friendly, and I’m using the discord.js library to interact with the Discord API. I’ve made my own command and menu handler to make the code more readable and maintainable.
Difficulties
Technically, the website I use to read manhwas post illegally the chapters, so they are often taken down by the author or the editor and use some tactics to avoid being DMCAd. One of them, is changing the id of manhwas pages every a certain time, so I have to check if the id is still valid, and if not, I have to find the new id. Then I replace all url in my data with the new id, and I have to do this for all users, so it’s a bit long.
I always need to check when a website becomes unavailable, and then I need to remove it from the sources.