Ejemplo n.º 1
0
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