| OLD | NEW | 
|---|
| 1 # This file is part of Adblock Plus <https://adblockplus.org/>, | 1 # This file is part of Adblock Plus <https://adblockplus.org/>, | 
| 2 # Copyright (C) 2006-present eyeo GmbH | 2 # Copyright (C) 2006-present eyeo GmbH | 
| 3 # | 3 # | 
| 4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify | 
| 5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as | 
| 6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. | 
| 7 # | 7 # | 
| 8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, | 
| 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 93     XBL = 'xbl' | 93     XBL = 'xbl' | 
| 94     DTD = 'dtd' | 94     DTD = 'dtd' | 
| 95 | 95 | 
| 96     # Other options. | 96     # Other options. | 
| 97     MATCH_CASE = 'match-case' | 97     MATCH_CASE = 'match-case' | 
| 98     DOMAIN = 'domain' | 98     DOMAIN = 'domain' | 
| 99     THIRD_PARTY = 'third-party' | 99     THIRD_PARTY = 'third-party' | 
| 100     COLLAPSE = 'collapse' | 100     COLLAPSE = 'collapse' | 
| 101     SITEKEY = 'sitekey' | 101     SITEKEY = 'sitekey' | 
| 102     DONOTTRACK = 'donottrack' | 102     DONOTTRACK = 'donottrack' | 
|  | 103     CSP = 'csp' | 
| 103 | 104 | 
| 104 | 105 | 
| 105 def _line_type(name, field_names, format_string): | 106 def _line_type(name, field_names, format_string): | 
| 106     """Define a line type. | 107     """Define a line type. | 
| 107 | 108 | 
| 108     Parameters | 109     Parameters | 
| 109     ---------- | 110     ---------- | 
| 110     name: str | 111     name: str | 
| 111         The name of the line type to define. | 112         The name of the line type to define. | 
| 112     field_names: str or list | 113     field_names: str or list | 
| (...skipping 25 matching lines...) Expand all  Loading... | 
| 138 Include = _line_type('Include', 'target', '%include {0.target}%') | 139 Include = _line_type('Include', 'target', '%include {0.target}%') | 
| 139 | 140 | 
| 140 | 141 | 
| 141 METADATA_REGEXP = re.compile(r'!\s*(\w+)\s*:\s*(.*)') | 142 METADATA_REGEXP = re.compile(r'!\s*(\w+)\s*:\s*(.*)') | 
| 142 METADATA_KEYS = {'Homepage', 'Title', 'Expires', 'Checksum', 'Redirect', | 143 METADATA_KEYS = {'Homepage', 'Title', 'Expires', 'Checksum', 'Redirect', | 
| 143                  'Version'} | 144                  'Version'} | 
| 144 INCLUDE_REGEXP = re.compile(r'%include\s+(.+)%') | 145 INCLUDE_REGEXP = re.compile(r'%include\s+(.+)%') | 
| 145 HEADER_REGEXP = re.compile(r'\[(Adblock(?:\s*Plus\s*[\d\.]+?)?)\]', flags=re.I) | 146 HEADER_REGEXP = re.compile(r'\[(Adblock(?:\s*Plus\s*[\d\.]+?)?)\]', flags=re.I) | 
| 146 HIDING_FILTER_REGEXP = re.compile(r'^([^/*|@"!]*?)#([@?])?#(.+)$') | 147 HIDING_FILTER_REGEXP = re.compile(r'^([^/*|@"!]*?)#([@?])?#(.+)$') | 
| 147 FILTER_OPTIONS_REGEXP = re.compile( | 148 FILTER_OPTIONS_REGEXP = re.compile( | 
| 148     r'\$(~?[\w-]+(?:=[^,\s]+)?(?:,~?[\w-]+(?:=[^,\s]+)?)*)$' | 149     r'\$(~?[\w-]+(?:=[^,]+)?(?:,~?[\w-]+(?:=[^,]+)?)*)$' | 
| 149 ) | 150 ) | 
| 150 | 151 | 
| 151 | 152 | 
| 152 def _parse_comment(text): | 153 def _parse_comment(text): | 
| 153     match = METADATA_REGEXP.match(text) | 154     match = METADATA_REGEXP.match(text) | 
| 154     if match and match.group(1) in METADATA_KEYS: | 155     if match and match.group(1) in METADATA_KEYS: | 
| 155         return Metadata(match.group(1), match.group(2)) | 156         return Metadata(match.group(1), match.group(2)) | 
| 156     return Comment(text[1:].strip()) | 157     return Comment(text[1:].strip()) | 
| 157 | 158 | 
| 158 | 159 | 
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 312     Raises | 313     Raises | 
| 313     ------ | 314     ------ | 
| 314     ParseError | 315     ParseError | 
| 315         Thrown during iteration for invalid filter list lines. | 316         Thrown during iteration for invalid filter list lines. | 
| 316     TypeError | 317     TypeError | 
| 317         If `lines` is not iterable. | 318         If `lines` is not iterable. | 
| 318 | 319 | 
| 319     """ | 320     """ | 
| 320     for line in lines: | 321     for line in lines: | 
| 321         yield parse_line(line) | 322         yield parse_line(line) | 
| OLD | NEW | 
|---|