Greasy Fork

来自缓存

Greasy Fork is available in English.

新华号图片一键替换脚本

一键替换新华号编辑器内图片url

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         新华号图片一键替换脚本
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  一键替换新华号编辑器内图片url
// @author       dogcraft
// @match        https://xhh.app.xinhuanet.com/publish*
// @icon         https://www.google.com/s2/favicons?domain=xinhuanet.com
// @grant        unsafeWindow
// ==/UserScript==
var Ndog = 0;
var Fdog = [];
function repldog(ab) {
    let digurl = ab.src;
    doglog(`${ab.src} 开始下载……`);
    unsafeWindow.intervalImageUpload(digurl, (function (t) {
        if (t.status) {
            var e = t.originUrl; console.log(e);
            var ndog = new File([t.blob], new Date().getTime() + ".jpg", { type: "image/jpeg" });
            unsafeWindow.OSSUploader.upload(ndog, {
                type: "image"
            }).then((function (t) {
                if (t.code == 200) {
                    console.log("上传完成,开始替换。");
                    // doglog(`${} 上传完成,开始替换。`);
                    console.log(t.assetsUrl);
                    ab.src = t.assetsUrl;
                    console.log("替换完成。");
                    doglog(`${t.assetsUrl} 替换完成。`);
                } else {
                    console(`${ab.src}替换失败,mgs${t.msg}`);
                    Fdog.push(ab.src);
                }
                Ndog = Ndog - 1;
                if (Ndog == 0) {
                    console.log("全部替换工作完成");
                    doglog("全部替换工作完成");
                    alert("全部替换工作完成");
                    if (Fdog.length>0) {
                        doglog(`剩余${Fdog.length}张图片处理失败,以下图片需要手动替换:`)
                        for (const ffdog of Fdog) {
                            doglogf(ffdog);
                        }
                    }
                   
                } else {
                    console.log(`剩余${Ndog}张图片未处理`);
                    
                }
            }
            ))
        }
    }
    ));
}

function doglog(dogstr) {
    let pdog = document.createElement("p");
    pdog.innerText = `${getdogtime()} | ${dogstr}`;
    var dogsc = document.getElementById("dogsc")
    if (dogsc == null) {
        dogsc = document.createElement('div');
        dogsc.className = "dogscd";
        dogsc.id = "dogsc";
        const dogp = document.getElementsByClassName("edui-container")[0];
        dogp.prepend(dogsc);
        dogsc.style.maxHeight = "150px";
        dogsc.style.overflowY = "scroll";
    }
    dogsc.append(pdog);
    if (dogsc.scrollHeight > dogsc.clientHeight) {
        setTimeout(function () {
            //设置滚动条到最底部
            dogsc.scrollTop = dogsc.scrollHeight;
        }, 500);
    }
}

function doglogf(url) {
    let pdog = document.createElement("p");
    let urldg = document.createElement("a")
    urldg.src = url;
    urldg.innerText = url;
    pdog.append(urldg);
    var dogsc = document.getElementById("dogsc")
    if (dogsc == null) {
        dogsc = document.createElement('div');
        dogsc.className = "dogscd";
        dogsc.id = "dogsc";
        const dogp = document.getElementsByClassName("edui-container")[0];
        dogp.prepend(dogsc);
        dogsc.style.maxHeight = "150px";
        dogsc.style.overflowY = "scroll";
    }
    dogsc.append(pdog);
    if (dogsc.scrollHeight > dogsc.clientHeight) {
        setTimeout(function () {
            //设置滚动条到最底部
            dogsc.scrollTop = dogsc.scrollHeight;
        }, 500);
    }
}

function getdogtime() {
    let dtime = new Date();
    return `${dtime.getHours()}:${dtime.getMinutes()}:${dtime.getSeconds()}`;
}

function cgdog() {
    console.log("llop")
    var epl = document.getElementById("editor");
    var lll = epl.getElementsByTagName('img');

    var LKO = [];
    for (const doh of lll) {
        console.log(doh.src);
        if (doh.src.startsWith("https://xhossc.app.xinhuanet.com/")) {
            console.log("无需替换")
        } else {
            LKO.push(doh)
        }
    }
    Ndog = LKO.length;
    console.log("新华号图片一键替换脚本 - dogcraft");
    doglog("新华号图片一键替换脚本 - dogcraft");
    doglog("开始替换图片……");
    console.log(`共需要替换${LKO.length}张图片`);
    doglog(`共需要替换${LKO.length}张图片`);
    for (const elf of LKO) {
        repldog(elf);
    }

}
(function () {
    //'use strict';
    window.onload = function () {
        const lkdog = document.getElementsByClassName("publish-bottom-btns")[0];
        const apdog = document.createElement("div");
        apdog.setAttribute("data-v-63be6d1c", "");
        apdog.innerText = "替换图片";
        apdog.className = "default-btn";
        apdog.addEventListener("click", cgdog);
        lkdog.prepend(apdog);
    }


})();