[hybride] site changed
This commit is contained in:
parent
969b6b8abf
commit
5945d5d539
2 changed files with 10 additions and 29 deletions
|
|
@ -29,8 +29,8 @@ class HybrideBrowser(PagesBrowser):
|
||||||
PROFILE = Firefox()
|
PROFILE = Firefox()
|
||||||
BASEURL = 'http://www.lhybride.org'
|
BASEURL = 'http://www.lhybride.org'
|
||||||
|
|
||||||
program_page = URL('/programme.html', ProgramPage)
|
program_page = URL('programme.html', ProgramPage)
|
||||||
event_page = URL('/programme/item/(?P<_id>.*)', EventPage)
|
event_page = URL('programme/item/(?P<_id>.*)', EventPage)
|
||||||
|
|
||||||
def list_events(self, date_from, date_to=None, city=None, categories=None):
|
def list_events(self, date_from, date_to=None, city=None, categories=None):
|
||||||
return self.program_page.stay_or_go().list_events(date_from=date_from,
|
return self.program_page.stay_or_go().list_events(date_from=date_from,
|
||||||
|
|
|
||||||
|
|
@ -17,15 +17,13 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from datetime import time, datetime
|
|
||||||
from .calendar import HybrideCalendarEvent
|
from .calendar import HybrideCalendarEvent
|
||||||
|
|
||||||
import weboob.tools.date as date_util
|
import weboob.tools.date as date_util
|
||||||
import re
|
|
||||||
|
|
||||||
from weboob.browser.pages import HTMLPage
|
from weboob.browser.pages import HTMLPage
|
||||||
from weboob.browser.elements import ItemElement, SkipItem, ListElement, method
|
from weboob.browser.elements import ItemElement, ListElement, method
|
||||||
from weboob.browser.filters.standard import Filter, CleanText, Env, Format, BrowserURL
|
from weboob.browser.filters.standard import Filter, CleanText, Env, Format, BrowserURL, Regexp
|
||||||
from weboob.browser.filters.html import CleanHTML
|
from weboob.browser.filters.html import CleanHTML
|
||||||
from weboob.browser.filters.html import Link
|
from weboob.browser.filters.html import Link
|
||||||
|
|
||||||
|
|
@ -35,16 +33,11 @@ class Date(Filter):
|
||||||
return date_util.parse_french_date(text)
|
return date_util.parse_french_date(text)
|
||||||
|
|
||||||
|
|
||||||
class CombineDate(Filter):
|
|
||||||
def filter(self, text):
|
|
||||||
return datetime.combine(date_util.parse_french_date(text), time.max)
|
|
||||||
|
|
||||||
|
|
||||||
class ProgramPage(HTMLPage):
|
class ProgramPage(HTMLPage):
|
||||||
|
|
||||||
@method
|
@method
|
||||||
class list_events(ListElement):
|
class list_events(ListElement):
|
||||||
item_xpath = '//div[@class="catItemView groupLeading"]'
|
item_xpath = '//div[@class="itemContainer itemContainerLast"]'
|
||||||
|
|
||||||
class item(ItemElement):
|
class item(ItemElement):
|
||||||
klass = HybrideCalendarEvent
|
klass = HybrideCalendarEvent
|
||||||
|
|
@ -67,18 +60,9 @@ class ProgramPage(HTMLPage):
|
||||||
def check_category(self, obj):
|
def check_category(self, obj):
|
||||||
return (not self.env['categories'] or obj.category in self.env['categories'])
|
return (not self.env['categories'] or obj.category in self.env['categories'])
|
||||||
|
|
||||||
class CheckId(Filter):
|
obj_id = Regexp(Link('div/div[@class="catItemHeader"]/h3[@class="catItemTitle"]/a'), '/programme/item/(.*?).html')
|
||||||
def filter(self, a_id):
|
obj_start_date = Date(CleanText('div/div[@class="catItemHeader"]/span[@class="catItemDateCreated"]'))
|
||||||
re_id = re.compile('/programme/item/(.*?).html', re.DOTALL)
|
obj_summary = CleanText('div/div[@class="catItemHeader"]/h3[@class="catItemTitle"]/a')
|
||||||
_id = re_id.search(a_id).group(1)
|
|
||||||
if _id:
|
|
||||||
return _id
|
|
||||||
raise SkipItem()
|
|
||||||
|
|
||||||
obj_id = CheckId(Link('div[@class="catItemHeader"]/h3[@class="catItemTitle"]/a'))
|
|
||||||
obj_start_date = Date(CleanText('div[@class="catItemHeader"]/span[@class="catItemDateCreated"]'))
|
|
||||||
obj_end_date = CombineDate(CleanText('div[@class="catItemHeader"]/span[@class="catItemDateCreated"]'))
|
|
||||||
obj_summary = CleanText('div[@class="catItemHeader"]/h3[@class="catItemTitle"]/a')
|
|
||||||
|
|
||||||
|
|
||||||
class EventPage(HTMLPage):
|
class EventPage(HTMLPage):
|
||||||
|
|
@ -88,11 +72,8 @@ class EventPage(HTMLPage):
|
||||||
klass = HybrideCalendarEvent
|
klass = HybrideCalendarEvent
|
||||||
|
|
||||||
obj_id = Env('_id')
|
obj_id = Env('_id')
|
||||||
base = '//div[@class="itemView"]/div[@class="itemHeader"]'
|
obj_start_date = Date(CleanText('//span[@class="itemDateCreated"]'))
|
||||||
obj_start_date = Date(CleanText('%s/span[@class="itemDateCreated"]' % base))
|
obj_summary = CleanText('//h2[@class="itemTitle"]')
|
||||||
obj_end_date = CombineDate(CleanText('%s/span[@class="itemDateCreated"]' % base))
|
|
||||||
obj_summary = CleanText('%s/h2[@class="itemTitle"]' % base)
|
|
||||||
obj_url = Env('url')
|
|
||||||
obj_description = Format('%s\n%s',
|
obj_description = Format('%s\n%s',
|
||||||
CleanHTML('//div[@class="itemIntroText"]'),
|
CleanHTML('//div[@class="itemIntroText"]'),
|
||||||
CleanHTML('//div[@class="itemFullText"]'))
|
CleanHTML('//div[@class="itemFullText"]'))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue