A modern Telegram bot for CSUST, developed in Go.
- ๐ค AI Chat Conversations (supports multiple models)
- ๐ Message Search (powered by MeiliSearch)
- ๐จ Stable Diffusion Image Generation
- ๐ฒ Gacha System
- ๐ญ Entertainment Features
- ๐ง Flexible Configuration System
- ๐ฏ Regular Expression Triggers
- ๐ก๏ธ Comprehensive Permission Management
- ๐ MCP (Model Context Protocol) Support
- Go 1.25+
- Redis
- Docker & Docker Compose (recommended)
You need to install Docker first.
Clone the project:
git clone git@github.com:CSUSTers/csust-got.git
cd csust-gotThen run with Docker Compose:
docker-compose up -d# Clone the project
git clone git@github.com:CSUSTers/csust-got.git
cd csust-got
# Install dependencies
make deps
# Build
make build
# Run
./gotPull the latest version:
docker-compose pull
docker-compose up -dPlease modify the configuration in config.yaml.
token: Change to your bot tokenredis.pass: Change Redis passwordrequirepassinredis.conf: Change Redis password (must match the above)
say_hello - A simple greeting
hello_to_all - Greet everyone
recorder - <msg> Repeat messages
info - Get bot information
id - Get user ID (private chat)
cid - Get group ID
google - <Key Words> Google search
bing - <Key Words> Bing search
bilibili - <Key Words> Search on Bilibili
github - <Key Words> Search on GitHub
search - <keyword> Search message history
search - -id <chat_id> <keyword> Search messages in specific group
search - -p <page> <keyword> Search with pagination
chat - <text> Chat with AI
think - <text> Deep thinking mode
summary - Summarize replied content (reply to a message)
ban_myself - Ban yourself for rand[40,120] seconds
ban - Ban command [Admin]
ban_soft - Soft ban [Admin]
fake_ban - [duration] Fake ban
fake_ban_myself - Fake ban yourself
kill - Fake kill
no_sticker - Enable traffic-saving mode
shutdown - Shutdown bot
boot - Boot up bot
hitokoto - [type:ab..kl] Random quotes
hitowuta - Random poems
hito_netease - NetEase style quotes
mc - Minecraft mini-game
reburn - Respawn (MC game)
gacha_setting - Set JSON gacha configuration
gacha - Draw cards according to your configuration
getvoice - character=<character> gender=<sex> theme=<topic> type=<type> <text>
sd - <prompt> Generate images
sdcfg - Configure SD server
sdcfg - set <key> <value> Set configuration
sdcfg - get <key> Get configuration
sdlast - Get last used prompt
forward - [msgID] Forward a historical message
sleep - Time to sleep
no_sleep - Don't sleep
run_after - <duration> <msg> Remind yourself to do something later
hoocoder - <text> Hoo encoding
decode - _[decoding]_[encoding] <text> Decode text
bye_world - [duration] Say goodbye to the world
hello_world - Say hello to the world
iwant - f=<format> I want sticker
setiwant - f=<format> vf=<format> sf=<format> Set sticker format
- Language: Go 1.25+
- Framework: telebot.v3
- Database: Redis
- Search: MeiliSearch
- AI: OpenAI API Compatible Interface
- Image Generation: Stable Diffusion WebUI
- Containerization: Docker & Docker Compose
# Install dependencies
make deps
# Run tests
make test
# Build
make build
# Code check
golangci-lint runThis project is licensed under the MIT License.
Note: This project is for educational and communication purposes only.