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