diff --git a/modules/lolix/backend.py b/modules/lolix/backend.py index e3791778..721c431c 100644 --- a/modules/lolix/backend.py +++ b/modules/lolix/backend.py @@ -139,9 +139,8 @@ class LolixBackend(BaseBackend, ICapJob): def search_job(self, pattern=None): with self.browser: - if not pattern: - for job_advert in self.browser.advanced_search_job(): - yield job_advert + for job_advert in self.browser.advanced_search_job(pattern=pattern): + yield job_advert def advanced_search_job(self): for advert in self.browser.advanced_search_job(region=self.config['region'].get(), diff --git a/modules/lolix/browser.py b/modules/lolix/browser.py index ec5a7356..323bf6bf 100644 --- a/modules/lolix/browser.py +++ b/modules/lolix/browser.py @@ -36,7 +36,7 @@ class LolixBrowser(BaseBrowser): '%s://%s/offre.php\?id=(?P.+)' % (PROTOCOL, DOMAIN): AdvertPage, } - def advanced_search_job(self, region=0, poste=0, contrat=0, limit_date=0): + def advanced_search_job(self, region=0, poste=0, contrat=0, limit_date=0, pattern=None): data = { 'mode': 'find', 'page': '0', @@ -48,7 +48,7 @@ class LolixBrowser(BaseBrowser): self.location('%s://%s/search.php' % (self.PROTOCOL, self.DOMAIN), urllib.urlencode(data)) assert self.is_on_page(SearchPage) - return self.page.iter_job_adverts() + return self.page.iter_job_adverts(pattern) @id2url(LolixJobAdvert.id2url) def get_job_advert(self, url, advert): diff --git a/modules/lolix/pages.py b/modules/lolix/pages.py index d319ba2d..0165b05b 100644 --- a/modules/lolix/pages.py +++ b/modules/lolix/pages.py @@ -69,12 +69,17 @@ class AdvertPage(BasePage): class SearchPage(BasePage): - def iter_job_adverts(self): + def iter_job_adverts(self, pattern): rows = self.document.getroot().xpath('//td[@class="Contenu"]/table/tr') for row in rows: cols = self.is_row_advert(row) if cols is not None: - yield self.create_job_advert(cols) + advert = self.create_job_advert(cols) + if pattern: + if pattern in advert.title: + yield advert + else: + yield advert def is_row_advert(self, row): cols = self.parser.select(row, 'td')