MediaWiki:Common.js/uploader.js:修订间差异

imported>=海豚=
无编辑摘要
无编辑摘要
 
(未显示1个用户的5个中间版本)
第2行: 第2行:
"use strict";
"use strict";
$(() => (async () => {
$(() => (async () => {
     await mw.loader.using(["mediawiki.notify", "mediawiki.api"]);
     await mw.loader.using(["mediawiki.api"]);
     const commonsApi = new mw.Api({
     const commonsApi = new mw.Api({
         timeout: 7000,
         timeout: 7000,
第287行: 第287行:
                 title="在发生文件名已存在的情况时,自动滤掉已存在的文件。通常用于在上一次批量上传中一部分失败后,再次尝试将之前没传上去的文件重新上传"  
                 title="在发生文件名已存在的情况时,自动滤掉已存在的文件。通常用于在上一次批量上传中一部分失败后,再次尝试将之前没传上去的文件重新上传"  
                 @click="submit(true)"
                 @click="submit(true)"
               >拆分上传</button>
               >差分上传</button>
               <button title="将当前文件除文件名的信息同步到全部文件" @click="asyncCurrentFileInfo">同步已输入信息至全部</button>
               <button title="将当前文件除文件名的信息同步到全部文件" @click="asyncCurrentFileInfo">同步已输入信息至全部</button>
               <button @click="showManual">-使用说明-</button>
               <button @click="showManual">-使用说明-</button>
第786行: 第786行:


                     if (!this.allowedFileTypes.includes(file.name.replace(/.+\.(.+?)$/, "$1"))) { return alert(`【${file.name}】不支持上传这种格式的文件!`); }
                     if (!this.allowedFileTypes.includes(file.name.replace(/.+\.(.+?)$/, "$1"))) { return alert(`【${file.name}】不支持上传这种格式的文件!`); }
                     if (file.size / 1024 / 1024 > 20) { return alert(`【${file.name}】的大小超过20m,无法上传!`); }
                     if (file.size / 1024 / 1024 > 8) { return alert(`【${file.name}】的大小超过8m,无法上传!`); }
                     this.files.push(this.createFileItem(file));
                     this.files.push(this.createFileItem(file));
                 });
                 });
第819行: 第819行:


             addSourceUrlFile() {
             addSourceUrlFile() {
                 const url = (prompt("请输入文件地址:") || "").trim();
                 const url = (prompt("请输入文件地址:(萌娘百科、哔哩哔哩等网站图片加入了防盗链,你必须把图片下载下来后使用本地上传)") || "").trim();
                 if (!url) { return; }
                 if (!url) { return; }
                 this.files.push(this.createFileItem(url));
                 this.files.push(this.createFileItem(url));
第856行: 第856行:
                     "2. 若文件上传时发生异常,请以本站的最近更改为准。",
                     "2. 若文件上传时发生异常,请以本站的最近更改为准。",
                     "3. 每个文件拥有独立的信息,但“分类”和“添加前缀”是共享的。在需要同步每个文件的角色名、作者等信息时可以使用“同步文件信息”的功能。",
                     "3. 每个文件拥有独立的信息,但“分类”和“添加前缀”是共享的。在需要同步每个文件的角色名、作者等信息时可以使用“同步文件信息”的功能。",
                     "4. 拆分上传是指在发生文件名已存在的情况时,自动滤掉已存在的文件。通常用于在上一次批量上传中一部分失败后,再次尝试将之前没传上去的文件重新上传。",
                     "4. 差分上传是指在发生文件名已存在的情况时,自动滤掉已存在的文件。通常用于在上一次批量上传中一部分失败后,再次尝试将之前没传上去的文件重新上传。",
                     "5. 双击文件可以自动复制“前缀 + 文件名”。",
                     "5. 双击文件可以自动复制“前缀 + 文件名”。",
                 ].join("\n"));
                 ].join("\n"));
第907行: 第907行:
                     }
                     }
                     const pageContent = [
                     const pageContent = [
                        "== 文件说明 ==",
source,
                         "基于批量上传工具上传的文件",
                         "基于批量上传工具上传的文件",
source,
                        "== 文件说明 ==",
                         metaCategories + this.form.categories.map(item => `[[分类:${item}]]`).join(""),
                         metaCategories + this.form.categories.map(item => `[[分类:${item}]]`).join(""),
                     ].join("\n");
                     ].join("\n");
第921行: 第921行:
                 });
                 });


                 mw.notify(`开始${diffMode ? "拆分" : ""}上传,共${postData.length}个文件...`);
                 mw.notify(`开始${diffMode ? "差分" : ""}上传,共${postData.length}个文件...`);
                 console.log(`---- Moegirl:fileUploader 开始${diffMode ? "拆分" : ""}上传,共${postData.length}个文件 ----`);
                 console.log(`---- Moegirl:fileUploader 开始${diffMode ? "差分" : ""}上传,共${postData.length}个文件 ----`);
                 this.status = 2;
                 this.status = 2;


第944行: 第944行:
                     if (diffMode) { postData = postData.filter(item => !checkedResult[item.fileName.replace(/^./, s => s.toUpperCase())]); }
                     if (diffMode) { postData = postData.filter(item => !checkedResult[item.fileName.replace(/^./, s => s.toUpperCase())]); }
                     if (diffMode && postData.length === 0) {
                     if (diffMode && postData.length === 0) {
                         alert("拆分模式下没有可以上传的文件");
                         alert("差分模式下没有可以上传的文件");
                         this.status = 1;
                         this.status = 1;
                         return;
                         return;
                     }
                     }


                     printLog.warn(`拆分上传共需要上传${postData.length}个文件`);
                     printLog.warn(`差分上传共需要上传${postData.length}个文件`);


                     let uploadResults = [];
                     let uploadResults = [];
第968行: 第968行:
                         );
                         );
                     } else {
                     } else {
                        alert("上传的文件个数过多,开始执行分段上传,请耐心等待。");
                         printLog.warn("上传文件超过3个,执行分段上传");
                         printLog.warn("上传文件超过3个,执行分段上传");