Amélioration robustesse import gglink
This commit is contained in:
parent
91b584d5f4
commit
cf4f506168
@ -322,6 +322,7 @@ class Extractor(ABC):
|
|||||||
FacebookEventExtractor(),
|
FacebookEventExtractor(),
|
||||||
GoogleCalendarLinkEventExtractor(),
|
GoogleCalendarLinkEventExtractor(),
|
||||||
AssociationsCF(),
|
AssociationsCF(),
|
||||||
|
ICALExtractor(),
|
||||||
EventNotFoundExtractor(),
|
EventNotFoundExtractor(),
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from urllib.parse import parse_qs, urlparse
|
from urllib.parse import parse_qs, urlparse
|
||||||
|
from html import unescape
|
||||||
|
|
||||||
import dateutil.parser
|
import dateutil.parser
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
@ -26,6 +27,13 @@ class GGCalendar:
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def parse_date(d):
|
||||||
|
try:
|
||||||
|
return dateutil.parser.parse(d)
|
||||||
|
except Exception:
|
||||||
|
d = d.split("+")[0]
|
||||||
|
return dateutil.parser.parse(d)
|
||||||
|
|
||||||
def is_valid_event(self):
|
def is_valid_event(self):
|
||||||
return self.start_day is not None and self.title is not None
|
return self.start_day is not None and self.title is not None
|
||||||
|
|
||||||
@ -36,7 +44,7 @@ class GGCalendar:
|
|||||||
params = GGCalendar.filter_keys(params)
|
params = GGCalendar.filter_keys(params)
|
||||||
|
|
||||||
self.location = params["location"][0] if "location" in params else ""
|
self.location = params["location"][0] if "location" in params else ""
|
||||||
self.title = (
|
self.title = unescape(
|
||||||
params["text"][0]
|
params["text"][0]
|
||||||
if "text" in params
|
if "text" in params
|
||||||
else params["title"][0] if "title" in params else ""
|
else params["title"][0] if "title" in params else ""
|
||||||
@ -51,22 +59,22 @@ class GGCalendar:
|
|||||||
if "dates" in params:
|
if "dates" in params:
|
||||||
dates = [x.replace(" ", "+") for x in params["dates"][0].split("/")]
|
dates = [x.replace(" ", "+") for x in params["dates"][0].split("/")]
|
||||||
if len(dates) > 0:
|
if len(dates) > 0:
|
||||||
date = dateutil.parser.parse(dates[0])
|
date = GGCalendar.parse_date(dates[0])
|
||||||
self.start_day = date.date()
|
self.start_day = date.date()
|
||||||
self.start_time = date.time()
|
self.start_time = date.time()
|
||||||
if len(dates) == 2:
|
if len(dates) == 2:
|
||||||
date = dateutil.parser.parse(dates[1])
|
date = GGCalendar.parse_date(dates[1])
|
||||||
self.end_day = date.date()
|
self.end_day = date.date()
|
||||||
self.end_time = date.time()
|
self.end_time = date.time()
|
||||||
else:
|
else:
|
||||||
self.end_day = None
|
self.end_day = None
|
||||||
self.end_time = None
|
self.end_time = None
|
||||||
elif "date_start" in params:
|
elif "date_start" in params:
|
||||||
date = dateutil.parser.parse(params["date_start"][0])
|
date = GGCalendar.parse_date(params["date_start"][0])
|
||||||
self.start_day = date.date()
|
self.start_day = date.date()
|
||||||
self.start_time = date.time()
|
self.start_time = date.time()
|
||||||
if "date_end" in params:
|
if "date_end" in params:
|
||||||
dateend = dateutil.parser.parse(params["date_end"][0])
|
dateend = GGCalendar.parse_date(params["date_end"][0])
|
||||||
if dateend != date:
|
if dateend != date:
|
||||||
self.end_day = dateend.date()
|
self.end_day = dateend.date()
|
||||||
self.end_time = dateend.time()
|
self.end_time = dateend.time()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user