Skip to content
This repository was archived by the owner on May 29, 2022. It is now read-only.

Commit 62bdf41

Browse files
committed
暫定
※中画像クリック関連は動作しない
1 parent 4d21c5d commit 62bdf41

File tree

1 file changed

+38
-32
lines changed

1 file changed

+38
-32
lines changed

source/chrome/content/sites/ankpixiv.js

+38-32
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ try {
1414
self.SERVICE_ID = 'PXV';
1515
self.SITE_NAME = 'Pixiv';
1616

17-
self.ID_FANTASY_DISPLAY = 'ankpixiv-fantasy-display',
17+
self.ID_FANTASY_DISPLAY = 'ankpixiv-fantasy-display';
18+
19+
var _images = null;
20+
var _imagesOriginal = null;
1821

1922
/********************************************************************************
2023
* プロパティ
@@ -88,7 +91,7 @@ try {
8891
};
8992
let (e = illust.mediumImage) {
9093
if (e)
91-
return e.parentNode;
94+
return e.parentNode.parentNode;
9295
};
9396
},
9497

@@ -171,9 +174,9 @@ try {
171174

172175
get mediumImage () {
173176
return (
174-
query('.works_display > a > img')
177+
query('.works_display > a > div > img')
175178
||
176-
query('.works_display > * > a > img')
179+
query('.works_display > * > a > div > img')
177180
||
178181
query('.works_display canvas')
179182
);
@@ -333,6 +336,19 @@ try {
333336
self.info.path._getImage(AnkBase.Prefs.get('downloadOriginalSize', false)), // }}}
334337

335338
_getImage: function (mangaOriginalSizeCheck) {
339+
if (!mangaOriginalSizeCheck) {
340+
if (!_images)
341+
_images = self.info.path._getImageMain(mangaOriginalSizeCheck);
342+
return _images;
343+
}
344+
else {
345+
if (!_imagesOriginal)
346+
_imagesOriginal = self.info.path._getImageMain(mangaOriginalSizeCheck);
347+
return _imagesOriginal;
348+
}
349+
},
350+
351+
_getImageMain: function (mangaOriginalSizeCheck) {
336352
if (self.in.ugoira) {
337353
// うごイラ
338354
return {
@@ -359,12 +375,26 @@ try {
359375
// TODO pixivの構成変更で見開き表示が正しく表示されなくなったので、pixivが直してくれるまで見開き対応は無効化
360376
let im = [];
361377
let fp = [];
362-
AnkUtils.A(doc.querySelectorAll('.manga > .item-container > img')) .
363-
some(function (v) {
378+
if (!mangaOriginalSizeCheck) {
379+
AnkUtils.A(doc.querySelectorAll('.manga > .item-container > img')) .
380+
some(function (v) {
381+
if (im.length > MAX)
382+
return true;
383+
im.push(v.getAttribute('data-src'));
384+
});
385+
}
386+
else {
387+
AnkUtils.A(doc.querySelectorAll('.manga > .item-container > a')) .
388+
some(function (a) {
364389
if (im.length > MAX)
365390
return true;
366-
im.push(v.getAttribute('data-src'));
391+
let href = indexPage;
392+
href = href.replace(/^(https?:\/\/.+?)(?:\/.*)$/,"$1")+a.href;
393+
AnkUtils.dump(href);
394+
let doc = AnkUtils.createHTMLDocument(AnkUtils.httpGET(href, indexPage));
395+
im.push(doc.querySelector('img').src);
367396
});
397+
}
368398

369399
if (im.length > 0) {
370400
if (fp.length > 0 && fp[fp.length - 1] < fp.length) {
@@ -376,30 +406,6 @@ try {
376406
fp = null;
377407
}
378408

379-
if (mangaOriginalSizeCheck) {
380-
function replaceMangaImageUrl (v) {
381-
return (v.match(/_big_p\d+\./) ? v : v.replace(/_p(\d+)\./, '_big_p$1.'));
382-
}
383-
384-
let bigurl = replaceMangaImageUrl(im[0]);
385-
if (bigurl) {
386-
const cookieManager = Cc["@mozilla.org/cookiemanager;1"].getService(Ci.nsICookieManager2);
387-
cookieManager.add(
388-
'.pixiv.net',
389-
'/',
390-
'pixiv_embed',
391-
'pix',
392-
false,
393-
false,
394-
false,
395-
new Date().getTime() + (1000 * 60 * 60 * 24 * 365)
396-
);
397-
398-
if (AnkUtils.remoteFileExists(bigurl))
399-
im = im.map(function (v) replaceMangaImageUrl(v));
400-
}
401-
}
402-
403409
return { images: im, facing: fp, };
404410
}
405411
}
@@ -461,7 +467,7 @@ try {
461467
} // }}}
462468

463469
// 大画像関係
464-
if (!mod.elements.illust.ugoiraContainer) {
470+
if (!mod.in.ugoira) {
465471
if (AnkBase.Prefs.get('largeOnMiddle', true) && AnkBase.Prefs.get('largeOnMiddle.'+mod.SITE_NAME, true)) {
466472
new AnkViewer(
467473
mod,

0 commit comments

Comments
 (0)