diff --git a/newpower2.py b/newpower2.py index 4297ead..95f25be 100644 --- a/newpower2.py +++ b/newpower2.py @@ -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: