| 
									
										
										
										
											2016-07-03 22:20:14 +07:00
										 |  |  | #!/usr/bin/env python | 
					
						
							|  |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 00:14:40 +07:00
										 |  |  | import itertools | 
					
						
							| 
									
										
										
										
											2016-07-03 22:20:14 +07:00
										 |  |  | import json | 
					
						
							|  |  |  | import os | 
					
						
							|  |  |  | import re | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | sys.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_bytes | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def format_size(bytes): | 
					
						
							|  |  |  |     return '%s (%d bytes)' % (format_bytes(bytes), bytes) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | total_bytes = 0 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-27 00:14:40 +07:00
										 |  |  | 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'])) | 
					
						
							| 
									
										
										
										
											2016-07-03 22:20:14 +07:00
										 |  |  | 
 | 
					
						
							|  |  |  | compat_print('total downloads traffic: %s' % format_size(total_bytes)) |