# 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.  ## ๐ง Features ### โ Implemented - ๐ฒ Character roll system - ๐ด Cards stats system - ๐ง Core database structure for characters and stats - ๐ฆ Basic support for storing pulls per user ### ๐งฉ In Progress - ๐ Whitelist system to limit access - โฑ๏ธ Time-based limitations on rolls - โ๏ธ Dueling system ## ๐ง Planned Features (Long Term) ### ๐ Gameplay & Collection - ๐ **Trading system** between users - โญ **Favorite characters** (pin them or set profiles) - ๐ข **Public post announcements** for rare card pulls - ๐งฎ **Leaderboards** - Most traded Characters - Most owned Characters - Most voted Characters - Most popular Characters (via usage-based popularity metrics) - Users with the rarest Characters ### ๐จ 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.11+) - 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. ## ๐งช Getting Started (coming soon) Instructions on installing dependencies, initializing the database, and running the bot locally will go here. ```mermaid 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 ```