Home

Awesome

trace.moe-telegram-bot

License GitHub Workflow Status Docker Docker Image Size Discord

This Telegram Bot can tell the anime when you send an screenshot to it

https://telegram.me/WhatAnimeBot

https://user-images.githubusercontent.com/1979746/126060529-8a33523a-967b-48de-9f67-bd0273076e7b.mp4

Features

How to use

  1. Start chatting with the bot https://telegram.me/WhatAnimeBot
  2. Send anime screenshots (images, gif or video) directly to the bot
  3. You may also forward images from other chats to the bot
  4. The bot will tell you the anime, episode, and time code of it
  5. It will also send you a video preview of that scene

How to use (in group)

  1. Add the bot @WhatAnimeBot to your group
  2. Reply to any group image, mention the bot with @WhatAnimeBot
  3. Wait for the bot to reply

Note that the bot has no access to your messages before it is added to your group

How to host the bot on your own

If you have privacy concern, you can host the bot on your own.

Please read Telegram's official tutorial to create a Bot first.

You need to disable Privacy Mode if you want to use your bot in group chat.

Environment Variables

TELEGRAM_TOKEN=       # e.g. 111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
TELEGRAM_WEBHOOK=     # e.g. https://your.host.com/
PORT=                 # (optional) Default: 3000
TRACE_MOE_KEY=        # (optional)
ANILIST_API_URL=      # (optional) Default: https://graphql.anilist.co/

Deploy to Heroku

Deploy

Host with docker

Docker Image available on Docker Hub or GitHub Container Registry

docker run -it --rm --name trace-moe-tg-bot \
  -e TELEGRAM_WEBHOOK=https://your.host.com/ \
  -e TELEGRAM_TOKEN=111111111:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \
  -p 443:3000 \
  ghcr.io/soruly/trace.moe-telegram-bot:latest

Note that you need to configure a reverse proxy if you need HTTPS.

Host bare-metal with Node.js

Install Node.js >= 20.12, then:

git clone https://github.com/soruly/trace.moe-telegram-bot.git
cd trace.moe-telegram-bot
npm install
node server.js

Host bare-metal with pm2

You also can use pm2 to run this in background in cluster mode.

Use below commands to start / restart / stop server.

npm run start
npm run stop
npm run reload
npm run restart
npm run delete

To change the number of nodejs instances, edit ecosystem.config.json