No description
|
||
---|---|---|
bot | ||
docs | ||
migrations | ||
web | ||
.gitignore | ||
dev_runner.py | ||
example_config.ini | ||
LICENSE | ||
readme.md | ||
requirements.txt | ||
setup_db.py | ||
startup.sh |
Kemoverse
A gacha-style bot for the Fediverse built with Python. Users can roll for characters, trade, duel, and perhaps engage with popularity-based mechanics. Currently designed for use with Misskey. Name comes from Kemonomimi and Fediverse.
📝 Docs
🤌 Install instructions for those in a rush
🔧 Features
✅ Implemented
- 🎲 Character roll system
- 🧠 Core database structure for cards
- 📦 Basic support for storing pulls per player
- ⏱️ Time-based limitations on rolls
- ⚠️ Explicit account creation/deletion
🧩 In Progress
- 📝 Whitelist system to limit access
🧠 Roadmap
See our v2.0 board for more details
🛒 Gameplay & Collection
- 🔁 Trading system between players
- ⭐ Favorite characters (pin them or set profiles)
- 📢 Public post announcements for rare card pulls
- 📊 Stats for cards
- 🎮 Games to play
- ⚔️ Dueling
- 🧮 Leaderboards
- Most traded cards
- Most owned cards
- Most voted cards
- Most popular cards (via usage-based popularity metrics)
- Users with the rarest cards
🎨 Card Aesthetics
- 🖼️ Simple card template for character rendering
- 🌐 Web app to generate cards from images
🌍 Fediverse Support
✅ Anyone from the fediverse can play, but the server only works using a Misskey instance. Want to rewrite the program in Elixir for Pleroma? Let us know!
🗃️ Tech Stack
- Python (3.12+)
- SQLite
- Fediverse API integration (via Misskey endpoints)
- Flask
- Modular DB design for extensibility
💡 Philosophy
The bot is meant to feel light, fun, and competitive. Mixing social, gacha and duel tactics.
flowchart TD
subgraph Player Interaction
A1[Misskey bot]
A2[Web]
end
subgraph Misskey
B1[Misskey instance]
end
subgraph Bot
C1[Bot core in Python]
C2[Notification parser]
C3[Gacha roll logic]
C4[Database interface]
C5[Misskey API poster]
end
subgraph Website
D1[Flask backend]
D2[User account system]
D3[Image gallery]
end
subgraph Backend
E1[Shared database]
E2[Virtual environment]
E3[Debian Linux server]
end
A1 <-->|Send or receive mention| B1
B1 -->|Send mention| C2
C2 -->|Command and information| C3
C3 <-->|Ask for command information and confirmed roll setting| C4
C4 <--> E1
C3 -->|Command result and info| C5
C5 -->|Resulting Mention| B1
A2 --> D1
D1 --> D2
D1 --> D3
D2 --> E1
D3 --> E1
C1 --> E2
D1 --> E2
E1 --> E3
B1 --> E3