A web extension to keep tracking your favorite animes & get notified about new released episodes.
I watch animes almost daily or at least once or twice a week, & i wanted something like youtube-viewer to notify me of new released episodes, so instead of checking anime websites one by one & trying to remember which was the last episode i've watched, i thought that scraping those websites would be a great idea and would save me a significant time & effort (maybe i'm just super lazy 😁).
Expand to continue reading
Unfortunately, i didn't find a browser/client side web scraper available out there, so i just created a simple one composed of Angular's Http client service & a crafted HTML parser. I also, used some proxies to bypass CORS limitations on browsers.
Okay, so why Angular? why not React or Vue? I mainly choosed Angular for its robust structure & advanced features, like: Pipes, directives, lazy loading, dependency injection & many others. Still its learning & master curve long, but i honestly love the way Angular forces you to use best practices on top of keeping your code flexible & maintainable.
📣 You can also try it as a web application.
feature | web app | web extension |
---|---|---|
scraper | ✓ | ✓ |
proxy | ✓ (required to bypass CORS) | ✓ (optional) |
notifications | ✓ | |
popup mode | ✓ | |
open links in inactive tabs | ✓ |
- Scrape anime data from several websites.
- Replace promises with observables for better performance?
- Memorize last viewed/clicked episodes.
- Auto-check & notify for new posted anime episodes.
- Implement missing/empty crawlers functions.
- Translations.
Run ng serve
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Run ng build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Make sure you have the following package installed npm install -g web-ext
. Then run:
npm run build && npm run package
Icon made by scaredofadulthood.
Some ideas were inspired by manga-provider & x-ray.
This project is licensed under the MPL2 license.