https://github.com/database64128/cubicbot
A stupid and annoying chatbot for your group chats.
https://github.com/database64128/cubicbot
Last synced: about 1 year ago
JSON representation
A stupid and annoying chatbot for your group chats.
- Host: GitHub
- URL: https://github.com/database64128/cubicbot
- Owner: database64128
- License: gpl-3.0
- Created: 2021-04-26T10:32:55.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-04-26T07:26:11.000Z (about 1 year ago)
- Last Synced: 2025-04-26T08:28:21.836Z (about 1 year ago)
- Language: C#
- Size: 455 KB
- Stars: 20
- Watchers: 1
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#
Cubic Bot
[](https://github.com/database64128/CubicBot/actions/workflows/build.yml)
[](https://github.com/database64128/CubicBot/actions/workflows/release.yml)
[](https://aur.archlinux.org/packages/cubic-bot-telegram-git/)
A stupid and annoying chatbot for your group chats.
## Features
- Modular architecture: Disable any module you don't need.
- Adaptive design: Detect bot privacy mode and automatically disable incompatible features.
- Easy maintenance: Register enabled commands on startup.
## Modules
### Commands
#### 0. Personal
- `/add_pronouns`: โ Add pronouns.
- `/remove_pronouns`: โ Remove pronouns.
- `/get_pronouns`: โค๏ธ Get someone's pronouns by replying to someone's message, or display your own pronoun settings.
- `/set_default_pronouns`: ๐ Set or unset default pronouns for all chats.
- `/set_preferred_pronouns`: ๐ถ๏ธ Set or unset preferred pronouns for this chat.
#### 1. Common
- `/apologize`: ๐ฅบ Sorry about last night.
- `/chant`: ๐ฃ Say it out loud!
- `/drink`: ๐ฅค I'm thirsty!
- `/me`: ๐คณ What the hell am I doing?
- `/thank`: ๐ฆ Reply to or mention the name of the person you would like to thank.
- `/thanks`: ๐ Say thanks to me!
- `/vax`: ๐ This ain't Space Needle!
#### 2. Dice
- `/dice`: ๐ฒ Dice it!
- `/dart`: ๐ฏ Oh shoot!
- `/basketball`: ๐ 404 Basket Not Found
- `/soccer`: โฝ It's your goal!
- `/roll`: ๐ฐ Feeling unlucky as hell?
- `/bowl`: ๐ณ Can you knock them all down?
#### 3. Consent Not Needed
- `/cook`: ๐ Who cooks the best food in the world? Me!
- `/throw`: ๐ฅบ Throw me a bone.
- `/catch`: ๐ Catch me if you can.
- `/force`: โฎ๏ธ Use of force not recommended.
- `/touch`: ๐ฅฒ No touching.
- `/fuck`: ๐ Feeling horny as fuck?
#### 4. Not A Vegan
- `/eat`: โ๏ธ Do you want to eat a snowman?
#### 5. Law Enforcement
- `/call_cops`: ๐ Hello, this is 911. What's your emergency?
- `/arrest`: ๐ Do I still have the right to remain silent?
- `/guilty_or_not`: ๐งโโ๏ธ Yes, your honor.
- `/overthrow`: ๐๏ธ Welcome to Capitol Hill!
#### 6. Public Services
- `/call_ambulance`: ๐ Busy saving lives?
- `/call_fire_dept`: ๐ The flames! Beautiful, aren't they?
#### 7. Chinese
- `/interrogate`: ๐ซ ๅผ้จ๏ผๆฅๆฐด่กจ๏ผ
#### 8. Chinese Tasks
- `/ok`: ๐ ๅฅฝ็๏ผๆฒก้ฎ้ข๏ผ
- `/assign`: ๐ ไบค็ปไฝ ไบ๏ผ
- `/unassign`: ๐ข ไธๅนฒไบ๏ผ
#### 9. Systemd
- `/systemctl`: `โก๏ธ systemctl [unit]`
#### 10. Query Stats
- `/get_stats`: ๐
View your stats in this chat, or reply to a message to view the sender's stats in this chat.
- `/leaderboard_grass`: ๐ View grass growth rankings in this chat.
- `/leaderboard_demanding`: ๐ Who's the most demanding person in this chat?
- `/leaderboard_talkative`: ๐ฃ๏ธ Who's the most talkative person in this chat?
### Stats
#### 1. Grass
The Chinese charater "่" is commonly seen in Chinese text messages. It could mean "Damn.", "Shit.", "Fuck!", or simply "Awesome!".
This stats counter counts each individual's usage of "่" in group chats and generates usage rankings. Say it when you feel like it to unlock achievements.
The counter also recognizes common variants and typos like "cao", "่น", "cๅฅฅ", "cๅท", etc.
#### 2. Command Usage Stats
Counts command usage and generates the demanding leaderboard.
#### 3. Message Counter
Counts text messages and generates the talkative leaderboard.
## Build
Prerequisites: .NET 8 SDK
### Build with Release configuration
```bash
dotnet build -c Release
```
### Publish as framework-dependent
```bash
dotnet publish CubicBot.Telegram.App -c Release
dotnet publish CubicBot.Telegram.Tool -c Release
```
### Publish as self-contained for Linux x64
```bash
dotnet publish CubicBot.Telegram.App -c Release \
-p:PublishSingleFile=true \
-p:PublishTrimmed=true \
-p:DebuggerSupport=false \
-p:EnableUnsafeBinaryFormatterSerialization=false \
-p:EnableUnsafeUTF7Encoding=false \
-p:InvariantGlobalization=true \
-r linux-x64 --self-contained
dotnet publish CubicBot.Telegram.Tool -c Release \
-p:PublishSingleFile=true \
-p:PublishTrimmed=true \
-p:DebuggerSupport=false \
-p:EnableUnsafeBinaryFormatterSerialization=false \
-p:EnableUnsafeUTF7Encoding=false \
-p:InvariantGlobalization=true \
-r linux-x64 --self-contained
```
## Usage
```bash
# See usage guide.
$ cubic-bot-telegram-tool --help
# Set bot token in config.
$ cubic-bot-telegram-tool config set --bot-token "1234567:4TT8bAc8GHUspu3ERYn-KGcvsvGB9u_n4ddy"
# Disable all stats.
$ cubic-bot-telegram-tool config set --enable-stats-mod false
# Check config.
$ cubic-bot-telegram-tool config get
# Start bot.
$ cubic-bot-telegram-app
```
## License
- This project is licensed under [GPLv3](LICENSE).
- The icons are from [Material Design Icons](https://materialdesignicons.com/) and are licensed under the [Pictogrammers Free License](https://dev.materialdesignicons.com/license).
- [`System.CommandLine`](https://github.com/dotnet/command-line-api) is licensed under the MIT license.
- `System.Linq.Async` and `System.Interactive.Async` are from [dotnet/reactive](https://github.com/dotnet/reactive). They are licensed under the MIT license.
- [`Telegram.Bot`](https://github.com/TelegramBots/Telegram.Bot) and [`Telegram.Bot.Extensions.Polling`](https://github.com/TelegramBots/Telegram.Bot.Extensions.Polling) are licensed under the MIT license.
ยฉ 2024 database64128