53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
from math import floor
|
|
from urllib.parse import urlparse
|
|
|
|
|
|
def format_timedelta(value, time_format='{days} days, {hours2}:{minutes2}:{seconds2}'):
|
|
"""
|
|
Taken from https://github.com/frnhr/django_timedeltatemplatefilter and
|
|
https://github.com/frnhr/django_timedeltatemplatefilter
|
|
"""
|
|
if hasattr(value, 'seconds'):
|
|
seconds = value.seconds + value.days * 24 * 3600
|
|
else:
|
|
seconds = int(value)
|
|
|
|
seconds_total = seconds
|
|
|
|
minutes = int(floor(seconds / 60))
|
|
minutes_total = minutes
|
|
seconds -= minutes * 60
|
|
|
|
hours = int(floor(minutes / 60))
|
|
hours_total = hours
|
|
minutes -= hours * 60
|
|
|
|
days = int(floor(hours / 24))
|
|
days_total = days
|
|
hours -= days * 24
|
|
|
|
years = int(floor(days / 365))
|
|
years_total = years
|
|
days -= years * 365
|
|
|
|
return time_format.format(**{
|
|
'seconds': seconds,
|
|
'seconds2': str(seconds).zfill(2),
|
|
'minutes': minutes,
|
|
'minutes2': str(minutes).zfill(2),
|
|
'hours': hours,
|
|
'hours2': str(hours).zfill(2),
|
|
'days': days,
|
|
'years': years,
|
|
'seconds_total': seconds_total,
|
|
'minutes_total': minutes_total,
|
|
'hours_total': hours_total,
|
|
'days_total': days_total,
|
|
'years_total': years_total,
|
|
})
|
|
|
|
|
|
def parse_base_url(url, include_scheme=True):
|
|
result = urlparse(url)
|
|
base_url = f'{result.scheme}://{result.netloc}' if include_scheme else result.netloc.replace('www.', '')
|
|
return base_url
|