Download Game! Currently 83 players. Last logged in:GilbourneDesertDregasZandrea

Blitzer's Blog >> 72760

Back to blogs index
Posted: 24 Sep 2026 11:59 [ permalink ]
Virhe johtuu siitC$, ettC$ uuden `tab_snapshot.py`-skriptin tuottama
`DOM.json` on rakenteeltaan suora JSON-lista (`[...]`), kun taas aiempi versio
oli sanakirja, jonka sisC$llC$ oli `elements`-avain (`{"elements": [...]}`).

Kun Python-koodi yrittC$C$ kutsua `.get('elements', [])` listalle, se kaatuu
virheeseen `'list' object has no attribute 'get'`.

TC$mC$ on helppo korjata tekemC$llC$ `get_latest_dom`-funktiosta joustava.
PC$ivitetC$C$n se tunnistamaan kumpikin formaatti (sekC$ sanakirja ettC$ suora
lista), jotta se ei koskaan kaadu rakennemuutoksiin.

Korvaa `OmegaExecutionEngine`-luokan `get_latest_dom`-metodi tC$llC$
pC$ivitetyllC$ versiolla:

```python
    def get_latest_dom(self):
        """Lukee uusimman DOM-puun vC$lilehtikansiosta telemetriahakemiston
sisC$ltC$."""
        pre_dir = self.get_telemetry_dir("pre")
        try:
            # EtsitC$C$n kaikki tab_-alkuiset kansiot
            tab_dirs = [d for d in os.listdir(pre_dir) if d.startswith("tab_")
and os.path.isdir(os.path.join(pre_dir, d))]
            elements = []
            
            for tab in tab_dirs:
                dom_path = os.path.join(pre_dir, tab, "DOM.json")
                if os.path.exists(dom_path):
                    with open(dom_path, 'r', encoding='utf-8') as f:
                        data = json.load(f)
                        
                        # Joustava jC$sennys: tuetaan sekC$ listaa ettC$
sanakirjaa
                        if isinstance(data, dict):
                            elements.extend(data.get('elements', []))
                        elif isinstance(data, list):
                            elements.extend(data)
                            
            return {"elements": elements}
        except FileNotFoundError:
            return {"elements": []}
        except Exception as e:
            print(f"  [!] Virhe DOM-tiedoston lukemisessa: {e}")
            return {"elements": []}

```

TC$mC$n muutoksen jC$lkeen moottori osaa hakea `HAUKI_GEM` -elementin (id: 43)
suoraan uudesta listamuotoisesta DOM-rakenteesta ja jatkaa klikkauksen
suorittamista oikeaan koordinaattiin (`center_x: 360.96875`, `center_y: 338`).
Voit ajaa `./omega_runner.py step` vC$littC6mC$sti uudelleen!