其他
貢獻指南
歡迎參與 karin-plugin-kkk 嘅開發與貢獻
貢獻指南
感謝你對 karin-plugin-kkk 感興趣!我哋需要你嘅幫助來令呢個項目變得更好。
無論係修復 Bug、添加新功能,定係改進文檔,我哋都非常歡迎。
準備工作
喺開始之前,請確保你嘅開發環境滿足以下要求:
項目結構
本項目採用 Monorepo 結構,主要包含以下部分:
packages/core: 核心插件代碼 (karin-plugin-kkk),包含主要業務邏輯。packages/template: React SSR 渲染器,生成 HTML 文件。packages/amagi: 接口庫 (Git Submodule),處理各平台嘅 API 請求與簽名。packages/docs: 文檔站點,基於 Next.js 同 Fumadocs。
packages/amagi 係一個 Git 子模塊。如果你需要修改 API 相關嘅邏輯(如簽名算法),請唔好直接修改該目錄。你需要前往 amagi 倉庫 提交 Pull Request。
架構說明
插件在 Karin 中的位置
karin-plugin-kkk 係 Karin 框架嘅一個功能插件,遵循 Karin 嘅插件規範開發。
消息處理流程
當用戶在群傾偈中發送包含平台連結嘅消息時,插件嘅處理流程如下:
核心模塊說明
Apps 命令層 - 負責註冊 Karin 命令,監聽消息並分發到對應嘅平台處理器。
src/apps/
├── tools.ts # 視頻解析命令(抖音/B站/快手/小紅書)
├── push.ts # 動態推送任務
├── qrlogin.ts # 掃碼登錄功能
├── admin.ts # 管理員命令
├── help.ts # 幫助信息
└── update.ts # 插件更新Platform 平台層 - 每個平台獨立封裝,包含連結解析、數據獲取、評論處理等。
src/platform/
├── douyin/ # 抖音
├── bilibili/ # B站
├── kuaishou/ # 快手
└── xiaohongshu/ # 小紅書Module 工具層 - 提供配置管理、數據庫操作、API 服務、網絡請求等通用功能。
src/module/
├── config/ # 配置管理
├── db/ # 數據庫操作
├── server/ # API 服務
└── utils/ # 工具函數數據流向
開發流程
克隆倉庫
將你 Fork 後嘅倉庫克隆到本地。由於項目包含子模塊,克隆時需要初始化子模塊:
# 替換為你嘅 GitHub 用戶名
git clone --recursive https://github.com/你嘅用戶名/karin-plugin-kkk.git
# 或者如果你已經克隆咗倉庫但冇子模塊
git submodule update --init --recursive啟動開發環境
根據你要修改嘅內容,啟動相應嘅開發環境:
-
開發插件核心 (
packages/core):pnpm watch -
開發模板 (
packages/template):pnpm template -
預覽文檔 (
packages/docs):pnpm docs
提交代碼
我哋遵循 Conventional Commits 規範。
提交信息嘅格式如下:
<type>(<scope>): <subject>例如:
feat(core): 支持解析新嘅分享連結fix(template): 修復動態卡片樣式錯亂docs: 更新貢獻指南
提交 Pull Request
- 推送到你嘅 Fork 倉庫:
git push origin feature/amazing-feature - 在 GitHub 上向原倉庫提交 Pull Request。
常見問題
如何更新子模塊?
如果你發現 packages/amagi 落後於上游,可以使用以下命令更新:
git submodule update --remote遇到 TypeScript 類型錯誤?
嘗試重新構建整個項目或重新安裝依賴:
pnpm install
pnpm buildLast updated on