def refreshHousingsList(self): name = self.ui.queriesList.itemText(self.ui.queriesList.currentIndex()) q = self.config.get('queries', name) if q is None: return q self.ui.housingsList.clear() self.ui.queriesList.setEnabled(False) self.ui.bookmarksButton.setEnabled(False) query = Query() query.type = int(q.get('type', 0)) query.cities = [] for c in q['cities']: city = City(c['id']) city.backend = c['backend'] city.name = c['name'] query.cities.append(city) query.area_min = int(q['area_min']) or None query.area_max = int(q['area_max']) or None query.cost_min = int(q['cost_min']) or None query.cost_max = int(q['cost_max']) or None query.nb_rooms = int(q['nb_rooms']) or None self.process = QtDo(self.weboob, self.addHousing, fb=self.addHousingEnd) self.process.do(self.app._do_complete, 20, (), 'search_housings', query)
def refreshHousingsList(self): name = self.ui.queriesList.itemText(self.ui.queriesList.currentIndex()) q = self.config.get('queries', name) if q is None: return q self.ui.housingsList.clear() self.ui.queriesList.setEnabled(False) self.ui.bookmarksButton.setEnabled(False) query = Query() query.type = int(q.get('type', 0)) query.cities = [] for c in q['cities']: city = City(c['id']) city.backend = c['backend'] city.name = c['name'] query.cities.append(city) query.area_min = int(q['area_min']) or None query.area_max = int(q['area_max']) or None query.cost_min = int(q['cost_min']) or None query.cost_max = int(q['cost_max']) or None query.nb_rooms = int(q['nb_rooms']) or None self.process = QtDo(self.weboob, self.addHousing, fb=self.addHousingEnd) self.process.do(self.app._do_complete, 20, None, 'search_housings', query)
def city(label): 'cf. https://github.com/laurentb/weboob/blob/master/modules/leboncoin/browser.py#L113' c = City() c.name = label if 'toute la ville' in label: c.id = label.split(' ')[0] + ' ' else: c.id = label.replace('(', '').replace(')', '') return c
def iter_cities(self): cities_list = self.doc if isinstance(self.doc, dict): cities_list = self.doc.values() for city in cities_list: city_obj = City() city_obj.id = city city_obj.name = city yield city_obj
def search_city(self, pattern): with self.browser: for categories in self.browser.search_geo(pattern): if categories['label'] != 'Villes': continue for city in categories['values']: if not 'value' in city: continue c = City(city['value']) c.name = unicode(city['label']) yield c
def addQuery(self, name=None): querydlg = QueryDialog(self.weboob, self) if name is not None: query = self.config.get('queries', name) querydlg.ui.nameEdit.setText(name) querydlg.ui.nameEdit.setEnabled(False) for c in query['cities']: city = City(c['id']) city.backend = c['backend'] city.name = c['name'] item = querydlg.buildCityItem(city) querydlg.ui.citiesList.addItem(item) querydlg.ui.typeBox.setCurrentIndex(int(query.get('type', 0))) querydlg.ui.areaMin.setValue(query['area_min']) querydlg.ui.areaMax.setValue(query['area_max']) querydlg.ui.costMin.setValue(query['cost_min']) querydlg.ui.costMax.setValue(query['cost_max']) querydlg.selectComboValue(querydlg.ui.nbRooms, query['nb_rooms']) if querydlg.exec_(): name = querydlg.ui.nameEdit.text() query = {} query['type'] = querydlg.ui.typeBox.currentIndex() query['cities'] = [] for i in xrange(len(querydlg.ui.citiesList)): item = querydlg.ui.citiesList.item(i) city = item.data(Qt.UserRole) query['cities'].append({ 'id': city.id, 'backend': city.backend, 'name': city.name }) query['area_min'] = querydlg.ui.areaMin.value() query['area_max'] = querydlg.ui.areaMax.value() query['cost_min'] = querydlg.ui.costMin.value() query['cost_max'] = querydlg.ui.costMax.value() try: query['nb_rooms'] = int( querydlg.ui.nbRooms.itemText( querydlg.ui.nbRooms.currentIndex())) except ValueError: query['nb_rooms'] = 0 self.config.set('queries', name, query) self.config.save() self.reloadQueriesList(name)
def addQuery(self, name=None): querydlg = QueryDialog(self.weboob, self) if name is not None: query = self.config.get('queries', name) querydlg.ui.nameEdit.setText(name) querydlg.ui.nameEdit.setEnabled(False) for c in query['cities']: city = City(c['id']) city.backend = c['backend'] city.name = c['name'] item = querydlg.buildCityItem(city) querydlg.ui.citiesList.addItem(item) querydlg.ui.typeBox.setCurrentIndex(int(query.get('type', 0))) querydlg.ui.areaMin.setValue(query['area_min']) querydlg.ui.areaMax.setValue(query['area_max']) querydlg.ui.costMin.setValue(query['cost_min']) querydlg.ui.costMax.setValue(query['cost_max']) querydlg.selectComboValue(querydlg.ui.nbRooms, query['nb_rooms']) if querydlg.exec_(): name = querydlg.ui.nameEdit.text() query = {} query['type'] = querydlg.ui.typeBox.currentIndex() query['cities'] = [] for i in xrange(len(querydlg.ui.citiesList)): item = querydlg.ui.citiesList.item(i) city = item.data(Qt.UserRole) query['cities'].append({'id': city.id, 'backend': city.backend, 'name': city.name}) query['area_min'] = querydlg.ui.areaMin.value() query['area_max'] = querydlg.ui.areaMax.value() query['cost_min'] = querydlg.ui.costMin.value() query['cost_max'] = querydlg.ui.costMax.value() try: query['nb_rooms'] = int(querydlg.ui.nbRooms.itemText(querydlg.ui.nbRooms.currentIndex())) except ValueError: query['nb_rooms'] = 0 self.config.set('queries', name, query) self.config.save() self.reloadQueriesList(name)
def search_city(self, pattern): with self.browser: for city in self.browser.search_geo(pattern): c = City(city['id']) c.name = unicode(city['name']) yield c