From cbc67ee5a64c505259c64e59fb0898b4b0f6012d Mon Sep 17 00:00:00 2001 From: Alexandre Morignot Date: Mon, 24 Nov 2014 23:15:25 +0100 Subject: [PATCH] [residentadvisor] search by summary --- modules/residentadvisor/browser.py | 4 ++-- modules/residentadvisor/module.py | 3 +++ modules/residentadvisor/pages.py | 3 ++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/residentadvisor/browser.py b/modules/residentadvisor/browser.py index e7ba01c6..d92627aa 100644 --- a/modules/residentadvisor/browser.py +++ b/modules/residentadvisor/browser.py @@ -35,7 +35,7 @@ class ResidentadvisorBrowser(LoginBrowser): login = URL('https://www.residentadvisor.net/login', LoginPage) event = URL('/event.aspx\?(?P\d+)', EventPage) list_events = URL('/events.aspx\?ai=(?P\d+)&v=(?P.+)&yr=(?P\d{4})&mn=(?P\d\d?)&dy=(?P\d\d?)', ListPage) - search_page = URL('/search.aspx?searchstr=(?P)§ion=events&titles=1', SearchPage) + search_page = URL('/search.aspx\?searchstr=(?P.+)§ion=events&titles=1', SearchPage) attends = URL('/Output/addhandler.ashx') def do_login(self): @@ -65,7 +65,7 @@ class ResidentadvisorBrowser(LoginBrowser): return event - def search_events_by_title(self, pattern): + def search_events_by_summary(self, pattern): self.search_page.go(query = pattern) assert self.search_page.is_here() diff --git a/modules/residentadvisor/module.py b/modules/residentadvisor/module.py index bdd85357..221a4a61 100644 --- a/modules/residentadvisor/module.py +++ b/modules/residentadvisor/module.py @@ -142,6 +142,9 @@ class ResidentadvisorModule(Module, CapCalendarEvent): for event in self.browser.get_events(city = city_id): yield event + elif query.summary: + for event in self.browser.search_events_by_summary(query.summary): + yield event else: for event in self.list_events(query.start_date, query.end_date): yield event diff --git a/modules/residentadvisor/pages.py b/modules/residentadvisor/pages.py index 9475bece..d20228d9 100644 --- a/modules/residentadvisor/pages.py +++ b/modules/residentadvisor/pages.py @@ -109,4 +109,5 @@ class SearchPage(BasePage): obj_id = Regexp(Link('./a[1]'), r'\?(\d+)') obj_summary = CleanText('./a[1]') obj_start_date = Date(CleanText('./span[1]')) - obj_booked_entries = Type(CleanText('.//p[@class="attending"]/span'), type=float) + obj_category = CATEGORIES.CONCERT + obj_status = STATUS.CONFIRMED