diff --git a/data/interfaces/default/info.html b/data/interfaces/default/info.html index 029839cd..5fa35f66 100644 --- a/data/interfaces/default/info.html +++ b/data/interfaces/default/info.html @@ -373,8 +373,7 @@ DOCUMENTATION :: END
% if data['duration']: - <% sig = 'dhms' if cast_to_int(data['duration']) < 300000 else 'dhm' %> - Runtime ${data['duration']} + Runtime ${data['duration']} % endif
@@ -933,7 +932,7 @@ DOCUMENTATION :: END var airdate = $("#airdate") var runtime = $("#runtime") airdate.html(moment(airdate.text()).format('MMM DD, YYYY')); - runtime.html(humanDuration(runtime.text(), runtime.data('sig'))); + runtime.html(humanDuration(runtime.text())); $('div.art-face').animate({ opacity: 0.2 }, { duration: 1000 }); $('#channel-icon').popover({ diff --git a/data/interfaces/default/js/script.js b/data/interfaces/default/js/script.js index cfd047a6..31232b76 100644 --- a/data/interfaces/default/js/script.js +++ b/data/interfaces/default/js/script.js @@ -354,7 +354,7 @@ function millisecondsToMinutes(ms, roundToMinute) { } } -function humanDuration(ms, sig='dhms', units='ms') { +function humanDuration(ms, sig='dhm', units='ms', return_seconds=300000) { var factors = { d: 86400000, h: 3600000, @@ -367,6 +367,10 @@ function humanDuration(ms, sig='dhms', units='ms') { var d, h, m, s; if (ms > 0) { + if (return_seconds && ms < return_seconds) { + sig = 'dhms' + } + ms = ms * factors[units]; h = ms % factors['d']; diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py index 60463e59..28c1e23d 100644 --- a/plexpy/datafactory.py +++ b/plexpy/datafactory.py @@ -290,8 +290,8 @@ class DataFactory(object): 'recordsTotal': query['totalCount'], 'data': session.friendly_name_to_username(rows), 'draw': query['draw'], - 'filter_duration': helpers.human_duration(filter_duration, sig='dhm', units='s'), - 'total_duration': helpers.human_duration(total_duration, sig='dhm', units='s') + 'filter_duration': helpers.human_duration(filter_duration, units='s'), + 'total_duration': helpers.human_duration(total_duration, units='s') } return dict diff --git a/plexpy/exporter.py b/plexpy/exporter.py index b19cf9f9..95766e2b 100644 --- a/plexpy/exporter.py +++ b/plexpy/exporter.py @@ -166,7 +166,7 @@ class Export(object): 'tag': None }, 'duration': None, - 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0), sig='dhm'), + 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0)), 'fields': { 'name': None, 'locked': None @@ -362,7 +362,7 @@ class Export(object): }, 'contentRating': None, 'duration': None, - 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0), sig='dhm'), + 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0)), 'fields': { 'name': None, 'locked': None @@ -461,7 +461,7 @@ class Export(object): 'tag': None }, 'duration': None, - 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0), sig='dhm'), + 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0)), 'fields': { 'name': None, 'locked': None @@ -750,7 +750,7 @@ class Export(object): 'addedAt': helpers.datetime_to_iso, 'art': None, 'duration': None, - 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0), sig='dhm'), + 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0)), 'fields': { 'name': None, 'locked': None @@ -997,7 +997,7 @@ class Export(object): 'addedAt': helpers.datetime_to_iso, 'composite': None, 'duration': None, - 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0), sig='dhm'), + 'durationHuman': lambda o: helpers.human_duration(getattr(o, 'duration', 0)), 'guid': None, 'key': None, 'leafCount': None, diff --git a/plexpy/helpers.py b/plexpy/helpers.py index 579394cd..b2a3dbc6 100644 --- a/plexpy/helpers.py +++ b/plexpy/helpers.py @@ -251,7 +251,7 @@ def datetime_to_iso(dt, to_date=False): return dt -def human_duration(ms, sig='dhms', units='ms'): +def human_duration(ms, sig='dhm', units='ms', return_seconds=300000): factors = {'d': 86400000, 'h': 3600000, 'm': 60000, @@ -259,6 +259,9 @@ def human_duration(ms, sig='dhms', units='ms'): 'ms': 1} if str(ms).isdigit() and ms > 0: + if return_seconds and ms < return_seconds: + sig = 'dhms' + ms = ms * factors[units] d, h = divmod(ms, factors['d'])