diff --git a/project/短视频脚本创作/V1.0/mcn-work-shop/dsh-data.js b/project/短视频脚本创作/V1.0/mcn-work-shop/dsh-data.js index 9f690dd..fb1aec1 100644 --- a/project/短视频脚本创作/V1.0/mcn-work-shop/dsh-data.js +++ b/project/短视频脚本创作/V1.0/mcn-work-shop/dsh-data.js @@ -1,5 +1,5 @@ -// MCN工作台 - 数据访问层(只读复用 dsh 环境数据) -// 数据源:工作台目录 mcn-plugin.db(dsh 库副本,node:sqlite 只读)+ D:\dshworkspace\抖音榜单\*.json +// MCN工作台 - 数据访问层(只读复用业务数据目录) +// 数据源:工作台目录 mcn-plugin.db(dsh 库副本,node:sqlite 只读)+ 三方数据目录 抖音榜单/*.json // 与 dsh 原库(~/.dsh/mcn-plugin.db)隔离:两边各访问各的,互不影响 // 页面逻辑参照 dsh-plugin-mcn 重新开发,仅复用数据库 schema 与榜单文件格式 'use strict'; @@ -7,11 +7,28 @@ const { DatabaseSync } = require('node:sqlite'); const path = require('node:path'); const fs = require('node:fs'); +const os = require('node:os'); // 工作台自有数据库副本(与 dsh 原库隔离) const DSH_DB = path.join(__dirname, 'mcn-plugin.db'); -// 周榜目录:默认 dsh 工作区;可用环境变量 MCN_RANKING_DIR 覆盖 -const RANKING_DIR = process.env.MCN_RANKING_DIR || 'D:\\dshworkspace\\抖音榜单'; + +// 榜单目录解析(09-03 定稿:跟随 mcn-data-insight 榜单落盘规范的数据源分层) +// 优先级:① 环境变量 MCN_RANKING_DIR 显式覆盖 → ② dsh 部署(技能在 ~/.dsh 下)→ D:\dshworkspace\抖音榜单 +// → ③ 开发机/用户环境(①③):桌面 MCNSkill项目\三方数据\红狐数据\抖音榜单(运行时解析真实桌面,兼容 OneDrive 重定向) +function resolveRankingDir() { + if (process.env.MCN_RANKING_DIR) return process.env.MCN_RANKING_DIR; + const isDshDeploy = __dirname.includes('.dsh'); + if (isDshDeploy) return 'D:\\dshworkspace\\抖音榜单'; + const home = os.homedir(); + const rel = path.join('MCNSkill项目', '三方数据', '红狐数据', '抖音榜单'); + const candidates = [ + path.join(home, 'Desktop', rel), + path.join(home, 'OneDrive', 'Desktop', rel), + path.join(home, 'OneDrive', '桌面', rel), + ]; + return candidates.find((p) => fs.existsSync(p)) || candidates[0]; +} +const RANKING_DIR = resolveRankingDir(); let _db = null; let _dbTried = false;