https://github.com/axel-dev/anime-tracker
:spider_web: All in one place to track your favorite animes
https://github.com/axel-dev/anime-tracker
angular anime anime-scraper crawler scraper web-extension
Last synced: 4 months ago
JSON representation
:spider_web: All in one place to track your favorite animes
- Host: GitHub
- URL: https://github.com/axel-dev/anime-tracker
- Owner: AXeL-dev
- License: mpl-2.0
- Created: 2020-07-14T19:58:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-17T11:31:13.000Z (almost 3 years ago)
- Last Synced: 2023-03-07T06:37:50.753Z (almost 3 years ago)
- Topics: angular, anime, anime-scraper, crawler, scraper, web-extension
- Language: TypeScript
- Homepage: https://axel-dev.github.io/anime-tracker/
- Size: 18.6 MB
- Stars: 20
- Watchers: 3
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
#
Anime Tracker
A web extension to keep tracking your favorite animes & get notified about new released episodes.

## Motivation
I watch animes almost daily or at least once or twice a week, & i wanted something like [youtube-viewer](https://github.com/AXeL-dev/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 :grin:).
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.
## Installation
:warning: Due to [DMCA](https://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act) law, this web extension will be available as a zip file on github [releases](https://github.com/AXeL-dev/anime-tracker/releases), use it on your own risk.
[How to install?](https://github.com/AXeL-dev/install-webextension)
:mega: You can also [try it as a web application](https://axel-dev.github.io/anime-tracker/).
## Features
| feature | web app | web extension |
| --------------------------- | --------------------------- | ------------- |
| scraper | ✓ | ✓ |
| proxy | ✓ (required to bypass CORS) | ✓ (optional) |
| notifications | | ✓ |
| popup mode | | ✓ |
| open links in inactive tabs | | ✓ |
## ToDo
- [x] Scrape anime data from several websites.
- [x] Replace promises with observables for better performance?
- [x] Memorize last viewed/clicked episodes.
- [x] Auto-check & notify for new posted anime episodes.
- [ ] Implement missing/empty crawlers functions.
- [ ] Translations.
## Development server
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.
## Build
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.
## Package
Make sure you have the following package installed `npm install -g web-ext`. Then run:
```
npm run build && npm run package
```
## Credits
Icon made by [scaredofadulthood](https://www.reddit.com/user/scaredofadulthood/).
Some ideas were inspired by [manga-provider](https://github.com/adrianonrails/manga-provider) & [x-ray](https://github.com/matthewmueller/x-ray).
## License
This project is licensed under the [MPL2](LICENSE) license.