MCPcopy Index your code
hub / github.com/hoothin/UserScripts / getPageNumFromUrl

Method getPageNumFromUrl

Pagetual/pagetual.user.js:6678–6711  ·  view source on GitHub ↗
(url, defaultPage)

Source from the content-addressed store, hash-verified

6676 }
6677
6678 getPageNumFromUrl(url, defaultPage) {
6679 if (!url) return defaultPage;
6680 if (this.curSiteRule.pageNum) {
6681 let result = this.curSiteRule.pageNum;
6682 let strMatch = result.match(/\{.*?}/);
6683 if (!strMatch) return defaultPage;
6684 let urlReg = new RegExp(".*" + result.replace(strMatch[0], "(\\d+)") + ".*", "i");
6685 let curShowNum = url.replace(urlReg, "$1");
6686 if (curShowNum !== url) {
6687 let code = strMatch[0].replace(/^{/, "").replace(/}$/, "");
6688 if (code === "$p") {
6689 return curShowNum;
6690 } else {
6691 try {
6692 let page1 = parseInt(Function('"use strict";return ' + code.replace("$p", "0"))());
6693 let page2 = parseInt(Function('"use strict";return ' + code.replace("$p", "1"))());
6694 let numGap = page2 - page1;
6695 let _page = (parseInt(curShowNum) - page1) / numGap;
6696 if (_page && _page % 1 === 0) return _page;
6697 else {
6698 this.curSiteRule.pageNum = null;
6699 return defaultPage;
6700 }
6701 } catch(e) {
6702 debug(e);
6703 }
6704 }
6705 } else {
6706 return defaultPage;
6707 }
6708 }
6709 let pageNum = url.replace(/.*[&\/\?](p=|page[=\/_-]?)(\d+).*/i, "$2");
6710 return pageNum === url ? defaultPage : (pageNum.length > 4 ? defaultPage : pageNum);
6711 }
6712
6713 reachedLastPage() {
6714 if (rulesData.lastPageTips) {

Callers 2

initPageMethod · 0.80
createPageBarFunction · 0.80

Calls 1

debugFunction · 0.85

Tested by

no test coverage detected