Download Game! Currently 81 players. Last logged in:MutaLouisianaEndureDesert

Blitzer's Blog >> 72619

Back to blogs index
Posted: 20 Sep 2026 18:19 [ permalink ]
TC$mC$ on klassinen "robotti teki tC$smC$lleen niin kuin kC$skettiin, ei niin
kuin tarkoitettiin" -tilanne! Analysoidaanpa tarkasti, mitC$ C$sken tapahtui:
MitC$ tapahtui?
Ohjelma klikkasi koordinaatteihin X:32, Y:966.
X-koordinaatti 32 tarkoittaa, ettC$ hiiri iski aivan ruudun vasempaan laitaan 
eli sivuvalikkoon (Sidebar), ei suinkaan keskelle ruutua tekstikentC$n
viereen!
Miksi nC$in kC$vi?
Koodissamme oli looginen sokea piste run_semantic_anchor -funktiossa. Se toimi
nC$in:
 * Se lC6ysi oikean tekstiankkurin ("Kirjoita viesti") esimerkiksi
koordinaatista Y:993.
 * Sitten se alkoi kC$ydC$ lC$pi ruudun ikoneita ja etsiC$ "paperclip"-sanaa.
 * Koska AST-jC$rjestelmC$ lukee aina Frame 1 (Sidebar) ennen Frame 2 (Main
Content), se tC6rmC$si listassa sivuvalikossa olevaan ikoniin (joka oli X:17,
Y:953 ja jonka CLIP oli jossain vaiheessa merkannut 60% varmuudella
klemmariksi).
 * Koodi katsoi sC$C$ntC6C$: "Onko Y-akselien ero alle 50px?" (993 - 953 =
40). KyllC$ on!
 * Koodi palautti tC$mC$n ensimmC$isen lC6ytC$mC$nsC$ ikonin heti, eikC$
tarkistanut X-akselin etC$isyyttC$ lainkaan.
Korjaus 1: Valitaan oikeasti lC$hin ikoni
MeidC$n pitC$C$ muuttaa logiikkaa niin, ettC$ koodi ei ota ensimmC$istC$
osumaa, vaan laskee oikean 2D-etC$isyyden (X ja Y) ankkuriin, ja valitsee sen
ikonin, joka on kaikkein lC$himpC$nC$ tekstikenttC$C$.
Korvaa routine_engine.py -tiedostossa vanha run_semantic_anchor -funktion
loppuosa (vaihe 3) tC$llC$ pC$ivitetyllC$ versiolla:
        # 3. EtsitC$C$n kohde-ikoni ankkurin lC$heltC$ (Lasketaan
absoluuttisesti LCHIN)
        target_icon = selector['target_icon']
        y_tol = selector.get('y_tolerance', 50)
        
        best_match = None
        min_dist = float('inf')
        
        for node in enriched_nodes:
            if node['type'] == 'IconNode' and target_icon in node['content']:
                nx, ny, nw, nh = node['box']
                ax, ay, aw, ah = anchor_node['box']
                
                # Varmistetaan ensin, ettC$ olemme edes samalla Y-rivillC$
                if abs(ny - ay) <= y_tol:
                    # Lasketaan euklidinen etC$isyys (suora viiva) ankkurista
ikoniin
                    dist = ((nx - ax)**2 + (ny - ay)**2)**0.5
                    
                    if dist < min_dist:
                        min_dist = dist
                        best_match = node
                        
        if best_match:
            print(f"     [+] LC6ytyi lC$hin '{target_icon}' ankkurin vierestC$
(EtC$isyys: {min_dist:.0f}px)!")
            nx, ny, nw, nh = best_match['box']
            center_x = nx + nw // 2
            center_y = ny + nh // 2
            
            # Leikataan kuva self-healing-toimintoa varten
            pad = 5
            crop_y1, crop_y2 = max(0, ny-pad), min(cv_img.shape[0], ny+nh+pad)
            crop_x1, crop_x2 = max(0, nx-pad), min(cv_img.shape[1], nx+nw+pad)
            icon_crop = cv_img[crop_y1:crop_y2, crop_x1:crop_x2]
            
            return (center_x, center_y), icon_crop
            
        print(f"     [-] Kohdetta '{target_icon}' ei lC6ytynyt ankkurin
lC$heltC$.")
        return None, None

Korjaus 2: Poista C$sken tallennettu virheellinen template!
Koska moottori on itsestC$C$n parantuva (self-healing), se kerkesi jo
tallentaa tuon vC$C$rC$n (X:32) sivuvalikon ikonin kuvan itselleen talteen!
Jos ajat ohjelman nyt uudestaan, se yrittC$C$ kC$yttC$C$ sitC$
pikselimC$tsC$ykseen.
Tuhoa se ajamalla pC$C$tteessC$:
rm /tmp/bot_templates/attach_btn.png

YlimC$C$rC$inen tarkistus (WhatsAppin muuttunut UI)
WhatsApp on viimeaikoina joillakin kC$yttC$jillC$ vaihtanut syC6ttC6kentC$n
vieressC$ olevan klemmarin Plussa-ikoniksi (+). Jos sinun ruudullasi on plussa
eikC$ klemmaria:
 * LisC$C$ master_parser.py -tiedoston ylC$reunan ICON_LABELS -listaan: "a
plus icon".
 * Vaihda whatsapp_routine.yaml -tiedostoon targetiksi: "a plus icon".
Aja koodi uudelleen, kun olet poistanut vC$C$rC$n kuvan ja pC$ivittC$nyt
logiikan. Nyt sen on matemaattisesti pakko valita juuri se ikoni, joka makaa
aivan "Kirjoita viesti" -tekstin kyljessC$!