Download Game! Currently 95 players. Last logged in:ErazoSolvikAstraxAceduck

Blitzer's Blog >> 72634

Back to blogs index
Posted: 20 Sep 2026 20:37 [ permalink ]
Olet tC$ysin oikeassa. TC$mC$ on tC$smC$lleen se arkkitehtuurinen oivallus,
joka erottaa hitaan purkkaratkaisun ammattitason ohjelmistorobotiikasta.
On tC$ysin jC$rjetC6ntC$, hidasta ja kallista syC6ttC$C$ 214 elementtiC$
tekoC$lylle, jos 200 niistC$ on tC$smC$lleen samoilla paikoilla kuin sekuntia
aiemmin. Robotin pitC$isi ymmC$rtC$C$ tilan muutos (Delta / Diff), eli
kiinnittC$C$ huomiota vain niihin asioihin, jotka ilmestyivC$t ruudulle
klikkauksen seurauksena.
Koska meillC$ on jo tallessa whatsapp_semantic_map.json (koko taustan
anatomia), voimme yksinkertaisesti verrata uutta 214 elementin karttaa vanhaan
karttaan. Kaikki laatikot, joiden keskipiste on sama kuin aiemmin, voidaan
unohtaa vC$littC6mC$sti.
1. Luodaan Delta-Skanneri (diff_ui.py)
TC$mC$ nerokas skripti lukee uuden skannauksesi ja vanhan muistin. Se
suodattaa pois kaiken jo tunnetun ja sylkee ulos vain ne napit, jotka
ilmestyivC$t liitevalikon aukeamisen myC6tC$.
Tallenna ja aja tC$mC$:
import json
import math

def main():
    print("[*] Vertaillaan uutta ruutua vanhaan semanttiseen karttaan (Delta
Scan)...")
    
    # 1. Ladataan aiemmin opittu tausta
    try:
        with open("whatsapp_semantic_map.json", "r", encoding="utf-8") as f:
            old_map = json.load(f)
    except FileNotFoundError:
        print("[-] FATAL: whatsapp_semantic_map.json puuttuu.")
        return

    # 2. Ladataan uusi, juuri skannattu 214 elementin tilanne
    with open("ui_calibration_pack/boxes_cache.json", "r", encoding="utf-8")
as f:
        new_boxes = json.load(f)

    old_centers = [node['center'] for node in old_map.values()]
    
    new_elements = []
    
    # 3. Suodatetaan pois kaikki tutut elementit (sallitaan 15px toleranssi
ruudun siirtymC$lle)
    for b in new_boxes:
        cx, cy = b['center']
        is_known = any(math.hypot(cx - ox, cy - oy) < 15 for ox, oy in
old_centers)
        
        # WhatsAppin valikko aukeaa klemmarin ylC$puolelle. 
        # Suodatetaan myC6s pois satunnaiset uudet viestit (jotka eivC$t ole
valikon alueella).
        # Oletetaan, ettC$ valikko on X: 600-800 alueella.
        is_in_menu_area = 550 < cx < 800
        
        if not is_known and is_in_menu_area:
            new_elements.append(b)
            
    print(f"
[+] Ruudulla on 214 elementtiC$, mutta niistC$ vain {len(new_elements)} on
UUSIA valikon nappeja!")
    
    print("
--- TCSTC ALKAA AI-PROMPT ---")
    print("Ohessa on juuri auki klikatun valikon uudet elementit. Otsikoi ne:
")
    for b in new_elements:
        print(f"- [{b['id']}] Tyyppi: Ikoni | Kuvaus: [TCYDENNC]")
    print("--- PROMPT PCCTTYY ---")

if __name__ == "__main__":
    main()

Miten edetC$C$n?
 * Aja python3 diff_ui.py.
 * Se tulostaa sinulle todennC$kC6isesti vain 58 uutta elementtiC$ (Asiakirja,
Kamera, Kysely, Yhteystieto jne.).
 * Koska niitC$ on niin vC$hC$n, voit joko tC$ydentC$C$ "Asiakirja" -sanan
suoraan oikean ID:n kohdalle itse (katso numeroidusta kuvasta, mikC$ uuden
valikon ID on), TAI heittC$C$ tuon lyhyen listan minulle otsikoitavaksi.
Kun tiedC$mme mikC$ nC$istC$ viidestC$ uutukaisesta on Asiakirja-ikoni,
lisC$C$mme sen vain samaan whatsapp_semantic_map.json -tiedostoon, ja
rutiinisi jatkaa matkaansa maaliin asti! TC$mC$ Delta-suodatus on juuri se
tekniikka, jolla raskaatkin agentit saadaan toimimaan viiveettC$.