1212// @description:ja 画像を強力に閲覧できるツール。ポップアップ表示、拡大・縮小、回転、一括保存などの機能を自動で実行できます
1313// @description:pt-BR Poderosa ferramenta de visualização de imagens on-line, que pode pop-up/dimensionar/girar/salvar em lote imagens automaticamente
1414// @description:ru Мощный онлайн-инструмент для просмотра изображений, который может автоматически отображать/масштабировать/вращать/пакетно сохранять изображения
15- // @version 2025.4.21 .1
15+ // @version 2025.5.4 .1
1616// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAV1BMVEUAAAD////29vbKysoqKioiIiKysrKhoaGTk5N9fX3z8/Pv7+/r6+vk5OTb29vOzs6Ojo5UVFQzMzMZGRkREREMDAy4uLisrKylpaV4eHhkZGRPT08/Pz/IfxjQAAAAgklEQVQoz53RRw7DIBBAUb5pxr2m3/+ckfDImwyJlL9DDzQgDIUMRu1vWOxTBdeM+onApENF0qHjpkOk2VTwLVEF40Kbfj1wK8AVu2pQA1aBBYDHJ1wy9Cf4cXD5chzNAvsAnc8TjoLAhIzsBao9w1rlVTIvkOYMd9nm6xPi168t9AYkbANdajpjcwAAAABJRU5ErkJggg==
1717// @namespace https://github.com/hoothin/UserScripts
1818// @homepage https://github.com/hoothin/UserScripts/tree/master/Picviewer%20CE%2B
4646// @grant GM.notification
4747// @grant unsafeWindow
4848// @require https://update.greasyfork.org/scripts/6158/23710/GM_config%20CN.js
49- // @require https://update.greasyfork.org/scripts/438080/1570604 /pvcep_rules.js
49+ // @require https://update.greasyfork.org/scripts/438080/1582659 /pvcep_rules.js
5050// @require https://update.greasyfork.org/scripts/440698/1427239/pvcep_lang.js
5151// @downloadURL https://greasyfork.org/scripts/24204-picviewer-ce/code/Picviewer%20CE+.user.js
5252// @updateURL https://greasyfork.org/scripts/24204-picviewer-ce/code/Picviewer%20CE+.meta.js
@@ -24182,6 +24182,7 @@ ImgOps | https://imgops.com/#b#`;
2418224182 if(!src)return;
2418324183
2418424184 var ret = {
24185+ all: matchedRule.all,
2418524186 src: src, // 得到的src
2418624187 srcs: srcs, // 多个 src,失败了会尝试下一个
2418724188 type: type, // 通过哪种方式得到的
@@ -24498,6 +24499,7 @@ ImgOps | https://imgops.com/#b#`;
2449824499 getImage: function(img, a, p, target) {
2449924500 var newSrc, rule;
2450024501 var base64Img = /^data:/i.test(img.src);
24502+ this.all = null;
2450124503 for (var i = 0; i < this.rules.length; i++) {
2450224504 rule = this.rules[i];
2450324505 if (rule.src && !toRE(rule.src).test(img.src)) continue;
@@ -24536,8 +24538,12 @@ ImgOps | https://imgops.com/#b#`;
2453624538 }
2453724539 if (rule.getImage) {
2453824540 newSrc = rule.getImage.call(target || img, a, p, rule);
24541+ if (newSrc && newSrc.all) {
24542+ this.all = newSrc.all;
24543+ newSrc = this.all[0];
24544+ }
2453924545 } else newSrc = null;
24540- if (!base64Img && rule.r && img.src) {
24546+ if (!base64Img && rule.r && img.src && !Array.isArray(newSrc) ) {
2454124547 if (!newSrc) newSrc = img.currentSrc || img.src;
2454224548 newSrc = this.replaceByRule(newSrc, rule);
2454324549 }
@@ -24913,6 +24919,11 @@ ImgOps | https://imgops.com/#b#`;
2491324919 throwErrorInfo(ex);
2491424920 }
2491524921 if (nsrc) {
24922+ let all;
24923+ if (nsrc && nsrc.all) {
24924+ all = nsrc.all;
24925+ nsrc = all[0];
24926+ }
2491624927 let src = nsrc, imgSrc = prefs.floatBar.listenBg && hasBg(target) ? targetBg : nsrc;
2491724928 if (Array.isArray(nsrc) && nsrc.length == 2) {
2491824929 imgSrc = nsrc[0];
@@ -24939,6 +24950,7 @@ ImgOps | https://imgops.com/#b#`;
2493924950 }
2494024951 let noActual = src === imgSrc;
2494124952 result = {
24953+ all: all || matchedRule.all,
2494224954 src: src,
2494324955 type: matchedRule.xhrLink && noActual ? "link" : "rule",
2494424956 imgSrc: imgSrc,
@@ -25171,6 +25183,7 @@ ImgOps | https://imgops.com/#b#`;
2517125183 description = attr ? node.getAttribute(attr) : (node.getAttribute('title') || node.textContent);
2517225184 }
2517325185 }
25186+ result.all = matchedRule.all;
2517425187 result.src = src;
2517525188 result.type = type;
2517625189 result.noActual = false;
0 commit comments