mirror of
https://github.com/josejuanmartinez/libreCatastro.git
synced 2024-07-06 15:22:28 +02:00
Fixes multiparcelas in addresses not being taken into account
This commit is contained in:
parent
40f35f13cc
commit
fef84a9f95
@ -74,11 +74,6 @@ class ScrapperXML(Scrapper):
|
||||
if not isinstance(parcelas, list):
|
||||
parcelas = [parcelas]
|
||||
for parcela in parcelas:
|
||||
if pictures:
|
||||
prov_num = parcela.dt.loine.cp
|
||||
city_num = parcela.dt.cmc
|
||||
if prov_num != DotMap() and city_num != DotMap():
|
||||
picture = cls.scrap_site_picture(prov_num, city_num, ''.join([pc1, pc2]))
|
||||
|
||||
cadaster = parcela.rc.pc1 if parcela.rc.pc1 != DotMap() else ''
|
||||
cadaster += parcela.rc.pc2 if parcela.rc.pc2 != DotMap() else ''
|
||||
@ -86,6 +81,12 @@ class ScrapperXML(Scrapper):
|
||||
cadaster += parcela.rc.cc1 if parcela.rc.cc1 != DotMap() else ''
|
||||
cadaster += parcela.rc.cc2 if parcela.rc.cc2 != DotMap() else ''
|
||||
|
||||
if pictures:
|
||||
prov_num = parcela.dt.loine.cp
|
||||
city_num = parcela.dt.cmc
|
||||
if prov_num != DotMap() and city_num != DotMap():
|
||||
picture = cls.scrap_site_picture(prov_num, city_num, cadaster)
|
||||
|
||||
parcela = cls.get_cadaster_entries_by_cadaster('', '', cadaster)
|
||||
cadaster_entry = CadasterEntryXML(parcela, x, y, picture)
|
||||
cadaster_entry.to_elasticsearch()
|
||||
@ -106,7 +107,7 @@ class ScrapperXML(Scrapper):
|
||||
while num_scrapping_fails > 0:
|
||||
try:
|
||||
cadaster = cls.get_cadaster_by_address(prov_name, city_name, tv, nv, counter)
|
||||
res = cls.process_xml_by_address(cadaster, prov_name, city_name, tv, nv, pictures)
|
||||
res = cls.process_xml_by_address(cadaster, prov_name, city_name, tv, nv, counter, pictures)
|
||||
if len(res) < 1:
|
||||
num_scrapping_fails -= 1
|
||||
else:
|
||||
@ -136,7 +137,7 @@ class ScrapperXML(Scrapper):
|
||||
sleep(config['sleep_time'])
|
||||
|
||||
@classmethod
|
||||
def process_xml_by_address(cls, numerero_map, prov_name, city_name, tv, nv, pictures=False):
|
||||
def process_xml_by_address(cls, numerero_map, prov_name, city_name, tv, nv, num, pictures=False):
|
||||
results = []
|
||||
if numerero_map.consulta_numerero.lerr.err.cod != DotMap():
|
||||
return results
|
||||
@ -161,7 +162,6 @@ class ScrapperXML(Scrapper):
|
||||
cadaster_num = nump.pc.pc1 + nump.pc.pc2
|
||||
|
||||
coords_map = cls.get_coords_from_cadaster(prov_name, city_name, cadaster_num)
|
||||
|
||||
lon = coords_map.consulta_coordenadas.coordenadas.coord.geo.xcen
|
||||
if lon == DotMap():
|
||||
lon = None
|
||||
@ -197,18 +197,29 @@ class ScrapperXML(Scrapper):
|
||||
if site_map.rc == DotMap():
|
||||
continue
|
||||
|
||||
cadaster = site_map.rc.pc1 + site_map.rc.pc2 + site_map.rc.car + site_map.rc.cc1 + site_map.rc.cc2
|
||||
sub_entry = cls.get_cadaster_entries_by_cadaster(prov_name, city_name, cadaster)
|
||||
# Multiparcela
|
||||
parcelas = entry_map.consulta_dnp.lrcdnp.rcdnp
|
||||
if not isinstance(parcelas, list):
|
||||
parcelas = [parcelas]
|
||||
for parcela in parcelas:
|
||||
cadaster = parcela.rc.pc1 if parcela.rc.pc1 != DotMap() else ''
|
||||
cadaster += parcela.rc.pc2 if parcela.rc.pc2 != DotMap() else ''
|
||||
cadaster += parcela.rc.car if parcela.rc.car != DotMap() else ''
|
||||
cadaster += parcela.rc.cc1 if parcela.rc.cc1 != DotMap() else ''
|
||||
cadaster += parcela.rc.cc2 if parcela.rc.cc2 != DotMap() else ''
|
||||
|
||||
prov_num = entry_map.consulta_dnp.lrcdnp.rcdnp.loine.cp
|
||||
city_num = entry_map.consulta_dnp.lrcdnp.rcdnp.loine.cm
|
||||
if pictures:
|
||||
prov_num = parcela.dt.loine.cp
|
||||
city_num = parcela.dt.cmc
|
||||
if prov_num != DotMap() and city_num != DotMap():
|
||||
picture = cls.scrap_site_picture(prov_num, city_num, cadaster)
|
||||
|
||||
if pictures and prov_num != DotMap() and city_num != DotMap():
|
||||
picture = cls.scrap_site_picture(prov_num, city_num, cadaster)
|
||||
parcela = cls.get_cadaster_entries_by_cadaster('', '', cadaster)
|
||||
cadaster_entry = CadasterEntryXML(parcela, lon, lat, picture)
|
||||
cadaster_entry.to_elasticsearch()
|
||||
|
||||
cadaster_entry = CadasterEntryXML(sub_entry, lon, lat, picture)
|
||||
results.append(cadaster_entry)
|
||||
cadaster_entry.to_elasticsearch()
|
||||
sleep(config['sleep_time'])
|
||||
results.append(cadaster_entry)
|
||||
|
||||
sleep(config['sleep_time'])
|
||||
|
||||
return results
|
||||
|
@ -124,11 +124,29 @@ class ScrapperXMLTests(unittest.TestCase):
|
||||
self.assertIsNotNone(cadaster_entry.from_elasticsearch())
|
||||
sleep(config['sleep_time'])
|
||||
|
||||
def test_multiparcela_creates_n_entries(self):
|
||||
def test_multiparcela_coord_creates_n_entries(self):
|
||||
lon = -9.2503
|
||||
lat = 42.9723
|
||||
self.assertEqual(len(ScrapperXML.scrap_coord(lon, lat, True)), 2)
|
||||
|
||||
def test_multiparcela_address_creates_n_entries(self):
|
||||
prov_name = u'MADRID'
|
||||
city_name = u'AJALVIR'
|
||||
tv = u'CL'
|
||||
nv = u'CANARIAS'
|
||||
num = 7
|
||||
cadaster = ScrapperXML.get_cadaster_by_address(prov_name, city_name, tv, nv, num)
|
||||
self.assertEqual(len(ScrapperXML.process_xml_by_address(cadaster, prov_name, city_name, tv, nv, False)), 8)
|
||||
|
||||
def test_multiparcela_address_creates_n_entries_2(self):
|
||||
prov_name = u'MADRID'
|
||||
city_name = u'AJALVIR'
|
||||
tv = u'CL'
|
||||
nv = u'CALVARIO'
|
||||
num = 38
|
||||
cadaster = ScrapperXML.get_cadaster_by_address(prov_name, city_name, tv, nv, num)
|
||||
self.assertEqual(len(ScrapperXML.process_xml_by_address(cadaster, prov_name, city_name, tv, nv, False)), 8)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Loading…
Reference in New Issue
Block a user