(url, pageNum)
| 6649 | } |
| 6650 | |
| 6651 | getLinkByPage(url, pageNum) { |
| 6652 | if (!url) return null; |
| 6653 | if (this.curSiteRule.pageNum) { |
| 6654 | let result = this.curSiteRule.pageNum; |
| 6655 | let strMatch = result.match(/\{.*?}/); |
| 6656 | if (!strMatch) return null; |
| 6657 | let urlReg = new RegExp("(" + result.replace(strMatch[0], ")\\d+(") + ")", "i"); |
| 6658 | let code = strMatch[0].replace(/^{/, "").replace(/}$/, "").replace(/\$p/g, pageNum); |
| 6659 | if (code === pageNum) { |
| 6660 | result = url.replace(urlReg, "$1" + code + "$2"); |
| 6661 | } else { |
| 6662 | try { |
| 6663 | code = Function('"use strict";return ' + code)(); |
| 6664 | if (code && code % 1 == 0) { |
| 6665 | result = url.replace(urlReg, "$1" + code + "$2"); |
| 6666 | } else return null; |
| 6667 | } catch(e) { |
| 6668 | debug(e); |
| 6669 | } |
| 6670 | } |
| 6671 | if (result != url) { |
| 6672 | return result; |
| 6673 | } |
| 6674 | } |
| 6675 | return url.replace(/([&\/\?](p=|page[=\/_-]?))\d+/i, "$1" + pageNum).replace(/([_-])\d+\./i, "$1" + pageNum + "."); |
| 6676 | } |
| 6677 | |
| 6678 | getPageNumFromUrl(url, defaultPage) { |
| 6679 | if (!url) return defaultPage; |
no test coverage detected