OLD | NEW |
1 # coding: utf-8 | 1 # coding: utf-8 |
2 | 2 |
3 # This file is part of the Adblock Plus web scripts, | 3 # This file is part of the Adblock Plus web scripts, |
4 # Copyright (C) 2006-2015 Eyeo GmbH | 4 # Copyright (C) 2006-2015 Eyeo GmbH |
5 # | 5 # |
6 # Adblock Plus is free software: you can redistribute it and/or modify | 6 # Adblock Plus is free software: you can redistribute it and/or modify |
7 # it under the terms of the GNU General Public License version 3 as | 7 # it under the terms of the GNU General Public License version 3 as |
8 # published by the Free Software Foundation. | 8 # published by the Free Software Foundation. |
9 # | 9 # |
10 # Adblock Plus is distributed in the hope that it will be useful, | 10 # Adblock Plus is distributed in the hope that it will be useful, |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 This static method will enumerate Configuration | 238 This static method will enumerate Configuration |
239 objects representing the settings for each repository. | 239 objects representing the settings for each repository. |
240 """ | 240 """ |
241 config = get_config() | 241 config = get_config() |
242 for key, value in config.items("extensions"): | 242 for key, value in config.items("extensions"): |
243 if key.endswith("_repository"): | 243 if key.endswith("_repository"): |
244 repositoryName = re.sub(r'_repository$', '', key) | 244 repositoryName = re.sub(r'_repository$', '', key) |
245 if repositoryName: | 245 if repositoryName: |
246 yield Configuration(config, nightlyConfig, repositoryName, value) | 246 yield Configuration(config, nightlyConfig, repositoryName, value) |
247 | 247 |
248 def getSafariCertificateID(keyFile): | |
249 import M2Crypto | |
250 | |
251 bio = M2Crypto.BIO.openfile(keyFile) | |
252 try: | |
253 while True: | |
254 try: | |
255 cert = M2Crypto.X509.load_cert_bio(bio) | |
256 except M2Crypto.X509.X509Error: | |
257 raise Exception('No safari developer certificate found in chain') | |
258 | |
259 subject = cert.get_subject() | |
260 for entry in subject.get_entries_by_nid(subject.nid['CN']): | |
261 m = re.match(r'Safari Developer: \((.*?)\)', entry.get_data().as_text()) | |
262 if m: | |
263 return m.group(1) | |
264 finally: | |
265 bio.close() | |
266 | |
267 def _urlencode(value): | 248 def _urlencode(value): |
268 return urllib.quote(value.encode('utf-8'), '') | 249 return urllib.quote(value.encode('utf-8'), '') |
269 | 250 |
270 def _urlopen(url, attempts=3): | 251 def _urlopen(url, attempts=3): |
271 """ | 252 """ |
272 Tries to open a particular URL, retries on failure. | 253 Tries to open a particular URL, retries on failure. |
273 """ | 254 """ |
274 for i in range(attempts): | 255 for i in range(attempts): |
275 try: | 256 try: |
276 return urllib.urlopen(url) | 257 return urllib.urlopen(url) |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 if not extensions: | 425 if not extensions: |
445 return | 426 return |
446 | 427 |
447 updates = {} | 428 updates = {} |
448 for extension in extensions: | 429 for extension in extensions: |
449 updates[extension['basename']] = { | 430 updates[extension['basename']] = { |
450 "url": extension['updateURL'], | 431 "url": extension['updateURL'], |
451 "version": extension['version'] | 432 "version": extension['version'] |
452 } | 433 } |
453 writeLibabpUpdateManifest(path, updates) | 434 writeLibabpUpdateManifest(path, updates) |
OLD | NEW |