(callback)
| 5269 | } |
| 5270 | |
| 5271 | async getRule(callback) { |
| 5272 | var href = location.href.slice(0, 500); |
| 5273 | if (noRuleTest) { |
| 5274 | this.curSiteRule = {}; |
| 5275 | this.curSiteRule.url = href; |
| 5276 | this.curSiteRule.smart = true; |
| 5277 | callback(); |
| 5278 | return; |
| 5279 | } |
| 5280 | if (_unsafeWindow.pagetualRule) { |
| 5281 | this.curSiteRule = _unsafeWindow.pagetualRule; |
| 5282 | if (!this.curSiteRule.url) this.curSiteRule.url = "."; |
| 5283 | this.curSiteRule.isScript = true; |
| 5284 | } |
| 5285 | if (this.curSiteRule && this.curSiteRule.url && !this.curSiteRule.smart) { |
| 5286 | let urlReg = new RegExp(this.curSiteRule.url, "i"); |
| 5287 | if (urlReg.test(href) && this.ruleMatch(this.curSiteRule)) { |
| 5288 | return callback(); |
| 5289 | } |
| 5290 | } |
| 5291 | if (this.possibleRule) { |
| 5292 | let urlReg = new RegExp(this.possibleRule.url, "i"); |
| 5293 | if (urlReg.test(href) && this.ruleMatch(this.possibleRule)) { |
| 5294 | this.curSiteRule = this.possibleRule; |
| 5295 | debug(this.curSiteRule, 'Match'); |
| 5296 | return callback(); |
| 5297 | } |
| 5298 | } |
| 5299 | this.curSiteRule = {}; |
| 5300 | var self = this; |
| 5301 | |
| 5302 | function setRule(r) { |
| 5303 | if (self.preSiteRule) { |
| 5304 | href = location.href.slice(0, 500); |
| 5305 | let urlReg = new RegExp(self.preSiteRule.url, "i"); |
| 5306 | if (urlReg.test(href) && self.ruleMatch(self.preSiteRule)) { |
| 5307 | self.curSiteRule = self.preSiteRule; |
| 5308 | return callback(); |
| 5309 | } |
| 5310 | } |
| 5311 | if (r.from === 2) { |
| 5312 | delete r.autoLoadNum; |
| 5313 | delete r.history; |
| 5314 | delete r.sideController; |
| 5315 | if (r.pageBar === 0) delete r.pageBar; |
| 5316 | } |
| 5317 | if (!r.smart) { |
| 5318 | self.insert = null; |
| 5319 | self.curSiteRule = r; |
| 5320 | self.preSiteRule = r; |
| 5321 | if (r.enable !== 0) debug(r, 'Match'); |
| 5322 | } else if (!self.curSiteRule || !self.curSiteRule.smart) self.curSiteRule = r; |
| 5323 | callback(); |
| 5324 | } |
| 5325 | |
| 5326 | function checkRule(r) { |
| 5327 | if (r.from === 1 && r.url.length <= 13) return false; |
| 5328 | let urlReg = new RegExp(r.url, "i"); |
no test coverage detected