Skip to content

Commit 1a88deb

Browse files
committed
nextLinkByUrl
1 parent 5506613 commit 1a88deb

File tree

3 files changed

+36
-11
lines changed

3 files changed

+36
-11
lines changed

Pagetual/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[☯️](https://greasyfork.org/scripts/438684 "Install from greasyfork")東方永頁機 [v.1.9.37.120](https://hoothin.github.io/UserScripts/Pagetual/pagetual.user.js "Latest version")
1+
[☯️](https://greasyfork.org/scripts/438684 "Install from greasyfork")東方永頁機 [v.1.9.37.121](https://hoothin.github.io/UserScripts/Pagetual/pagetual.user.js "Latest version")
22
==
33
*Pagetual - Perpetual pages. Auto loading paginated web pages for 90% of all web sites !*
44

Pagetual/pagetual.user.js

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
// @name:da Pagetual
3232
// @name:fr-CA Pagetual
3333
// @namespace hoothin
34-
// @version 1.9.37.120
34+
// @version 1.9.37.121
3535
// @description Perpetual pages - powerful auto-pager script. Auto fetching next paginated web pages and inserting into current page for infinite scroll. Support thousands of web sites without any rule.
3636
// @description:zh-CN 终极自动翻页 - 加载并拼接下一分页内容至当前页尾,智能适配任意网页
3737
// @description:zh-TW 終極自動翻頁 - 加載並拼接下一分頁內容至當前頁尾,智能適配任意網頁
@@ -3497,7 +3497,20 @@
34973497
debug(e);
34983498
}
34993499
} else if (this.curSiteRule.nextLinkByUrl) {
3500-
let targetUrl = this.curUrl.replace(new RegExp(this.curSiteRule.nextLinkByUrl[0], "i"), this.curSiteRule.nextLinkByUrl[1]);
3500+
let urlReg = new RegExp(this.curSiteRule.nextLinkByUrl[0], "i");
3501+
let targetUrl;
3502+
if (urlReg.test(this.curUrl)) {
3503+
targetUrl = this.curUrl.replace(urlReg, this.curSiteRule.nextLinkByUrl[1])
3504+
} else {
3505+
if (this.curSiteRule.nextLinkByUrl[0].indexOf("&") != -1) {
3506+
urlReg = new RegExp(this.curSiteRule.nextLinkByUrl[0].replace("&", "\\?"), "i");
3507+
}
3508+
if (urlReg.test(this.curUrl)) {
3509+
targetUrl = this.curUrl.replace(urlReg, this.curSiteRule.nextLinkByUrl[1]);
3510+
} else {
3511+
targetUrl = this.curUrl + this.curSiteRule.nextLinkByUrl[1].replace(/\$\d+/g, "");
3512+
}
3513+
}
35013514
if (targetUrl !== this.curUrl) {
35023515
let includeSel = this.curSiteRule.nextLinkByUrl[2];
35033516
let excludeSel = this.curSiteRule.nextLinkByUrl[3];
@@ -3529,8 +3542,11 @@
35293542
debug(e);
35303543
}
35313544
}
3532-
targetUrl = targetUrl.replace(rep, result);
3545+
targetUrl = targetUrl.replace(rep, result || "");
35333546
});
3547+
if (targetUrl.indexOf("&") != -1 && targetUrl.indexOf("?") == -1) {
3548+
targetUrl = targetUrl.replace("&", "?");
3549+
}
35343550
}
35353551
}
35363552
nextLink = {href: targetUrl};
@@ -8754,7 +8770,6 @@
87548770
let pageText = document.createElement("a");
87558771
let pageNum;
87568772
pageBar.className = isHideBar ? "pagetual_pageBar autopagerize_page_info hide" : "pagetual_pageBar autopagerize_page_info";
8757-
pageBar.id = "pagetual_pageBar" + curPage;
87588773
pageBar.setAttribute("translate", "no");
87598774
if (isPause) {
87608775
pageBar.classList.add("stop");
@@ -8775,6 +8790,7 @@
87758790
if (openInNewTab == 1) pageText.target = "_blank";
87768791
pageBar.appendChild(upSpan);
87778792
pageBar.appendChild(pageText);
8793+
let localPage = curPage;
87788794
let touched = false;
87798795
let touchBodyHandler = e => {
87808796
touched = false;
@@ -8788,6 +8804,7 @@
87888804
pageText.innerHTML = createHTML(pageText.innerHTML + i18n("page"));
87898805
pageNum = document.createElement("span");
87908806
let num = ruleParser.getPageNumFromUrl(url, curPage);
8807+
localPage = num;
87918808
pageNum.innerHTML = createHTML(num + "<i style='font-size: 0;'>&nbsp;</i>");
87928809
pageNum.className = "pagetual_pageNum";
87938810
pageNum.title = i18n("inputPageNum");
@@ -8815,6 +8832,7 @@
88158832
} else {
88168833
pageText.innerHTML = createHTML(pageText.innerHTML + i18n("page") + curPage + "<i style='font-size: 0;'>&nbsp;</i>");
88178834
}
8835+
pageBar.id = "pagetual_pageBar" + localPage;
88188836
let preBtn = document.createElement("span");
88198837
preBtn.innerHTML = createHTML("∧");
88208838
preBtn.title = i18n("prevPage");
@@ -8825,7 +8843,6 @@
88258843
nextBtn.title = i18n("nextPage");
88268844
nextBtn.className = "nextScreen";
88278845
nextBtn.style.cssText = "display: none;text-align: center;right: unset; float: left; width: 40px; background: rgba(240, 240, 240, 0.8); position: absolute; z-index: 9999999; box-shadow: rgb(0 0 0 / 50%) 0px 5px 5px; border-radius: 0 0 20px 20px; margin-top: 30px; ";
8828-
let localPage = curPage;
88298846
preBtn.addEventListener("click", e => {
88308847
e.stopPropagation();
88318848
e.preventDefault();

Pagetual/pagetualRules.json

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5476,13 +5476,21 @@
54765476
"pageNum": "start={100*($p-1)}"
54775477
},
54785478
{
5479-
"name": "Github issues and pulls",
5480-
"type": 0,
5479+
"name": "Github issues",
5480+
"action": 0,
5481+
"url": "^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/issues",
5482+
"pageElement": "[data-listview-component=items-list]>[class^=ListItems]",
5483+
"nextLinkByUrl": [
5484+
"&page=(\\d+)",
5485+
"&page={$1+1}"
5486+
]
5487+
},
5488+
{
5489+
"name": "Github pulls",
54815490
"action": 0,
5482-
"url": "^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/(?:issues|pulls)",
5491+
"url": "^https:\\/\\/github\\.com\\/[^/]+\\/[^/]+\\/pulls",
54835492
"pageElement": "//div[starts-with(@id,'issue_')]",
5484-
"nextLink": "//a[@class='next_page']",
5485-
"pinUrl": true
5493+
"nextLink": "//a[rel=next]"
54865494
},
54875495
{
54885496
"name": "Repository search results · GitHub",

0 commit comments

Comments
 (0)