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 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 except ExpatError as err: | 270 except ExpatError as err: |
271 exception = Exception('Error {0} while parsing xml:\n{1}\nfrom {2}' | 271 exception = Exception('Error {0} while parsing xml:\n{1}\nfrom {2}' |
272 .format(err, content, url)) | 272 .format(err, content, url)) |
273 raise exception | 273 raise exception |
274 | 274 |
275 | 275 |
276 def _getMozillaDownloadLink(galleryID): | 276 def _getMozillaDownloadLink(galleryID): |
277 """ | 277 """ |
278 gets download link for a Gecko add-on from the Mozilla Addons site | 278 gets download link for a Gecko add-on from the Mozilla Addons site |
279 """ | 279 """ |
280 url = 'https://services.addons.mozilla.org/en-US/firefox/api/1/addon/%s' % _
urlencode(galleryID) | 280 url = 'https://addons.mozilla.org/api/v3/addons/addon/' + galleryID |
281 document = _parseXMLDocument(url) | 281 with _urlopen(url) as data: |
282 linkTags = document.getElementsByTagName('install') | 282 result = json.load(data) |
283 linkTag = linkTags[0] if len(linkTags) > 0 else None | 283 |
284 versionTags = document.getElementsByTagName('version') | 284 return ( |
285 versionTag = versionTags[0] if len(versionTags) > 0 else None | 285 result['current_version']['files'][0]['url'], |
286 if linkTag and versionTag and linkTag.firstChild and versionTag.firstChild: | 286 result['current_version']['version'], |
287 return (linkTag.firstChild.data, versionTag.firstChild.data) | 287 ) |
288 else: | |
289 return (None, None) | |
290 | 288 |
291 | 289 |
292 def _getLocalLink(repo): | 290 def _getLocalLink(repo): |
293 """ | 291 """ |
294 gets the link for the newest download of an add-on in the local downloads | 292 gets the link for the newest download of an add-on in the local downloads |
295 repository | 293 repository |
296 """ | 294 """ |
297 highestURL = None | 295 highestURL = None |
298 highestVersion = None | 296 highestVersion = None |
299 | 297 |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 if not extensions: | 395 if not extensions: |
398 return | 396 return |
399 | 397 |
400 updates = {} | 398 updates = {} |
401 for extension in extensions: | 399 for extension in extensions: |
402 updates[extension['basename']] = { | 400 updates[extension['basename']] = { |
403 'url': extension['updateURL'], | 401 'url': extension['updateURL'], |
404 'version': extension['version'], | 402 'version': extension['version'], |
405 } | 403 } |
406 writeLibabpUpdateManifest(path, updates) | 404 writeLibabpUpdateManifest(path, updates) |
OLD | NEW |