feat(skills): zip格式按照原样结构解析调整完成
This commit is contained in:
parent
713c28a534
commit
d527e1ad0f
|
|
@ -15,6 +15,7 @@ import java.nio.charset.StandardCharsets;
|
|||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.zip.ZipEntry;
|
||||
|
|
@ -268,8 +269,9 @@ public class SkillZipParser {
|
|||
Enumeration<? extends ZipEntry> entries = zipFile.entries();
|
||||
while (entries.hasMoreElements()) {
|
||||
ZipEntry entry = entries.nextElement();
|
||||
System.out.println(entry.getName());
|
||||
// 检查是否是根目录下的md文件
|
||||
if (!entry.isDirectory() && entry.getName().endsWith(".md") && !entry.getName().contains("/")) {
|
||||
if (!entry.isDirectory() && (entry.getName().toLowerCase().endsWith("skill.md") || entry.getName().toLowerCase().endsWith("readme.md"))) {
|
||||
try (InputStream inputStream = zipFile.getInputStream(entry);
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) {
|
||||
StringBuilder content = new StringBuilder();
|
||||
|
|
@ -634,36 +636,8 @@ public class SkillZipParser {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* // 确保包含skills.md文件
|
||||
boolean hasSkillsMd = false;
|
||||
for (Map<String, Object> child : children) {
|
||||
if ("skills.md".equals(child.get("name")) && "file".equals(child.get("type"))) {
|
||||
hasSkillsMd = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasSkillsMd) {
|
||||
Map<String, Object> skillsMdNode = createSkillsMdNode(skillName, skillDescription, skillTags);
|
||||
children.add(skillsMdNode);
|
||||
}
|
||||
|
||||
// 确保包含scripts目录
|
||||
boolean hasScriptsDir = false;
|
||||
for (Map<String, Object> child : children) {
|
||||
if ("scripts".equals(child.get("name")) && "directory".equals(child.get("type"))) {
|
||||
hasSkillsMd = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasScriptsDir) {
|
||||
Map<String, Object> scriptsDirNode = createScriptsDirNode();
|
||||
children.add(scriptsDirNode);
|
||||
}*/
|
||||
|
||||
structure.put("children", children);
|
||||
skillStructure.put("structure", structure);
|
||||
|
||||
return skillStructure;
|
||||
}
|
||||
|
||||
|
|
@ -816,36 +790,8 @@ public class SkillZipParser {
|
|||
addFileToTree(children, directoryMap, pathParts, entry, zipFile);
|
||||
}
|
||||
}
|
||||
|
||||
// 确保包含skills.md文件
|
||||
boolean hasSkillsMd = false;
|
||||
for (Map<String, Object> child : children) {
|
||||
if ("skills.md".equals(child.get("name")) && "file".equals(child.get("type"))) {
|
||||
hasSkillsMd = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasSkillsMd) {
|
||||
Map<String, Object> skillsMdNode = createSkillsMdNode(skillName, skillDescription, skillTags);
|
||||
children.add(skillsMdNode);
|
||||
}
|
||||
|
||||
// 确保包含scripts目录
|
||||
boolean hasScriptsDir = false;
|
||||
for (Map<String, Object> child : children) {
|
||||
if ("scripts".equals(child.get("name")) && "directory".equals(child.get("type"))) {
|
||||
hasScriptsDir = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!hasScriptsDir) {
|
||||
Map<String, Object> scriptsDirNode = createScriptsDirNode();
|
||||
children.add(scriptsDirNode);
|
||||
}
|
||||
|
||||
structure.put("children", children);
|
||||
skillStructure.put("structure", structure);
|
||||
|
||||
return skillStructure;
|
||||
}
|
||||
|
||||
|
|
@ -916,7 +862,7 @@ public class SkillZipParser {
|
|||
// 找到文件所在的目录节点
|
||||
List<Map<String, Object>> targetChildren = children;
|
||||
if (directoryPath.length() > 0) {
|
||||
Map<String, Object> directoryNode = directoryMap.get(directoryPath.toString());
|
||||
Map<String, Object> directoryNode = directoryMap.get(directoryPath.toString().substring(1));
|
||||
if (directoryNode != null) {
|
||||
targetChildren = (List<Map<String, Object>>) directoryNode.get("children");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue