All Projects → Fazendaaa → AnilistBot

Fazendaaa / AnilistBot

Licence: MIT license
A new code base to Anilist bot in Telegram.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to AnilistBot

nyaamal
A chrome extension to download anime torrents directly from MyAnimeList and Anilist
Stars: ✭ 75 (+127.27%)
Mutual labels:  anime, anilist
WaifuBot
discord waifu / husbando gacha bot
Stars: ✭ 36 (+9.09%)
Mutual labels:  anime, anilist
arm
A JSON-based database to relational mapping Anime ID's between MyAnimeList, Annict, AniList and Syoboi Calendar
Stars: ✭ 25 (-24.24%)
Mutual labels:  anime, anilist
anilist-chinese
Translate anime titles on anilist.co to Chinese
Stars: ✭ 21 (-36.36%)
Mutual labels:  anime, anilist
Shukofukurou-iOS
The Ultimate Open Source AniList, Kitsu, and MyAnimeList Tracker for iOS/iPadOS written in Objective-C
Stars: ✭ 29 (-12.12%)
Mutual labels:  anime, anilist
AniMouto
Let an imouto improve your AniList experience.
Stars: ✭ 44 (+33.33%)
Mutual labels:  anime, anilist
AmimeWatch
Telegram bot made in Python 3 using the @pyrogram framework.
Stars: ✭ 19 (-42.42%)
Mutual labels:  anime, anilist
anilist-to-mal
A python tool that will export your Anilist.co anime list for MAL importing
Stars: ✭ 33 (+0%)
Mutual labels:  anime, anilist
neko-box
😺 Pinnable dynamic Gist with your latest AniList activity.
Stars: ✭ 25 (-24.24%)
Mutual labels:  anime, anilist
arm-server
📃 A service for mapping Anime ID's between AniList, AniDB, MAL, and Kitsu (using https://github.com/manami-project/anime-offline-database)
Stars: ✭ 46 (+39.39%)
Mutual labels:  anime, anilist
anitrend-app
Track all your favorite Anime & Manga with AniTrend as it offers anime or manga lookup, tracking and reference powered by AniList
Stars: ✭ 138 (+318.18%)
Mutual labels:  anime, anilist
AniAPI
Core behind AniAPI HTTP Rest APIs.
Stars: ✭ 144 (+336.36%)
Mutual labels:  anime, anilist
kaa.si-cli
Stream anime from kaa.si and sync with anilist
Stars: ✭ 12 (-63.64%)
Mutual labels:  anime, anilist
AnimeDLR
AnimeDLR
Stars: ✭ 47 (+42.42%)
Mutual labels:  anime, anilist
scrobbly
↩️ Scrobble your animes to Anilist, Kitsu!
Stars: ✭ 23 (-30.3%)
Mutual labels:  anime, anilist
MalScraper
Scrape everything you can from MyAnimeList.net
Stars: ✭ 132 (+300%)
Mutual labels:  anime
vueman.ga
Delightful reading and tracking of your mangas.
Stars: ✭ 32 (-3.03%)
Mutual labels:  anime
jojo-cards
Card game based on Jojo's Bizarre Adventure (ジョジョの奇妙な冒険)
Stars: ✭ 112 (+239.39%)
Mutual labels:  anime
NovelLibrary
One stop for reading all novels
Stars: ✭ 93 (+181.82%)
Mutual labels:  anime
worker
⚒ Web crawler that analyzes and dissects subtitles into database entries
Stars: ✭ 16 (-51.52%)
Mutual labels:  anime

AnilistBot




Say Thanks!

English README Portuguese README

Build Status codecov Codacy Badge Dependencies Known Vulnerabilities Maintainability

A new code base to Anilist bot in Telegram.

About

This bot helps you to send info in your Telegram chats about:

  • Animes
  • Mangas
  • Characters
  • Studios
  • Staffs
  • etc

More than this it also notifies you when new episodes are released and lets you have a:

  • Watchlist
  • Readlist
  • Countdown from new episodes
  • Time watching anime calculator
  • Anime and manga filters in your lists by: airing/publishing, completed, cancelled & soon
  • News when released from ANN about your mangas and animes
  • And much more features that are under development

All of the data about it is fetched from Anilist & Anichart.

Disclaimer

  1. JoshStar was kind to allow me to store the translated info about the content in different languages, improving the user experience;
  2. This project is a new implementation, the old code base is here;
  3. Also, I've removed the command option when talking to the to the bot from the old version due to low usage.

Supported languages:

By default all the commands are in English, but you can see if the same command is available in your language. Only English and Portuguese had some kind of review, the others are automatic translation from Google Translate.

Want a new language? Talk to me through an issue about it or hit me up at Telegram: @farmy.

How to use it

First of all, talk to @AnilistBot.

Inline Searches

The inline searches works in any chat conversation:

@AnilistBot search content

Example:

