diff --git a/modules/lolix/__init__.py b/modules/lolix/__init__.py
deleted file mode 100644
index 824bc5cda31852d58377c021e1277da365a0cbf9..0000000000000000000000000000000000000000
--- 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 6092d6b8c99757ba6e184fe9db9704a810d664d3..0000000000000000000000000000000000000000
--- 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
Binary files a/modules/lolix/favicon.png and /dev/null differ
diff --git a/modules/lolix/job.py b/modules/lolix/job.py
deleted file mode 100644
index 33d4699087fbca007e2906da360aaf1fa0dd1ba5..0000000000000000000000000000000000000000
--- 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 1a83fb7e98763a7c358de929b53ddf66bbb5e30e..0000000000000000000000000000000000000000
--- 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 b394c12de1231f4ce4b2c3ee3fcd3ade47dea16d..0000000000000000000000000000000000000000
--- 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 de50b6f2264038b2b95967e3b81ce0beec56d30f..0000000000000000000000000000000000000000
--- 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))