summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDelirious Lettuce <delirious.lettuce@gmail.com>2017-05-24 22:20:50 -0600
committerDelirious Lettuce <delirious.lettuce@gmail.com>2017-05-24 22:20:50 -0600
commit979242b47868def83b21786eed1c4f60f7b829bb (patch)
tree616b258c0f9ebf50b239d9d0ff7dc1befd0d520f
parentd25c6d949f7a2a1d59ea07b87835b091db447cf1 (diff)
downloadonionshare-979242b47868def83b21786eed1c4f60f7b829bb.tar.gz
onionshare-979242b47868def83b21786eed1c4f60f7b829bb.zip
Use `divmod` to simplify the calculations, `seconds==0 -> '0s'`
-rw-r--r--onionshare/common.py33
1 files changed, 11 insertions, 22 deletions
diff --git a/onionshare/common.py b/onionshare/common.py
index 508acd36..3008ad3a 100644
--- a/onionshare/common.py
+++ b/onionshare/common.py
@@ -160,30 +160,19 @@ def human_readable_filesize(b):
def format_seconds(seconds):
"""Return a human-readable string of the format 1d2h3m4s"""
- seconds_in_a_minute = 60
- seconds_in_an_hour = seconds_in_a_minute * 60
- seconds_in_a_day = seconds_in_an_hour * 24
-
- days = math.floor(seconds / seconds_in_a_day)
-
- hour_seconds = seconds % seconds_in_a_day
- hours = math.floor(hour_seconds / seconds_in_an_hour)
-
- minute_seconds = hour_seconds % seconds_in_an_hour
- minutes = math.floor(minute_seconds / seconds_in_a_minute)
-
- remaining_seconds = minute_seconds % seconds_in_a_minute
- seconds = math.ceil(remaining_seconds)
+ days, seconds = divmod(seconds, 86400)
+ hours, seconds = divmod(seconds, 3600)
+ minutes, seconds = divmod(seconds, 60)
human_readable = []
- if days > 0:
- human_readable.append("{}d".format(int(days)))
- if hours > 0:
- human_readable.append("{}h".format(int(hours)))
- if minutes > 0:
- human_readable.append("{}m".format(int(minutes)))
- if seconds > 0:
- human_readable.append("{}s".format(int(seconds)))
+ if days:
+ human_readable.append("{}d".format(days))
+ if hours:
+ human_readable.append("{}h".format(hours))
+ if minutes:
+ human_readable.append("{}m".format(minutes))
+ if seconds or not human_readable:
+ human_readable.append("{:.0f}s".format(seconds))
return ''.join(human_readable)