diff options
author | pukkandan <pukkandan@users.noreply.github.com> | 2021-02-03 02:45:00 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-03 02:45:00 +0530 |
commit | e29663c644a65846125f5792be52dc27feb68297 (patch) | |
tree | 860d75177c52e66e92811dba694ca6c60bdc37f1 /youtube_dlc/utils.py | |
parent | 9c3fe2ef809006e69b4fd4ed9ff63e9fe57f5e8d (diff) | |
download | hypervideo-pre-e29663c644a65846125f5792be52dc27feb68297.tar.lz hypervideo-pre-e29663c644a65846125f5792be52dc27feb68297.tar.xz hypervideo-pre-e29663c644a65846125f5792be52dc27feb68297.zip |
#45 Allow date/time formatting in output template
Closes #43
Diffstat (limited to 'youtube_dlc/utils.py')
-rw-r--r-- | youtube_dlc/utils.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/youtube_dlc/utils.py b/youtube_dlc/utils.py index 4aaee0b5f..be27a5622 100644 --- a/youtube_dlc/utils.py +++ b/youtube_dlc/utils.py @@ -50,6 +50,7 @@ from .compat import ( compat_html_entities_html5, compat_http_client, compat_integer_types, + compat_numeric_types, compat_kwargs, compat_os_name, compat_parse_qs, @@ -3673,6 +3674,18 @@ def url_or_none(url): return url if re.match(r'^(?:(?:https?|rt(?:m(?:pt?[es]?|fp)|sp[su]?)|mms|ftps?):)?//', url) else None +def strftime_or_none(timestamp, date_format, default=None): + datetime_object = None + try: + if isinstance(timestamp, compat_numeric_types): # unix timestamp + datetime_object = datetime.datetime.utcfromtimestamp(timestamp) + elif isinstance(timestamp, compat_str): # assume YYYYMMDD + datetime_object = datetime.datetime.strptime(timestamp, '%Y%m%d') + return datetime_object.strftime(date_format) + except (ValueError, TypeError, AttributeError): + return default + + def parse_duration(s): if not isinstance(s, compat_basestring): return None |