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'])