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