mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-04-29 06:04:29 +08:00
feat(skills): add baoyu-skills preset repo and auto-supplement missing defaults
- Add JimLiu/baoyu-skills to default skill repositories - Change init_default_skill_repos() from "first-run only" to "supplement missing" - New preset repos will now auto-appear for existing users on upgrade
This commit is contained in:
@@ -203,24 +203,32 @@ impl Database {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// 初始化默认的 Skill 仓库(首次启动时调用)
|
/// 初始化默认的 Skill 仓库(启动时调用,补充缺失的默认仓库)
|
||||||
pub fn init_default_skill_repos(&self) -> Result<usize, AppError> {
|
pub fn init_default_skill_repos(&self) -> Result<usize, AppError> {
|
||||||
// 检查是否已有仓库
|
// 获取已有仓库列表
|
||||||
let existing = self.get_skill_repos()?;
|
let existing = self.get_skill_repos()?;
|
||||||
if !existing.is_empty() {
|
let existing_keys: std::collections::HashSet<(String, String)> = existing
|
||||||
return Ok(0);
|
.iter()
|
||||||
}
|
.map(|r| (r.owner.clone(), r.name.clone()))
|
||||||
|
.collect();
|
||||||
|
|
||||||
// 获取默认仓库列表
|
// 获取默认仓库列表
|
||||||
let default_store = crate::services::skill::SkillStore::default();
|
let default_store = crate::services::skill::SkillStore::default();
|
||||||
let mut count = 0;
|
let mut count = 0;
|
||||||
|
|
||||||
|
// 仅插入缺失的默认仓库
|
||||||
for repo in &default_store.repos {
|
for repo in &default_store.repos {
|
||||||
self.save_skill_repo(repo)?;
|
let key = (repo.owner.clone(), repo.name.clone());
|
||||||
count += 1;
|
if !existing_keys.contains(&key) {
|
||||||
|
self.save_skill_repo(repo)?;
|
||||||
|
count += 1;
|
||||||
|
log::info!("补充默认 Skill 仓库: {}/{}", repo.owner, repo.name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log::info!("初始化默认 Skill 仓库完成,共 {count} 个");
|
if count > 0 {
|
||||||
|
log::info!("补充默认 Skill 仓库完成,新增 {count} 个");
|
||||||
|
}
|
||||||
Ok(count)
|
Ok(count)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,6 +128,12 @@ impl Default for SkillStore {
|
|||||||
branch: "master".to_string(),
|
branch: "master".to_string(),
|
||||||
enabled: true,
|
enabled: true,
|
||||||
},
|
},
|
||||||
|
SkillRepo {
|
||||||
|
owner: "JimLiu".to_string(),
|
||||||
|
name: "baoyu-skills".to_string(),
|
||||||
|
branch: "main".to_string(),
|
||||||
|
enabled: true,
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user