| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 # This file is part of the Adblock Plus web scripts, | 1 # This file is part of the Adblock Plus web scripts, |
| 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 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 | 265 |
| 266 for filename in files: | 266 for filename in files: |
| 267 path = os.path.join(dir, filename) | 267 path = os.path.join(dir, filename) |
| 268 if os.path.isfile(path): | 268 if os.path.isfile(path): |
| 269 result.append(relpath + filename) | 269 result.append(relpath + filename) |
| 270 elif os.path.isdir(path): | 270 elif os.path.isdir(path): |
| 271 do_list(path, relpath + filename + '/') | 271 do_list(path, relpath + filename + '/') |
| 272 do_list(self.get_path(subdir), '') | 272 do_list(self.get_path(subdir), '') |
| 273 return result | 273 return result |
| 274 | 274 |
| 275 def write_to_config(self, section, option, value): | |
| 276 config = self.read_config() | |
| 277 try: | |
| 278 config.set(section, option, value) | |
| 279 except ConfigParser.NoSectionError: | |
| 280 config.add_section(section) | |
| 281 config.set(section, option, value) | |
| 282 with open(self.get_path('settings.ini'), 'w') as cnf: | |
| 283 config.write(cnf) | |
| 284 | |
| 275 def get_cache_dir(self): | 285 def get_cache_dir(self): |
| 276 return os.path.join(self._dir, 'cache') | 286 return os.path.join(self._dir, 'cache') |
| 277 | 287 |
| 278 | 288 |
| 279 class MultiSource(Source): | 289 class MultiSource(Source): |
| 280 """A source that combines the contents of multiple other sources.""" | 290 """A source that combines the contents of multiple other sources.""" |
| 281 | 291 |
| 282 def __init__(self, base_sources): | 292 def __init__(self, base_sources): |
| 283 self._bases = base_sources | 293 self._bases = base_sources |
| 284 | 294 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 372 `additional-paths` key that contains the list of additional root folders, | 382 `additional-paths` key that contains the list of additional root folders, |
| 373 `MultiSource` will be instantiated and its bases will be the original | 383 `MultiSource` will be instantiated and its bases will be the original |
| 374 source plus an additional source for each additional root folder. | 384 source plus an additional source for each additional root folder. |
| 375 `MultiSource` looks up files in its base sources in the order they are | 385 `MultiSource` looks up files in its base sources in the order they are |
| 376 provided, so the files in the additional folders will only be used if the | 386 provided, so the files in the additional folders will only be used if the |
| 377 original source doesn't contain that file. | 387 original source doesn't contain that file. |
| 378 """ | 388 """ |
| 379 source = FileSource(path) | 389 source = FileSource(path) |
| 380 | 390 |
| 381 config = source.read_config() | 391 config = source.read_config() |
| 392 print(source.read_file('settings.ini')[0]) | |
|
Vasily Kuznetsov
2018/10/05 10:56:26
Oops.
Tudor Avram
2018/10/05 12:34:40
haha, that was from Thursday night :))
| |
| 382 try: | 393 try: |
| 383 ap = config.get('paths', 'additional-paths').strip() | 394 ap = config.get('paths', 'additional-paths').strip() |
| 384 additional_paths = filter(None, ap.split()) | 395 additional_paths = filter(None, ap.split()) |
| 385 except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): | 396 except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): |
| 386 additional_paths = [] | 397 additional_paths = [] |
| 387 | 398 |
| 388 if additional_paths: | 399 if additional_paths: |
| 389 additional_sources = [ | 400 additional_sources = [ |
| 390 create_source(os.path.join(path, p)) | 401 create_source(os.path.join(path, p)) |
| 391 for p in additional_paths | 402 for p in additional_paths |
| 392 ] | 403 ] |
| 393 source = MultiSource([source] + additional_sources) | 404 source = MultiSource([source] + additional_sources) |
| 394 | 405 |
| 395 if cached: | 406 if cached: |
| 396 for fname in [ | 407 for fname in [ |
| 397 'resolve_link', | 408 'resolve_link', |
| 398 'read_config', | 409 'read_config', |
| 399 'read_template', | 410 'read_template', |
| 400 'read_locale', | 411 'read_locale', |
| 401 'read_include', | 412 'read_include', |
| 402 'exec_file', | 413 'exec_file', |
| 403 ]: | 414 ]: |
| 404 setattr(source, fname, _memoize(getattr(source, fname))) | 415 setattr(source, fname, _memoize(getattr(source, fname))) |
| 405 | 416 |
| 406 return source | 417 return source |
| OLD | NEW |