mirror of
https://github.com/SickGear/SickGear.git
synced 2024-12-01 00:43:37 +00:00
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
|
from __future__ import absolute_import
|
||
|
|
||
|
from .asctime import _parse_date_asctime
|
||
|
from .greek import _parse_date_greek
|
||
|
from .hungarian import _parse_date_hungarian
|
||
|
from .iso8601 import _parse_date_iso8601
|
||
|
from .korean import _parse_date_onblog, _parse_date_nate
|
||
|
from .perforce import _parse_date_perforce
|
||
|
from .rfc822 import _parse_date_rfc822
|
||
|
from .w3dtf import _parse_date_w3dtf
|
||
|
|
||
|
_date_handlers = []
|
||
|
def registerDateHandler(func):
|
||
|
'''Register a date handler function (takes string, returns 9-tuple date in GMT)'''
|
||
|
_date_handlers.insert(0, func)
|
||
|
|
||
|
def _parse_date(dateString):
|
||
|
'''Parses a variety of date formats into a 9-tuple in GMT'''
|
||
|
if not dateString:
|
||
|
return None
|
||
|
for handler in _date_handlers:
|
||
|
try:
|
||
|
date9tuple = handler(dateString)
|
||
|
except (KeyError, OverflowError, ValueError):
|
||
|
continue
|
||
|
if not date9tuple:
|
||
|
continue
|
||
|
if len(date9tuple) != 9:
|
||
|
continue
|
||
|
return date9tuple
|
||
|
return None
|
||
|
|
||
|
registerDateHandler(_parse_date_onblog)
|
||
|
registerDateHandler(_parse_date_nate)
|
||
|
registerDateHandler(_parse_date_greek)
|
||
|
registerDateHandler(_parse_date_hungarian)
|
||
|
registerDateHandler(_parse_date_perforce)
|
||
|
registerDateHandler(_parse_date_asctime)
|
||
|
registerDateHandler(_parse_date_iso8601)
|
||
|
registerDateHandler(_parse_date_rfc822)
|
||
|
registerDateHandler(_parse_date_w3dtf)
|