(url, defaultPage)
| 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) { |
no test coverage detected