Helpviewer/AdBlock/AdBlockRule.py

changeset 945
8cd4d08fa9f6
parent 791
9ec2ac20e54e
child 1112
8a7d1b9d18db
equal deleted inserted replaced
944:1b59c4ba121e 945:8cd4d08fa9f6
8 """ 8 """
9 9
10 import re 10 import re
11 11
12 from PyQt4.QtCore import * 12 from PyQt4.QtCore import *
13
13 14
14 class AdBlockRule(object): 15 class AdBlockRule(object):
15 """ 16 """
16 Class implementing the AdBlock rule. 17 Class implementing the AdBlock rule.
17 """ 18 """
18 def __init__(self, filter = ""): 19 def __init__(self, filter=""):
19 """ 20 """
20 Constructor 21 Constructor
21 """ 22 """
22 self.__regExp = QRegExp() 23 self.__regExp = QRegExp()
23 self.__options = [] 24 self.__options = []
176 pattern = re.sub(r"\^\|$", "^", pattern) # remove anchors following separator placeholder 177 pattern = re.sub(r"\^\|$", "^", pattern) # remove anchors following separator placeholder
177 pattern = re.sub(r"^(\*)", "", pattern) # remove leading wildcards 178 pattern = re.sub(r"^(\*)", "", pattern) # remove leading wildcards
178 pattern = re.sub(r"(\*)$", "", pattern) # remove trailing wildcards 179 pattern = re.sub(r"(\*)$", "", pattern) # remove trailing wildcards
179 pattern = re.sub(r"(\W)", "", pattern) # escape special symbols 180 pattern = re.sub(r"(\W)", "", pattern) # escape special symbols
180 pattern = re.sub(r"^\\\|\\\|", 181 pattern = re.sub(r"^\\\|\\\|",
181 r"^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?", pattern) # process extended anchor at expression start 182 r"^[\w\-]+:\/+(?!\/)(?:[^\/]+\.)?", pattern) # process extended anchor at expression start
182 pattern = re.sub(r"\\\^", 183 pattern = re.sub(r"\\\^",
183 r"(?:[^\w\d\-.%]|$)", pattern) # process separator placeholders 184 r"(?:[^\w\d\-.%]|$)", pattern) # process separator placeholders
184 pattern = re.sub(r"^\\\|", "^", pattern) # process anchor at expression start 185 pattern = re.sub(r"^\\\|", "^", pattern) # process anchor at expression start
185 pattern = re.sub(r"\\\|$", "$", pattern) # process anchor at expression end 186 pattern = re.sub(r"\\\|$", "$", pattern) # process anchor at expression end
186 pattern = re.sub(r"\\\*", ".*", pattern) # replace wildcards by .* 187 pattern = re.sub(r"\\\*", ".*", pattern) # replace wildcards by .*
187 188
195 @param isRegExp flag indicating a reg exp pattern (boolean) 196 @param isRegExp flag indicating a reg exp pattern (boolean)
196 """ 197 """
197 if isRegExp: 198 if isRegExp:
198 self.__regExp = QRegExp(pattern, Qt.CaseInsensitive, QRegExp.RegExp2) 199 self.__regExp = QRegExp(pattern, Qt.CaseInsensitive, QRegExp.RegExp2)
199 else: 200 else:
200 self.__regExp = QRegExp(self.__convertPatternToRegExp(pattern), 201 self.__regExp = QRegExp(self.__convertPatternToRegExp(pattern),
201 Qt.CaseInsensitive, QRegExp.RegExp2) 202 Qt.CaseInsensitive, QRegExp.RegExp2)

eric ide

mercurial