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

imported>=海豚=
创建页面,内容为“// <pre> // 引自User:東東君/js/uploader.js "use strict"; $(() => (async () => { await mw.loader.using(["mediawiki.notify", "mediawiki.api"]); const…”
 
无编辑摘要
 
(未显示1个用户的16个中间版本)
第1行: 第1行:
// <pre>
// <pre>
// 引自[[User:東東君/js/uploader.js]]
"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,
第279行: 第278行:
               style="justify-content:flex-start;"
               style="justify-content:flex-start;"
             >
             >
              <select v-model.trim="form.license" @click="clearHint">
            <option disabled="disabled" value="">选择授权协议(将鼠标放在选项上显示详情)</option>
            <optgroup label="CC协议">
                  <option value="CC Zero" title="作者授权以无著作权方式使用">CC-0</option>
                  <option value="CC BY" title="作者授权以署名方式使用,该授权需兼容3.0协议">CC BY 3.0</option>
                  <option value="CC BY-SA" title="作者授权以署名-相同方式方式使用,该授权需兼容3.0协议">CC BY-SA 3.0</option>
                  <option value="CC BY-NC-SA" title="作者授权以署名-非商业使用-相同协议方式使用,该授权需兼容3.0协议">CC BY-NC-SA 3.0</option>
            </optgroup>
                <optgroup label="公有领域">
                  <option value="PD-Old">作者离世一定年限后流入公有领域</option>
                  <option value="PD-Other">其他原因流入公有领域</option>
                </optgroup>
    <optgroup label="其他">
      <option value="Copyright" title="原作者没有明确的授权声明">原作者保留权利</option>
                  <option value="none:gotoCommons">原作者授权萌百使用</option>
                  <option value="可自由使用" title="作者放弃版权或声明可自由使用">可自由使用</option>
                  <option value="萌娘百科版权所有">萌娘百科版权所有</option>
    </optgroup>
              </select>
             </div>
             </div>


第308行: 第288行:
                 @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>
             </div>
             </div>
           </div>
           </div>
第610行: 第590行:
             "& .categories": {
             "& .categories": {
                 width: "100%",
                 width: "100%",
                 height: 23,
                 height: 25,
                 border: "1px #ccc solid",
                 border: "1px #ccc solid",
                 borderRadius: 5,
                 borderRadius: 5,
第664行: 第644行:
                     source: "",
                     source: "",
                     prefix: "",
                     prefix: "",
                     license: "",
                     license: "Copyright",
                 },
                 },
                 doubleClickTimeoutKey: 0, // 用于双击复制文件名  
                 doubleClickTimeoutKey: 0, // 用于双击复制文件名  
第722行: 第702行:
                     charaName: "",
                     charaName: "",
                     source: "",
                     source: "",
                    license: "Copyright",
                 };
                 };
             },
             },
第807行: 第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));
                 });
                 });
第840行: 第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));
第874行: 第853行:
                 alert([
                 alert([
                     "使用说明",
                     "使用说明",
                     "1. 该插件是一个文件上传工具,免去前往萌娘共享站再上传文件的麻烦。同时支持拖拽上传,批量上传。",
                     "1. 该插件是一个批量上传图片工具,同时支持拖拽上传,批量上传。",
                     "2. 若文件上传时发生异常,请以萌娘共享站的监视列表为准。",
                     "2. 若文件上传时发生异常,请以本站的最近更改为准。",
                     "3. 每个文件拥有独立的信息,但“分类”和“添加前缀”是共享的。在需要同步每个文件的角色名、作者等信息时可以使用“同步文件信息”的功能。",
                     "3. 每个文件拥有独立的信息,但“分类”和“添加前缀”是共享的。在需要同步每个文件的角色名、作者等信息时可以使用“同步文件信息”的功能。",
                     "4. 什么是“差分上传”:在发生文件名已存在的情况时,自动滤掉已存在的文件。通常用于在上一次批量上传中一部分失败后,再次尝试将之前没传上去的文件重新上传。",
                     "4. 差分上传是指在发生文件名已存在的情况时,自动滤掉已存在的文件。通常用于在上一次批量上传中一部分失败后,再次尝试将之前没传上去的文件重新上传。",
                     "5. 双击文件可以自动复制“前缀 + 文件名”。",
                     "5. 双击文件可以自动复制“前缀 + 文件名”。",
                 ].join("\n"));
                 ].join("\n"));
第915行: 第894行:


                     const comment = [];
                     const comment = [];
                    if (item.license) {
                        comment.push(`协议:${item.license}`);
                    }
                     if (item.charaName) {
                     if (item.charaName) {
                         comment.push(`人物:[[分类:${item.charaName}|${item.charaName}]]`);
                         comment.push(`人物:[[分类:${item.charaName}|${item.charaName}]]`);
第932行: 第908行:
                     const pageContent = [
                     const pageContent = [
                         "== 文件说明 ==",
                         "== 文件说明 ==",
source,
                        "基于批量上传工具上传的文件",
                         metaCategories + this.form.categories.map(item => `[[分类:${item}]]`).join(""),
                         metaCategories + this.form.categories.map(item => `[[分类:${item}]]`).join(""),
                        source,
                        "== 授权协议 ==",
                        `{{${item.license}}}`,
                     ].join("\n");
                     ].join("\n");


第993行: 第968行:
                         );
                         );
                     } else {
                     } else {
                        alert("上传的文件超过个三个,执行分段上传,请耐心等待。进入控制台可查看全部日志(按F12后选择Console)。");
                         printLog.warn("上传文件超过3个,执行分段上传");
                         printLog.warn("上传文件超过3个,执行分段上传");