Skip to content

DerakkumaDev/limekuma-printer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

97 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

迪拉熊Bot - Derakkuma Bot

酸橙熊熊 - Limekuma

为舞萌DX设计的成绩图片渲染微服务

Static Badge Static Badge CodeFactor Codacy Badge QQ QQ QQ

📖 项目简介

酸橙熊熊(青柠熊熊)是一个高性能图片生成后端服务。主要用于接入舞萌DX的查分器数据,为玩家的游玩成绩(如B50、成绩列表等)生成精美的图片,常作为机器人(如迪拉熊Bot)的后端渲染引擎。

本项目通过纯托管图形库ImageSharp实现了脱离原生环境依赖的图形渲染,并内置了基于XML的灵活布局引擎,能够动态渲染丰富多样的玩家成绩卡片。

📚 项目文档

关于酸橙熊熊的详细介绍、架构设计以及协作者接入指南,请参阅我们的官方文档

✨ 核心特性

  • 🚀 高性能渲染:基于ImageSharp,无需依赖本地系统GDI或libgdiplus,跨平台支持好。
  • 📊 多数据源支持:
  • 🖼️ 丰富的图像生成接口:
    • BestsApi:生成玩家B50成绩图,支持段位、等级、头像细分及动图组合。
    • ListApi:生成玩家特定等级谱面的成绩列表图。
  • 🔧 自定义布局引擎:渲染逻辑与布局分离,基于XML节点定义的灵活布局系统。
  • 📡 流式gRPC通信:基于Protobuf定义,提供流式的图片字节序列返回,降低大图片传输的内存占用。

🛠️ 技术栈

  • 核心框架:.NET
  • 通信协议:gRPC
  • 图像处理:ImageSharp
  • 表达式引擎:NCalc
  • 模板引擎:SmartFormat
  • 配置管理:Hocon

📦 快速开始

1. 环境要求

2. 获取源码

git clone <your-repo-url>/limekuma-printer.git
cd limekuma-printer

3. 安装依赖

dotnet restore

4. 运行项目

dotnet run --project src/Limekuma.csproj

项目启动后,将通过配置中指定的端口提供gRPC服务。

📜 接口定义

API接口均定义在src/Protos/kumabot.proto文件中。

支持的RPC方法

  • BestsApi
    • GetFromLxns / GetFromDivingFish:获取常规B50图片。
    • GetAnimeFromLxns / GetAnimeFromDivingFish:获取包含动画版B50图片。
    • GetFromLxnsWithLevelSeg / GetFromDivingFishWithLevelSeg:获取带等级建议的B50图片。
  • ListApi
    • GetFromLxns / GetFromDivingFish:获取指定等级或页码的玩家成绩列表图片。

📄 开源协议

本项目基于**GNU Affero General Public License v3.0(AGPL-3.0)**协议开源。详细信息请参阅LICENSE文件。

🐛 问题反馈

如果您遇到任何问题或有建议,请通过以下方式联系我们:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Contributors

Languages