[leboncoin] allow to choose between owner adverts and agency adverts

This commit is contained in:
Bezleputh 2014-09-26 22:48:44 +02:00
commit fd5c565b3b
2 changed files with 10 additions and 5 deletions

View file

@ -25,7 +25,7 @@ from .pages import CityListPage, HousingListPage, HousingPage
class LeboncoinBrowser(PagesBrowser): class LeboncoinBrowser(PagesBrowser):
BASEURL = 'http://www.leboncoin.fr' BASEURL = 'http://www.leboncoin.fr'
city = URL('ajax/location_list.html\?city=(?P<city>.*)&zipcode=(?P<zip>.*)', CityListPage) city = URL('ajax/location_list.html\?city=(?P<city>.*)&zipcode=(?P<zip>.*)', CityListPage)
search = URL('(?P<type>.*)/offres/ile_de_france/occasions/\?ps=(?P<ps>.*)&pe=(?P<pe>.*)&ros=(?P<ros>.*)&location=(?P<location>.*)&sqs=(?P<sqs>.*)&sqe=(?P<sqe>.*)&ret=(?P<ret>.*)', search = URL('(?P<type>.*)/offres/ile_de_france/occasions/\?ps=(?P<ps>.*)&pe=(?P<pe>.*)&ros=(?P<ros>.*)&location=(?P<location>.*)&sqs=(?P<sqs>.*)&sqe=(?P<sqe>.*)&ret=(?P<ret>.*)&f=(?P<advert_type>.*)',
'(ventes_immobilieres|locations)/offres/ile_de_france/occasions/\?.*', '(ventes_immobilieres|locations)/offres/ile_de_france/occasions/\?.*',
HousingListPage) HousingListPage)
housing = URL('ventes_immobilieres/(?P<_id>.*).htm', HousingPage) housing = URL('ventes_immobilieres/(?P<_id>.*).htm', HousingPage)
@ -40,7 +40,7 @@ class LeboncoinBrowser(PagesBrowser):
return self.city.go(city=city, zip=zip_code).get_cities() return self.city.go(city=city, zip=zip_code).get_cities()
def search_housings(self, type, cities, nb_rooms, area_min, area_max, cost_min, cost_max, ret): def search_housings(self, type, cities, nb_rooms, area_min, area_max, cost_min, cost_max, ret, advert_type):
return self.search.go(location=cities, return self.search.go(location=cities,
ros=nb_rooms, ros=nb_rooms,
sqs=area_min, sqs=area_min,
@ -48,6 +48,7 @@ class LeboncoinBrowser(PagesBrowser):
ps=cost_min, ps=cost_min,
pe=cost_max, pe=cost_max,
type=type, type=type,
advert_type=advert_type,
ret=ret).get_housing_list() ret=ret).get_housing_list()
def get_housing(self, _id): def get_housing(self, _id):

View file

@ -18,9 +18,9 @@
# along with weboob. If not, see <http://www.gnu.org/licenses/>. # along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.backend import Module from weboob.tools.backend import Module, BackendConfig
from weboob.capabilities.housing import CapHousing, Query, Housing, HousingPhoto from weboob.capabilities.housing import CapHousing, Query, Housing, HousingPhoto
from weboob.tools.value import Value
from .browser import LeboncoinBrowser from .browser import LeboncoinBrowser
@ -37,6 +37,9 @@ class LeboncoinModule(Module, CapHousing):
BROWSER = LeboncoinBrowser BROWSER = LeboncoinBrowser
CONFIG = BackendConfig(Value('advert_type', label='Advert type',
choices={'c': 'Agency', 'p': 'Owner', 'a': 'All'}, default='a'))
RET = {Query.HOUSE_TYPES.HOUSE: '1', RET = {Query.HOUSE_TYPES.HOUSE: '1',
Query.HOUSE_TYPES.APART: '2', Query.HOUSE_TYPES.APART: '2',
Query.HOUSE_TYPES.LAND: '3', Query.HOUSE_TYPES.LAND: '3',
@ -85,6 +88,7 @@ class LeboncoinModule(Module, CapHousing):
return self.browser.search_housings(_type, ','.join(cities), nb_rooms, return self.browser.search_housings(_type, ','.join(cities), nb_rooms,
area_min, area_max, area_min, area_max,
cost_min, cost_max, '&ret='.join(ret)) cost_min, cost_max, '&ret='.join(ret),
self.config['advert_type'].get())
OBJECTS = {Housing: fill_housing, HousingPhoto: fill_photo} OBJECTS = {Housing: fill_housing, HousingPhoto: fill_photo}