projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'naglis/sockshare'
[youtube-dl]
/
youtube_dl
/
utils.py
diff --git
a/youtube_dl/utils.py
b/youtube_dl/utils.py
index 09312e81a485de8d04f7757eb2e26a80a10f161c..bf4d1112f9f62cf6a58a26df3d83bb4326470b1c 100644
(file)
--- a/
youtube_dl/utils.py
+++ b/
youtube_dl/utils.py
@@
-775,7
+775,7
@@
class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
https_response = http_response
https_response = http_response
-def parse_iso8601(date_str):
+def parse_iso8601(date_str
, delimiter='T'
):
""" Return a UNIX timestamp from the given date """
if date_str is None:
""" Return a UNIX timestamp from the given date """
if date_str is None:
@@
-795,8
+795,8
@@
def parse_iso8601(date_str):
timezone = datetime.timedelta(
hours=sign * int(m.group('hours')),
minutes=sign * int(m.group('minutes')))
timezone = datetime.timedelta(
hours=sign * int(m.group('hours')),
minutes=sign * int(m.group('minutes')))
-
- dt = datetime.datetime.strptime(date_str,
'%Y-%m-%dT%H:%M:%S'
) - timezone
+ date_format = '%Y-%m-%d{0}%H:%M:%S'.format(delimiter)
+ dt = datetime.datetime.strptime(date_str,
date_format
) - timezone
return calendar.timegm(dt.timetuple())
return calendar.timegm(dt.timetuple())
@@
-1193,11
+1193,6
@@
def format_bytes(bytes):
return u'%.2f%s' % (converted, suffix)
return u'%.2f%s' % (converted, suffix)
-def str_to_int(int_str):
- int_str = re.sub(r'[,\.]', u'', int_str)
- return int(int_str)
-
-
def get_term_width():
columns = os.environ.get('COLUMNS', None)
if columns:
def get_term_width():
columns = os.environ.get('COLUMNS', None)
if columns:
@@
-1265,15
+1260,22
@@
class HEADRequest(compat_urllib_request.Request):
return "HEAD"
return "HEAD"
-def int_or_none(v, scale=1, default=None, get_attr=None):
+def int_or_none(v, scale=1, default=None, get_attr=None
, invscale=1
):
if get_attr:
if v is not None:
v = getattr(v, get_attr, None)
if get_attr:
if v is not None:
v = getattr(v, get_attr, None)
- return default if v is None else (int(v) // scale)
+ return default if v is None else (int(v) * invscale // scale)
+
+
+def str_to_int(int_str):
+ if int_str is None:
+ return None
+ int_str = re.sub(r'[,\.]', u'', int_str)
+ return int(int_str)
-def float_or_none(v, scale=1, default=None):
- return default if v is None else (float(v) / scale)
+def float_or_none(v, scale=1,
invscale=1,
default=None):
+ return default if v is None else (float(v)
* invscale
/ scale)
def parse_duration(s):
def parse_duration(s):
@@
-1428,7
+1430,7
@@
US_RATINGS = {
def strip_jsonp(code):
def strip_jsonp(code):
- return re.sub(r'(?s)^[a-zA-Z
_]+\s*\(\s*(.*)\);
\s*?\s*$', r'\1', code)
+ return re.sub(r'(?s)^[a-zA-Z
0-9_]+\s*\(\s*(.*)\);?
\s*?\s*$', r'\1', code)
def qualities(quality_ids):
def qualities(quality_ids):