| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | #!/usr/bin/env pythonfrom __future__ import unicode_literalsimport itertoolsimport jsonimport osimport reimport syssys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))from youtube_dl.compat import (    compat_print,    compat_urllib_request,)from youtube_dl.utils import format_bytesdef format_size(bytes):    return '%s (%d bytes)' % (format_bytes(bytes), bytes)total_bytes = 0for page in itertools.count(1):    releases = json.loads(compat_urllib_request.urlopen(        'https://api.github.com/repos/ytdl-org/youtube-dl/releases?page=%s' % page    ).read().decode('utf-8'))    if not releases:        break    for release in releases:        compat_print(release['name'])        for asset in release['assets']:            asset_name = asset['name']            total_bytes += asset['download_count'] * asset['size']            if all(not re.match(p, asset_name) for p in (                    r'^youtube-dl$',                    r'^youtube-dl-\d{4}\.\d{2}\.\d{2}(?:\.\d+)?\.tar\.gz$',                    r'^youtube-dl\.exe$')):                continue            compat_print(                ' %s size: %s downloads: %d'                % (asset_name, format_size(asset['size']), asset['download_count']))compat_print('total downloads traffic: %s' % format_size(total_bytes))
 |