feat: 默认脚本版本号管理+每次上传递增

This commit is contained in:
mediabot-pt
2026-07-05 23:55:51 +08:00
parent b7adbfd18a
commit 4c751b6586
2 changed files with 19 additions and 2 deletions

View File

@@ -70,7 +70,8 @@ public class ScriptController {
public ApiResponse<Map<String, String>> getDefaultScript(@PathVariable String siteType, HttpServletRequest request) {
checkAdmin(request);
String script = GroovyScriptEngine.loadDefaultByType(siteType);
return ApiResponse.success(Map.of("siteType", siteType, "script", script != null ? script : ""));
int version = GroovyScriptEngine.getDefaultVersion(siteType);
return ApiResponse.success(Map.of("siteType", siteType, "script", script != null ? script : "", "version", String.valueOf(version)));
}
/** 保存站点类型默认脚本到本地 */

View File

@@ -70,7 +70,7 @@ public class GroovyScriptEngine {
}
/**
* 上传默认脚本到七牛云+本地缓存
* 上传默认脚本到七牛云+本地缓存,自动递增版本号
*/
public static void saveDefaultScript(String siteType, String script) {
if (siteType == null || script == null) return;
@@ -78,10 +78,26 @@ public class GroovyScriptEngine {
DEFAULT_SCRIPTS_CACHE.put(key, script);
if (storageService != null) {
storageService.store(DEFAULT_SCRIPTS_PATH + key + ".groovy", script);
// 版本号递增
int ver = getDefaultVersion(key) + 1;
storageService.store(DEFAULT_SCRIPTS_PATH + key + ".version", String.valueOf(ver));
}
log.info("Default script uploaded: default-{}.groovy", key);
}
/** 获取默认脚本版本号 */
public static int getDefaultVersion(String siteType) {
if (siteType == null) return 0;
String key = siteType.toLowerCase();
if (storageService != null) {
try {
String v = storageService.read(DEFAULT_SCRIPTS_PATH + key + ".version");
if (v != null) return Integer.parseInt(v.trim());
} catch (Exception ignored) {}
}
return 0;
}
/**
* 加载站点类型默认脚本(优先七牛云/本地缓存,回退到 classpath)
*/