@AnilistBot One Piece

Descriptions & Genres

Shows info about anime, manga, characters and staff.

Readlist & Watchlist

Add to your list to watch or read later.

Countdown

Shows a countdown of your next content releases.

Help

If you have any other questions about it just use it the help command in a bot chat talk:

/help

Artwork

I've made all the artwork for it, Studio Ghibli was my inspiration.


You can see more in the img folder.

Supporting

Right now, this project has the following total lines of code (loc):

Lines

And this bot uses four paid services:

  1. Heroku
  2. Heroku Redis
  3. mLab
  4. Google Translate

All of your support actually makes a difference to help me maintain this project up and running. I really would love if anyone who uses it could support it helping one time with any value that think it worth it or even supporting it each month with one dollar through my Patreon. And this would allow me to improve this project more and more, adding a ton of features that I've planned.

You don't think that money is the best option to help out? It's okay, I'm open to translations request and code also! Just take a look at Contributing.

Also, I explain better the "Why" receive donations instead of selling ads at SUPPORT.md.

Consider buy me a coffee:

Buy Me a Coffee

Or even becoming a patron:

Patreon

To all of my fellow countrymen, starting at one real each month:

Padrim

Contributing

Please, I'm not a native/fluent english speaker, so whether you see a variable name wrote the wrong way or even some comment where I've wrote something with the wrong "past perfect way of life" or something like that, please let me know it. Not always is just about the code, but rather making it more clear to other people to learn from it.

So, whether is code or not you can help me out making this code more accessible or even supporting trough a new language or fixing some mistranslated content. Just read the CONTRIBUTING.md.

TODO

Since I will be keeping this README up to date with any major change and I don't use any versioning system to log all the fixed bugs or previous projects updates, you can still have a taste of what comes next and what is being under analysis right in the Projects tab. But I can give you a taste what I have in mind:

  • Caching most requested requisitions
  • Improve metric in time watching Anime:
    • Provide to user options to "what to do" in real life what he likes. Like showing a YouTube drawing channel if the users likes Bakuman as one example
  • Add a pattern matching like "Did you mean?" of Google. Probably I will use it didyoumean package
  • Anilist connection
  • Anime/manga review
  • Support to anime/manga news besides ANN -- to improve news accessibility
  • Natural Language Processing -- You can really have a talk to this bot
  • Anime and Manga recommendation -- Create a engine to it:
    • Create another server to store this processing -- Talking to the bot through an GraphQL API and probably using Rust to processing this info and GO to handle the API
    • Probably uses a server that allows GPU usage
    • Improve this engine through image, video and audio processing
  • Create a site displaying info about:
    • Trending animes/mangas
    • A graph showing anime/mangas distances between users likes
  • The site must be a PWA to allow new users besides the Telegram user base

Deployment

This bot is up and running at Heroku in a Docker container. You can also deploy yourself this bot into Heroku through:

Deploy

But if you use Azure:

Deploy to Azure

Or even deploy it in Docker Cloud:

Deploy to Docker Cloud

Note: You must be logged in to Docker Cloud for the button to work. Otherwise, the link results in a 404 error.

Versioning

I would love to say that SemVer or anything like that is used but, in my personal experience, this kind of approach doesn't work very well with me, the guy who could be committing in this project for two weeks in a roll and leave it for almost one year with no simple npm update... No versioning system is used.

How does it work?

You can build yourself a bot similar to this one, I've wrote a tutorial about it in my Podesearch Bot just follow the procedures listed in BUILDING.md.

Code

Plain and simple Typescript and the Microsoft linter standards for it.

Webpack

"JUST WHY???" -- everybody

As the Anilist API V2 was written with GraphQL, as I was using it, the needed queries as JS imports was a option but only with Webpack and the webpack-graphql-loader. And since this makes the code more cleaner and easier to maintain that's why it was used; that's the GREAT difference and could seen a little bit off to see this kind of decision and that's the answer.

Build with

Testing

Since there's a Travis CI integration and Codecov. All of the tests were written with Jest with the help of ts-jest.

To run all tests just:

npm test

If you ran into some errors related to package dependencies and want to know how to handle it, read the Security info.

Unneeded Code

There's a pattern to do testing based on using JSON files describing the tests to be done. That being said, the doTesting function has a unneeded argument, the name of the function to be tested.

Node runs using V8 engine, but since this project uses TS, the compiled code doesn't have the name property in the anonymous function. The problem is a known issue; the folks at Jest and ts-jest helped a lot to understand this -- once this issue is fixed there won't be this anymore.

Security

I've added a integration with Snyk to ensure the Continuos Development (CD).

Errors/Bugs in Dependencies

When Snyk report some errors or bugs that can be fixed, just follow the CLI command to fix them before running -- more info at their docs.

Authors

  • Only me for now.

License

Like many Open-Source Software (OSS) the MIT license is used, more about it in LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].