|
|
@ -1,6 +1,7 @@ |
|
|
|
#!/usr/bin/env python |
|
|
|
from __future__ import unicode_literals |
|
|
|
|
|
|
|
import itertools |
|
|
|
import json |
|
|
|
import os |
|
|
|
import re |
|
|
@ -21,21 +22,26 @@ def format_size(bytes): |
|
|
|
|
|
|
|
total_bytes = 0 |
|
|
|
|
|
|
|
releases = json.loads(compat_urllib_request.urlopen( |
|
|
|
'https://api.github.com/repos/rg3/youtube-dl/releases').read().decode('utf-8')) |
|
|
|
|
|
|
|
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'])) |
|
|
|
for page in itertools.count(1): |
|
|
|
releases = json.loads(compat_urllib_request.urlopen( |
|
|
|
'https://api.github.com/repos/rg3/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)) |