mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-01 08:53:37 +00:00
Add Fallback to display date without timezone info (for windows historical dates)
This commit is contained in:
parent
b58ef9267c
commit
c789c8a14c
1 changed files with 53 additions and 34 deletions
|
@ -104,6 +104,14 @@ class static_or_instance(object):
|
||||||
class sbdatetime(datetime.datetime):
|
class sbdatetime(datetime.datetime):
|
||||||
has_locale = True
|
has_locale = True
|
||||||
|
|
||||||
|
@static_or_instance
|
||||||
|
def is_locale_eng(self):
|
||||||
|
return (sbdatetime.sbdatetime.sbfdate(datetime.datetime.now(), '%A').lower() in [
|
||||||
|
'sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'] and
|
||||||
|
sbdatetime.sbdatetime.sbfdate(datetime.datetime.now(), '%B').lower() in [
|
||||||
|
'january', 'february', 'march', 'april', 'may', 'june',
|
||||||
|
'july', 'august', 'september', 'october', 'november', 'december'])
|
||||||
|
|
||||||
@static_or_instance
|
@static_or_instance
|
||||||
def convert_to_setting(self, dt=None):
|
def convert_to_setting(self, dt=None):
|
||||||
obj = (dt, self)[self is not None]
|
obj = (dt, self)[self is not None]
|
||||||
|
@ -121,7 +129,7 @@ class sbdatetime(datetime.datetime):
|
||||||
try:
|
try:
|
||||||
if None is use_has_locale or use_has_locale:
|
if None is use_has_locale or use_has_locale:
|
||||||
locale.setlocale(locale.LC_TIME, locale_str)
|
locale.setlocale(locale.LC_TIME, locale_str)
|
||||||
except:
|
except locale.Error:
|
||||||
if None is not use_has_locale:
|
if None is not use_has_locale:
|
||||||
sbdatetime.has_locale = False
|
sbdatetime.has_locale = False
|
||||||
pass
|
pass
|
||||||
|
@ -133,41 +141,44 @@ class sbdatetime(datetime.datetime):
|
||||||
sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale, locale_str='us_US')
|
sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale, locale_str='us_US')
|
||||||
|
|
||||||
strt = ''
|
strt = ''
|
||||||
try:
|
|
||||||
obj = (dt, self)[self is not None]
|
|
||||||
if None is not obj:
|
|
||||||
tmpl = (((sickbeard.TIME_PRESET, sickbeard.TIME_PRESET_W_SECONDS)[show_seconds]),
|
|
||||||
t_preset)[None is not t_preset]
|
|
||||||
tmpl = (tmpl.replace(':%S', ''), tmpl)[show_seconds]
|
|
||||||
|
|
||||||
strt = obj.strftime(tmpl.replace('%P', '%p'))
|
obj = (dt, self)[self is not None]
|
||||||
|
if None is not obj:
|
||||||
|
tmpl = (((sickbeard.TIME_PRESET, sickbeard.TIME_PRESET_W_SECONDS)[show_seconds]),
|
||||||
|
t_preset)[None is not t_preset]
|
||||||
|
tmpl = (tmpl.replace(':%S', ''), tmpl)[show_seconds]
|
||||||
|
|
||||||
|
pm_token = tmpl.replace('%P', '%p')
|
||||||
|
try:
|
||||||
|
strt = obj.strftime(pm_token)
|
||||||
|
except ValueError:
|
||||||
|
strt = obj.replace(tzinfo=None).strftime(pm_token)
|
||||||
|
|
||||||
|
if sickbeard.TRIM_ZERO:
|
||||||
|
strt = re.sub(r'^0(\d:\d\d)', r'\1', strt)
|
||||||
|
|
||||||
|
if re.search(r'(?im)%p$', tmpl):
|
||||||
|
if '%p' in tmpl:
|
||||||
|
strt = strt.upper()
|
||||||
|
elif '%P' in tmpl:
|
||||||
|
strt = strt.lower()
|
||||||
|
|
||||||
if sickbeard.TRIM_ZERO:
|
if sickbeard.TRIM_ZERO:
|
||||||
strt = re.sub(r'^0(\d:\d\d)', r'\1', strt)
|
strt = re.sub(r'(?im)^(\d+)(?::00)?(\s?[ap]m)', r'\1\2', strt)
|
||||||
|
|
||||||
if re.search(r'(?im)%p$', tmpl):
|
if markup:
|
||||||
if '%p' in tmpl:
|
match = re.search(r'(?im)(\d{1,2})(?:(.)(\d\d)(?:(.)(\d\d))?)?(?:\s?([ap]m))?$', strt)
|
||||||
strt = strt.upper()
|
if match:
|
||||||
elif '%P' in tmpl:
|
strt = ('%s%s%s%s%s%s' % (
|
||||||
strt = strt.lower()
|
('<span class="time-hr">%s</span>' % match.group(1), '')[None is match.group(1)],
|
||||||
|
('<span class="time-hr-min">%s</span>' % match.group(2), '')[None is match.group(2)],
|
||||||
|
('<span class="time-min">%s</span>' % match.group(3), '')[None is match.group(3)],
|
||||||
|
('<span class="time-min-sec">%s</span>' % match.group(4), '')[None is match.group(4)],
|
||||||
|
('<span class="time-sec">%s</span>' % match.group(5), '')[None is match.group(5)],
|
||||||
|
('<span class="time-am-pm">%s</span>' % match.group(6), '')[None is match.group(6)]))
|
||||||
|
|
||||||
if sickbeard.TRIM_ZERO:
|
sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale)
|
||||||
strt = re.sub(r'(?im)^(\d+)(?::00)?(\s?[ap]m)', r'\1\2', strt)
|
return strt
|
||||||
|
|
||||||
if markup:
|
|
||||||
match = re.search(r'(?im)(\d{1,2})(?:(.)(\d\d)(?:(.)(\d\d))?)?(?:\s?([ap]m))?$', strt)
|
|
||||||
if match:
|
|
||||||
strt = ('%s%s%s%s%s%s' % (
|
|
||||||
('<span class="time-hr">%s</span>' % match.group(1), '')[None is match.group(1)],
|
|
||||||
('<span class="time-hr-min">%s</span>' % match.group(2), '')[None is match.group(2)],
|
|
||||||
('<span class="time-min">%s</span>' % match.group(3), '')[None is match.group(3)],
|
|
||||||
('<span class="time-min-sec">%s</span>' % match.group(4), '')[None is match.group(4)],
|
|
||||||
('<span class="time-sec">%s</span>' % match.group(5), '')[None is match.group(5)],
|
|
||||||
('<span class="time-am-pm">%s</span>' % match.group(6), '')[None is match.group(6)]))
|
|
||||||
|
|
||||||
finally:
|
|
||||||
sbdatetime.setlocale(setlocale=setlocale, use_has_locale=sbdatetime.has_locale)
|
|
||||||
return strt
|
|
||||||
|
|
||||||
# display Date in SickGear Format
|
# display Date in SickGear Format
|
||||||
@static_or_instance
|
@static_or_instance
|
||||||
|
@ -179,7 +190,11 @@ class sbdatetime(datetime.datetime):
|
||||||
try:
|
try:
|
||||||
obj = (dt, self)[self is not None]
|
obj = (dt, self)[self is not None]
|
||||||
if None is not obj:
|
if None is not obj:
|
||||||
strd = obj.strftime((sickbeard.DATE_PRESET, d_preset)[None is not d_preset])
|
preset = (sickbeard.DATE_PRESET, d_preset)[None is not d_preset]
|
||||||
|
try:
|
||||||
|
strd = obj.strftime(preset)
|
||||||
|
except ValueError:
|
||||||
|
strd = obj.replace(tzinfo=None).strftime(preset)
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
sbdatetime.setlocale(setlocale=setlocale)
|
sbdatetime.setlocale(setlocale=setlocale)
|
||||||
|
@ -195,8 +210,12 @@ class sbdatetime(datetime.datetime):
|
||||||
obj = (dt, self)[self is not None]
|
obj = (dt, self)[self is not None]
|
||||||
try:
|
try:
|
||||||
if None is not obj:
|
if None is not obj:
|
||||||
strd = u'%s, %s' % (obj.strftime((sickbeard.DATE_PRESET, d_preset)[None is not d_preset]),
|
preset = (sickbeard.DATE_PRESET, d_preset)[None is not d_preset]
|
||||||
sbdatetime.sbftime(dt, show_seconds, t_preset, False, markup))
|
try:
|
||||||
|
strd = obj.strftime(preset),
|
||||||
|
except ValueError:
|
||||||
|
strd = obj.replace(tzinfo=None).strftime(preset)
|
||||||
|
strd = u'%s, %s' % (strd, sbdatetime.sbftime(dt, show_seconds, t_preset, False, markup))
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
sbdatetime.setlocale(use_has_locale=sbdatetime.has_locale)
|
sbdatetime.setlocale(use_has_locale=sbdatetime.has_locale)
|
||||||
|
|
Loading…
Reference in a new issue