@@ -394,6 +394,7 @@ class ArtworkThumbnail extends _WorkThumbnail__WEBPACK_IMPORTED_MODULE_0__.WorkT
394394 'li>div>div:first-child',
395395 'li>div>div:first-child>div',
396396 'li>div>div>div:first-child',
397+ '.worksUL li>div>div:first-child',
397398 'div[data-ga4-entity-id^="illust"]>div:nth-child(2)',
398399 'div[data-ga4-entity-id^="manga"]>div:nth-child(2)',
399400 ];
@@ -403,8 +404,16 @@ class ArtworkThumbnail extends _WorkThumbnail__WEBPACK_IMPORTED_MODULE_0__.WorkT
403404 // 这里还会显示小说,但小说的含有 novel 关键词,可以区别开来,例如:
404405 // data-ga4-entity-id="novel/18205969"
405406 }
406- this.findThumbnail(document.body);
407407 this.createObserver(document.body);
408+ // 立即查找一次元素
409+ this.findThumbnail(document.body);
410+ // 之后在某些页面里定时查找
411+ const findOnPageType = [_PageType__WEBPACK_IMPORTED_MODULE_1__.pageType.list.Request];
412+ window.setInterval(() => {
413+ if (document.hidden === false && findOnPageType.includes(_PageType__WEBPACK_IMPORTED_MODULE_1__.pageType.type)) {
414+ this.findThumbnail(document.body);
415+ }
416+ }, 1000);
408417 }
409418 findThumbnail(parent) {
410419 if (!parent.querySelectorAll) {
@@ -440,7 +449,9 @@ class ArtworkThumbnail extends _WorkThumbnail__WEBPACK_IMPORTED_MODULE_0__.WorkT
440449 continue;
441450 }
442451 // 只在 约稿 页面里使用
443- if (selector === 'li>div>div:first-child>div' &&
452+ // .worksUL li>div>div:first-child 是在“已完成的约稿”里使用的
453+ if ((selector === 'li>div>div:first-child>div' ||
454+ selector === '.worksUL li>div>div:first-child') &&
444455 _PageType__WEBPACK_IMPORTED_MODULE_1__.pageType.type !== _PageType__WEBPACK_IMPORTED_MODULE_1__.pageType.list.Request) {
445456 continue;
446457 }
@@ -7251,11 +7262,11 @@ class ShowLargerThumbnails {
72517262 // 当页面元素变化时,允许重新查找。
72527263 // 这主要是因为切换页面时,下载器可能先查找到了目标元素,但之后页面内容马上发生了变化,移除了目标元素。
72537264 // 所以当元素变化时,需要重新查找,否则偶尔会显示异常
7254- const targetNode = document.querySelector('body');
7265+ const body = document.querySelector('body');
72557266 const observer = new MutationObserver(() => {
72567267 this.needFind = true;
72577268 });
7258- observer.observe(targetNode , {
7269+ observer.observe(body , {
72597270 childList: true,
72607271 subtree: true,
72617272 });
@@ -7464,6 +7475,38 @@ class ShowLargerThumbnails {
74647475 }
74657476 }
74667477 }
7478+ // 约稿页面,分为数种子页面
7479+ if (_PageType__WEBPACK_IMPORTED_MODULE_2__.pageType.type === _PageType__WEBPACK_IMPORTED_MODULE_2__.pageType.list.Request) {
7480+ // 正在接稿中用户的作品
7481+ // https://www.pixiv.net/request/creators/works/illust
7482+ // 已完成的约稿页面
7483+ // https://www.pixiv.net/request/complete/illust
7484+ if (window.location.pathname.includes('/request/complete') ||
7485+ window.location.pathname.includes('/request/creators')) {
7486+ // 首先查找作品列表的 UL 元素
7487+ const illustLink = document.querySelector('ul li a[href^="/artworks/"]');
7488+ if (!illustLink) {
7489+ return;
7490+ }
7491+ const ul = illustLink.closest('ul');
7492+ ul.classList.add('worksUL');
7493+ // 查找容器元素
7494+ // ul 的祖父元素是个 div,这个 div 里面的 3 个div 都是容器元素
7495+ const grandfather = ul.parentElement.parentElement;
7496+ grandfather.childNodes.forEach((div) => div.classList.add('worksWrapper'));
7497+ this.needFind = false;
7498+ }
7499+ else {
7500+ // 约稿页面
7501+ // 为作品容器添加自定义 className
7502+ const allSection = document.querySelectorAll('section');
7503+ for (const section of allSection) {
7504+ if (section.parentElement?.nodeName == 'DIV') {
7505+ section.parentElement.classList.add('requestContainer');
7506+ }
7507+ }
7508+ }
7509+ }
74677510 }
74687511}
74697512new ShowLargerThumbnails();
@@ -15532,28 +15575,31 @@ __webpack_require__.r(__webpack_exports__);
1553215575/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1553315576/* harmony export */ InitRequestPage: () => (/* binding */ InitRequestPage)
1553415577/* harmony export */ });
15535- /* harmony import */ var _setting_Options__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../setting/Options */ "./src/ts/setting/Options.ts");
15536- /* harmony import */ var _InitPageBase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InitPageBase */ "./src/ts/crawl/InitPageBase.ts");
15578+ /* harmony import */ var _EVT__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../EVT */ "./src/ts/EVT.ts");
15579+ /* harmony import */ var _PageType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../PageType */ "./src/ts/PageType.ts");
15580+ /* harmony import */ var _setting_Options__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../setting/Options */ "./src/ts/setting/Options.ts");
15581+ /* harmony import */ var _InitPageBase__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InitPageBase */ "./src/ts/crawl/InitPageBase.ts");
15582+
15583+
1553715584
1553815585
1553915586// 投稿页面
15540- class InitRequestPage extends _InitPageBase__WEBPACK_IMPORTED_MODULE_1__ .InitPageBase {
15587+ class InitRequestPage extends _InitPageBase__WEBPACK_IMPORTED_MODULE_3__ .InitPageBase {
1554115588 constructor() {
1554215589 super();
1554315590 this.init();
1554415591 }
1554515592 initAny() {
15546- // 为作品容器添加自定义 className,让显示更大的缩率图功能不那么容易失效
15547- const allSection = document.querySelectorAll('section');
15548- for (const section of allSection) {
15549- if (section.parentElement?.nodeName == 'DIV') {
15550- section.parentElement.classList.add('requestContainer');
15593+ // 约稿页面 和 已完成的约稿页面 互相切换时,需要重新隐藏第一个选项
15594+ window.addEventListener(_EVT__WEBPACK_IMPORTED_MODULE_0__.EVT.list.pageSwitch, () => {
15595+ if (_PageType__WEBPACK_IMPORTED_MODULE_1__.pageType.type === _PageType__WEBPACK_IMPORTED_MODULE_1__.pageType.list.Request) {
15596+ this.setFormOption();
1555115597 }
15552- }
15598+ });
1555315599 }
1555415600 addCrawlBtns() { }
1555515601 setFormOption() {
15556- _setting_Options__WEBPACK_IMPORTED_MODULE_0__ .options.hideOption([1]);
15602+ _setting_Options__WEBPACK_IMPORTED_MODULE_2__ .options.hideOption([1]);
1555715603 }
1555815604}
1555915605
0 commit comments