From f60433e3130014bd2bda3b58aafb8608f390b584 Mon Sep 17 00:00:00 2001 From: Bezleputh Date: Fri, 12 Apr 2019 09:30:32 +0200 Subject: [PATCH] [lolix] R.I.P. --- modules/lolix/__init__.py | 24 ------ modules/lolix/browser.py | 46 ----------- modules/lolix/favicon.png | Bin 9614 -> 0 bytes modules/lolix/job.py | 26 ------- modules/lolix/module.py | 157 -------------------------------------- modules/lolix/pages.py | 84 -------------------- modules/lolix/test.py | 39 ---------- 7 files changed, 376 deletions(-) delete mode 100644 modules/lolix/__init__.py delete mode 100644 modules/lolix/browser.py delete mode 100644 modules/lolix/favicon.png delete mode 100644 modules/lolix/job.py delete mode 100644 modules/lolix/module.py delete mode 100644 modules/lolix/pages.py delete mode 100644 modules/lolix/test.py diff --git a/modules/lolix/__init__.py b/modules/lolix/__init__.py deleted file mode 100644 index 824bc5cda3..0000000000 --- a/modules/lolix/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2013 Bezleputh -# -# This file is part of a weboob module. -# -# This weboob module is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This weboob module is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this weboob module. If not, see . - - -from .module import LolixModule - - -__all__ = ['LolixModule'] diff --git a/modules/lolix/browser.py b/modules/lolix/browser.py deleted file mode 100644 index 6092d6b8c9..0000000000 --- a/modules/lolix/browser.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2013 Bezleputh -# -# This file is part of a weboob module. -# -# This weboob module is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This weboob module is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this weboob module. If not, see . - -from weboob.browser import PagesBrowser, URL -from .pages import SearchPage, AdvertPage - -__all__ = ['LolixBrowser'] - - -class LolixBrowser(PagesBrowser): - BASEURL = 'http://fr.lolix.org' - ENCODING = 'iso-8859-1' - - search_page = URL('/search/offre/search.php', SearchPage) - advert_page = URL('/search/offre/offre.php\?id=(?P.+)', AdvertPage) - - def advanced_search_job(self, region=0, poste=0, contrat=0, limit_date=0, pattern=None): - data = { - 'mode': 'find', - 'page': '0', - 'posteid': poste, - 'contratid': contrat, - 'regionid': region, - 'limitjour': limit_date - } - - return self.search_page.go(data=data).iter_job_adverts(pattern=pattern) - - def get_job_advert(self, id, advert): - return self.advert_page.go(id=id).get_job_advert(obj=advert) diff --git a/modules/lolix/favicon.png b/modules/lolix/favicon.png deleted file mode 100644 index c7d84fbd7960e855966dc5b1ff5ee58d9ceaae08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9614 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 Ef^eKc(*OVf diff --git a/modules/lolix/job.py b/modules/lolix/job.py deleted file mode 100644 index 33d4699087..0000000000 --- a/modules/lolix/job.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2013 Bezleputh -# -# This file is part of a weboob module. -# -# This weboob module is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This weboob module is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this weboob module. If not, see . - -from weboob.capabilities.job import BaseJobAdvert - - -class LolixJobAdvert(BaseJobAdvert): - @classmethod - def id2url(cls, _id): - return 'http://fr.lolix.org/search/offre/offre.php?id=%s' % _id diff --git a/modules/lolix/module.py b/modules/lolix/module.py deleted file mode 100644 index 1a83fb7e98..0000000000 --- a/modules/lolix/module.py +++ /dev/null @@ -1,157 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2013 Bezleputh -# -# This file is part of a weboob module. -# -# This weboob module is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This weboob module is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this weboob module. If not, see . - -from collections import OrderedDict - -from weboob.tools.backend import Module, BackendConfig -from weboob.tools.value import Value -from weboob.capabilities.job import CapJob, BaseJobAdvert - -from .browser import LolixBrowser - -__all__ = ['LolixModule'] - - -class LolixModule(Module, CapJob): - NAME = 'lolix' - DESCRIPTION = u'Lolix French free software employment website' - MAINTAINER = u'Bezleputh' - EMAIL = 'carton_ben@yahoo.fr' - VERSION = '1.6' - LICENSE = 'AGPLv3+' - - BROWSER = LolixBrowser - - region_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ - '0': u'-- Indifférent --', - '100000000': u'-- France entière', - '100100000': u'-- France métropolitaine', - '100100001': u'-- Alsace', - '100100002': u'-- Auvergne', - '100100003': u'-- Aquitaine', - '100100004': u'-- Bourgogne', - '100100005': u'-- Bretagne', - '100100025': u'-- Centre', - '100100027': u'-- Champagne-Ardenne', - '100100030': u'-- Corse', - '100100037': u'-- Franche-Comté', - '100100040': u'-- Ile de France', - '100100044': u'-- Languedoc-Roussillon', - '100100048': u'-- Limousin', - '100100051': u'-- Lorraine', - '100100055': u'-- Midi-Pyrénées', - '100100060': u'-- Nord-Pas-de-Calais', - '100100073': u'-- Normandie', - '100100076': u'-- Pays-de-Loire', - '100100079': u'-- Picardie', - '100100082': u'-- Poitou-Charentes', - '100100085': u'-- Provence Alpes Cote d\'azur', - '100100090': u'-- Rhône Alpes', - '100200000': u'-- DOM et TOM', - '100200001': u'-- Guadeloupe', - '100200002': u'-- Guyane', - '100200003': u'-- Martinique', - '100200004': u'-- Réunion', - '100200005': u'-- Saint-Pierre et Miquelon', - '200000000': u'-- Etranger', - }.items())]) - - poste_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ - '0': u'-- Indifférent --', - '100000000': u'-- Service Technique', - '100005000': u'-- Administrateur base de données', - '100004000': u'-- Admin. Système/Réseaux', - '100004004': u'-- Administrateur système', - '100004002': u'-- Administrateur réseaux', - '100007000': u'-- Analyste', - '100002000': u'-- Chef de projet', - '100002001': u'-- Chef de projet junior', - '100002002': u'-- Chef de projet senior', - '100021000': u'-- Consultant', - '100003000': u'-- Développeur', - '100003001': u'-- Développeur junior', - '100003002': u'-- Développeur senior', - '100009000': u'-- Directeur technique', - '100006000': u'-- Ingénieur d\'étude', - '100011000': u'-- Ingénieur support', - '100012000': u'-- Responsable R & D', - '100010000': u'-- Technicien', - '100010002': u'-- Technicien hotline', - '100010003': u'-- Technicien maintenance', - '100020000': u'-- Webmaster', - '200000000': u'-- Service Commercial', - '200300000': u'-- Commercial', - '200200000': u'-- Directeur commercial', - '200100000': u'-- Technico commercial', - '400000000': u'-- Service Marketing', - '400100000': u'-- Responsable Marketing', - '300000000': u'-- Service qualité', - '300100000': u'-- Assistant qualité', - '300200000': u'-- Responsable qualité', - '2000000': u'-- Fondateur', - '7000000': u'-- Formateur', - '6000000': u'-- Journaliste', - '500100000': u'-- Assistant(e) de direction', - '4000000': u'-- Stagiaire', - '5000000': u'-- Traducteur', - }.items())]) - - ''' - '000000' in order to display description in console question - the rule is : len(key) > 5 or ' ' in key: - ''' - contrat_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ - '000000': u'-- Indifférent --', - '6': u'Alternance', - '5': u'Apprentissage', - '2': u'CDD', - '1': u'CDI', - '4': u'Freelance', - '3': u'Stage', - }.items())]) - - limit_date_choices = OrderedDict([(k, u'%s' % (v)) for k, v in sorted({ - '2592000': u'30 jours', - '5184000': u'60 jours', - '7776000': u'90 jours', - '0': u'Illimitée', - }.items())]) - - CONFIG = BackendConfig(Value('region', label=u'Région', choices=region_choices), - Value('poste', label=u'Poste', choices=poste_choices), - Value('contrat', label=u'Contrat', choices=contrat_choices), - Value('limit_date', label=u'Date limite', choices=limit_date_choices)) - - def search_job(self, pattern=None): - return self.browser.advanced_search_job(pattern=pattern) - - def advanced_search_job(self): - for advert in self.browser.advanced_search_job(region=self.config['region'].get(), - poste=self.config['poste'].get(), - contrat=int(self.config['contrat'].get()), - limit_date=self.config['limit_date'].get()): - yield advert - - def get_job_advert(self, _id, advert=None): - return self.browser.get_job_advert(_id, advert) - - def fill_obj(self, advert, fields): - self.get_job_advert(advert.id, advert) - - OBJECTS = {BaseJobAdvert: fill_obj} diff --git a/modules/lolix/pages.py b/modules/lolix/pages.py deleted file mode 100644 index b394c12de1..0000000000 --- a/modules/lolix/pages.py +++ /dev/null @@ -1,84 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2013 Bezleputh -# -# This file is part of a weboob module. -# -# This weboob module is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This weboob module is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this weboob module. If not, see . - - -from weboob.browser.pages import HTMLPage -from weboob.browser.elements import TableElement, ItemElement, method -from weboob.browser.filters.standard import CleanText, Regexp, Date, Env, BrowserURL, Join, Format -from weboob.browser.filters.html import CleanHTML, TableCell -from weboob.capabilities.job import BaseJobAdvert - - -class AdvertPage(HTMLPage): - @method - class get_job_advert(ItemElement): - klass = BaseJobAdvert - - obj_id = Env('id') - obj_url = BrowserURL('advert_page', id=Env('id')) - obj_society_name = CleanText('//td[@class="Contenu"]/table[4]/tr[1]/td[1]/a') - obj_title = CleanText('//td[@class="Titre15"]') - - obj_description = Format('%s\n%s', - Join('\n', u'//td[@class="Contenu"]/table[3]/tr[td/text()="Détails :"]/following-sibling::tr', - textCleaner=CleanHTML), - CleanHTML('//td[@class="Contenu"]/table[2]')) - - obj_job_name = CleanText(u'//td[@class="Contenu"]/table[3]/tr/td[text()="Poste :"]/following-sibling::td', - replace=[(u'-- Indifférent --', u'')]) - - obj_contract_type = CleanText(CleanHTML(u'//td[@class="Contenu"]/table[3]/tr/td[text()="Contrat :"]/following-sibling::td', - default=u''), - replace=[(u'-- Indifférent --', u'')]) - - obj_pay = CleanText(u'//td[@class="Contenu"]/table[3]/tr/td[contains(text(), "Rémunération")]/following-sibling::td', - default=u'') - - obj_place = CleanText(u'//td[@class="Contenu"]/table[3]/tr/td[contains(text(), "Région")]/following-sibling::td', - default=u'', - replace=[(u'-- Indifférent --', u''), - (u'Lieu de travail : ', u'')]) - - -class SearchPage(HTMLPage): - @method - class iter_job_adverts(TableElement): - item_xpath = '//td[@class="Contenu"]/table/tr[position() > 1]' - head_xpath = '//td[@class="Contenu"]/table/tr/td[@class="ListeTitre"]/text()' - - col_date = u'Date' - col_societe = u'Société' - col_titre = u'Titre' - col_region = u'Région' - - class Item(ItemElement): - klass = BaseJobAdvert - - def obj_id(self): - return Regexp(CleanText('./a/@href'), - r'offre.php\?id=(.*)')(TableCell('titre')(self)[0]) - - obj_publication_date = Date(CleanText(TableCell('date'))) - obj_society_name = CleanText(TableCell('societe')) - obj_title = CleanText(TableCell('titre')) - obj_place = CleanText(TableCell('region')) - - def validate(self, obj): - if self.env['pattern'] is None or self.env['pattern'].upper() in obj.title.upper(): - return obj diff --git a/modules/lolix/test.py b/modules/lolix/test.py deleted file mode 100644 index de50b6f226..0000000000 --- a/modules/lolix/test.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright(C) 2013 Bezleputh -# -# This file is part of a weboob module. -# -# This weboob module is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This weboob module is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this weboob module. If not, see . - - -from weboob.tools.test import BackendTest -from weboob.tools.value import Value - - -class LolixTest(BackendTest): - MODULE = 'lolix' - - def setUp(self): - if not self.is_backend_configured(): - self.backend.config['region'] = Value(value='0') - self.backend.config['poste'] = Value(value='0') - self.backend.config['contrat'] = Value(value='0') - self.backend.config['limit_date'] = Value(value='0') - - def test_lolix_advanced_search(self): - l = list(self.backend.advanced_search_job()) - assert len(l) - advert = self.backend.get_job_advert(l[0].id, l[0]) - self.assertTrue(advert.url, 'URL for announce "%s" not found: %s' % (advert.id, advert.url)) -- GitLab