def store_newest_downloads(update_credentials): download_links = dict() credentials = credentials_module.get_credential() if update_credentials == credentials: rsapi = RapidShareAPI(credentials=credentials) #folderid="6834" download_links["Rapidshare"] = rsapi.get_download_links(fields="filename,size,uploadtime") hfapi = HotFileAPI(credentials=credentials) download_links["Hotfile"] = hfapi.get_download_links(folderid="1701142", hashid="2e37c99") result = {} for hoster, downloads in download_links.iteritems(): for properties in downloads.itervalues(): try: # Convert time string into a more readable form: properties["date"] = time.ctime(float(properties["uploadtime"])) except KeyError: pass properties["version"] = None try: version_string = re.search(r'diribeowin32_([\w].*).zip', properties["filename"]).group(1) properties["version"] = string_to_version(version_string) properties["version_string"] = version_string # only add if version info has been extracted properly try: result[hoster].append(properties) except KeyError: result[hoster] = list() result[hoster].append(properties) except AttributeError: pass # version info could not be extracted downloads = Downloads() downloads.downloads_string = json.dumps(result) downloads.put() # Sort each downloads by version for hoster, download_links in result.iteritems(): result[hoster] = tuple(sorted(download_links, key=lambda item: item["version"], reverse=True)) return result