Kumiko is a versatile Telegram bot written in TypeScript using Deno and the Grammy framework. It serves as both an anime information bot and a moderation tool for Telegram groups.
- Utilizes the Shikimori API to fetch anime details
- Two ways to search for anime:
- Inline mode:
@kumikorobot name
- Command:
/anime name
- Inline mode:
(For admins and owners - wield your power wisely!)
/ban
: Give a troublemaker an extended vacation from the chat/mute
: Put a chatty user's keyboard on silent mode/unban
: Grant a banned user a second chance at redemption/unmute
: Restore a muted user's voice to the chat/warn
: Issue a yellow card to a user who's skating on thin ice/unwarn
: Erase a warning and wipe the slate clean/admin
: Add new admin
Remember: Three strikes and they're out! (3 warnings = automatic ban)
- Uses middlewares to detect and handle:
- Admin users
- Owner
- Regular users
- Currency exchange functionality
- Post Github Webhook Updates in a Group
- Language: TypeScript
- Runtime: Deno
- Framework: Grammy (Telegram Bot API framework for Deno)
- Deployment: Deno Deploy
As Kumiko is a Telegram bot, there's no need for end-users to install anything.
To add Kumiko to your Telegram group, simply search for @kumikorobot
on
Telegram and start a chat or add it to your group.
- Inline mode: In any chat, type
@kumiko_bot
followed by the anime name you want to search for. - Command mode: In a chat where Kumiko is present, use
/anime
followed by the anime name.
(Only available for admins and owners)
/ban
,/mute
,/unban
,/unmute
: Manage user restrictions/warn
,/unwarn
: Manage user warnings Note: 3 warnings result in an automatic ban, resetting the warning count/admin
: Promote user to an admin
Simply type an amount followed by a valid currency code. Kumiko will respond with the equivalent amounts in UZS (Uzbek Som) and RUB (Russian Ruble).
Examples:
100 USD
50 EUR
1000 JPY
Kumiko automatically detects the currency and provides the exchange rates.
To set up the development environment:
- Install Deno: Deno Installation Guide
- Clone the repository:
git clone https://github.com/openexis/kumiko.git
- Navigate to the project directory:
cd kumiko
- Run the bot locally:
deno run -A --env --unstable-kv mod.ts
-A
- Allow all, in case we need access, in our case, we need access to network, kv and env variables, so instead of typing all of that I simply use this flag, the project doesn't have suspicious dependency or piece of code.--env
- It is required to read env variables by Deno.--unstable-kv
- As of know, as far as I know, KV feature is unstable, so it requires a special flag to use Deno KV.
Kumiko can be easily deployed using Deno Deploy. You will need to have a Deno Deploy account. Visit the website and sign up.
First, fork this repository by clicking Fork button or this link.
- Get your token from BotFather
HOST
should be set toWEBHOOK
- Optionally, set your organization name
Then copy your project URL, in my case https://akumarujon-kumiko-86.deno.dev/
. Then navigate to /webhook
route on browser.
Contributions to Kumiko are welcome! Please feel free to submit pull requests, create issues or spread the word.
This project is licensed under the MIT License - see the LICENSE file for details.