koishi-plugin-oni-sync-bot 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +18 -3
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -47,9 +47,15 @@ var import_mwn = require("mwn");
|
|
|
47
47
|
var import_koishi = require("koishi");
|
|
48
48
|
var import_pinyin_pro = require("pinyin-pro");
|
|
49
49
|
var CROSS_SITE_LINK_REGEX = /\[\[(en|ru|pt-br):[^\]]*\]\]/g;
|
|
50
|
+
var DEV_TEXT_REGEX = /(?<!\w)Dev:/g;
|
|
51
|
+
var MODULE_NAMESPACE_PREFIX = "Module:Dev/";
|
|
50
52
|
function clean_page_text(text) {
|
|
51
53
|
const textWithoutCrossLink = text.replace(CROSS_SITE_LINK_REGEX, "");
|
|
52
|
-
|
|
54
|
+
const textWithReplacedDev = textWithoutCrossLink.replace(
|
|
55
|
+
DEV_TEXT_REGEX,
|
|
56
|
+
MODULE_NAMESPACE_PREFIX
|
|
57
|
+
);
|
|
58
|
+
return textWithReplacedDev;
|
|
53
59
|
}
|
|
54
60
|
__name(clean_page_text, "clean_page_text");
|
|
55
61
|
async function getAndProcessPageContent(site, pageTitle) {
|
|
@@ -601,16 +607,24 @@ async function syncSingleModule(oldSite, newSite, moduleTitle, user) {
|
|
|
601
607
|
}
|
|
602
608
|
try {
|
|
603
609
|
logger.info(`[SyncModule] 🔍 开始获取模块 ${moduleTitle} 的内容`);
|
|
610
|
+
let targetTitle = moduleTitle;
|
|
611
|
+
if (/^Dev:/i.test(moduleTitle)) {
|
|
612
|
+
const subPageName = moduleTitle.replace(/^Dev:/i, "");
|
|
613
|
+
targetTitle = `Module:Dev/${subPageName}`;
|
|
614
|
+
logger.info(
|
|
615
|
+
`[SyncModule] 🔀 检测到 Dev 命名空间,路径映射: ${moduleTitle} -> ${targetTitle}`
|
|
616
|
+
);
|
|
617
|
+
}
|
|
604
618
|
const [oldContent, newContent] = await Promise.all([
|
|
605
619
|
getAndProcessPageContent(oldSite, moduleTitle),
|
|
606
|
-
getAndProcessPageContent(newSite,
|
|
620
|
+
getAndProcessPageContent(newSite, targetTitle)
|
|
607
621
|
]);
|
|
608
622
|
if (oldContent === newContent) {
|
|
609
623
|
logger.info(`[SyncModule] 🟡 模块 ${moduleTitle} 内容未改变,跳过`);
|
|
610
624
|
return { success: true, reason: "no_change" };
|
|
611
625
|
}
|
|
612
626
|
await newSite.save(
|
|
613
|
-
|
|
627
|
+
targetTitle,
|
|
614
628
|
oldContent,
|
|
615
629
|
`由:${user || "同步坤器人手动"} 触发更改,此时同步`
|
|
616
630
|
);
|
|
@@ -651,6 +665,7 @@ async function syncModules(oldSite, newSite) {
|
|
|
651
665
|
try {
|
|
652
666
|
const oldModuleList = await getAllModules(oldSite);
|
|
653
667
|
const total = oldModuleList.length;
|
|
668
|
+
console.log(oldModuleList);
|
|
654
669
|
if (total === 0) {
|
|
655
670
|
logger.info(`[SyncAllModules] 📭 原站点无模块可同步,结束`);
|
|
656
671
|
return;
|