fix recursion

This commit is contained in:
2025-12-07 05:29:20 +00:00
parent a06b5a57a7
commit f525151c5e

View File

@@ -165,6 +165,12 @@ class KubraProvider(BaseProvider):
meta_url = self.config.get('meta_url')
if not meta_url: return []
# Fetch hexes ONCE per run, not in the recursive loop.
self.hex1, self.hex2 = self._get_hexes(meta_url)
if not self.hex1 or not self.hex2:
logger.error(f"[{self.name}] Could not get session hex keys. Aborting fetch for this provider.")
return []
quadkeys = self.config.get('quadkeys', [])
self.results = []
@@ -181,11 +187,8 @@ class KubraProvider(BaseProvider):
def _fetch_recursive(self, quadkeys, seen, zoom):
for q in quadkeys:
# --- CRITICAL FIX: Get fresh hexes on each recursive call ---
hex1, hex2 = self._get_hexes(self.config.get('meta_url'))
if not hex1 or not hex2:
logger.error(f"[{self.name}] Failed to get current hex values. Aborting fetch for this branch.")
continue
suffix = q[-3:][::-1]
url = f"{self.base_url_template}{suffix}/{self.hex1}/{self.hex2}/public/{self.config.get('layer')}/{q}.json"
try:
resp = self.session.get(url)
if not resp.ok: