aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dlc/utils.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan@users.noreply.github.com>2021-02-03 02:45:00 +0530
committerGitHub <noreply@github.com>2021-02-03 02:45:00 +0530
commite29663c644a65846125f5792be52dc27feb68297 (patch)
tree860d75177c52e66e92811dba694ca6c60bdc37f1 /youtube_dlc/utils.py
parent9c3fe2ef809006e69b4fd4ed9ff63e9fe57f5e8d (diff)
downloadhypervideo-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.py13
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