Files
komelt f1a16ddec0
Publish Firefox extension / publish (push) Successful in 4m21s
feat: add initial implementation of eSodisce / GURS batch helper extension
2026-10-05 14:42:50 +02:00

78 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# eSodisce / GURS batch helper
Neuradna Firefox WebExtension za pomoč pri ponavljajočem se izpolnjevanju obrazca eSodisce/GURS. Različica `0.2.0` uporablja številčno šifro katastrske občine (KO), ne njenega imena.
## Varnostni obseg
- Razširitev ne obravnava certifikatov, zasebnih ključev, gesel ali PIN-ov.
- Ne avtomatizira prijav in ne poskuša zaobiti opozoril, CAPTCHA ali varnostnih kontrol.
- Izrecno dejanje uporabnika za zagon je potrebno v trenutnem zavihku.
- Razširitev je omejena na `https://esodisce.si/*`.
- Razširitev ne uporablja Firefox Downloads API-ja in ne shranjuje PDF-datotek; samo izpolni obrazec in pritisne gumb `btn_pdf`.
- Vhodno datoteko hrani samo v lokalni shrambi razširitve; ne zbira in ne pošilja telemetrije ali podatkov razvijalcu.
## Razvojna/testna namestitev v Firefox
1. Odprite `about:debugging`.
2. Izberite **This Firefox** / **Ta Firefox**.
3. Kliknite **Load Temporary Add-on…**.
4. Izberite `manifest.json` v tej mapi oziroma v razširjenem ZIP-u.
5. Odprite ciljno stran `https://esodisce.si/evlozisce/javni_izpisi/list.html` in preverite, da je obrazec že dosegljiv.
6. Kliknite ikono razširitve; odpre se sidebar. Izberite TXT/CSV in zaženite obdelavo za trenutno aktivni zavihek v istem oknu.
Za spremembe datotek razširitev odstranite in jo znova naložite v `about:debugging`. Sidebar ostane odprt med uporabo strani in izbiro datoteke; zadnja uspešno prebrana datoteka se shrani v lokalno shrambo razširitve.
## Produkcijska namestitev in samodejne posodobitve
Produkcijske izdaje objavlja Gitea Actions v javnem repozitoriju [komelt/zemljiska-knjiga-vticnik](https://git.vahta.net/komelt/zemljiska-knjiga-vticnik). Za produkcijsko uporabo prenesite in namestite podpisani XPI iz javnega Gitea Release-a. Ne nameščajte ga prek `about:debugging`, ker je taka namestitev začasna in nima stabilnega mehanizma za samodejne posodobitve.
Za nastavitev repozitorija mora biti repozitorij javen; javno morajo biti berljivi tudi Release asseti in surove datoteke, zlasti `updates.json` na stabilnem naslovu. V Gitea omogočite Actions in nastavite vgrajeni Actions token tega opravila na pravice `contents: write` (za potisk veje `main` in Release API). **Ne ustvarjajte skrivnosti `GITEA_TOKEN`**: `secrets.GITEA_TOKEN` je vgrajeni token opravila, ne uporabniško določena skrivnost. Ustvarite samo naslednji skrivnosti:
- `AMO_JWT_ISSUER` – Mozilla AMO JWT issuer;
- `AMO_JWT_SECRET` – Mozilla AMO JWT secret.
Vsak potisk v `main` ustvari podpisano AMO unlisted izdajo, objavi XPI v javnem Release-u in posodobi `updates.json`; samodejni potisk samo te datoteke ne sproži nove izdaje. Razširitev uporablja `browser_specific_settings.gecko.update_url` do surove datoteke na veji `main`, zato Firefox preverja nove izdaje po namestitvi podpisanega XPI. Osnovna različica je v izvornem `manifest.json`, akcija pa ji samodejno doda številko zagona, na primer `0.2.0` postane `0.2.0.17`.
Za izvajanje je potreben registriran Gitea runner z oznako `ubuntu-latest`. Na runnerju morajo biti na voljo `git`, `bash`, Node.js/npm/npx, `jq`, `curl` in `sha256sum`. Strežnik `git.vahta.net` mora imeti HTTPS-certifikat, ki mu zaupata Firefox in runnerji; sicer namestitev ter preverjanje in samodejne posodobitve ne bodo delovali.
## Vhodna datoteka
Vsaka vrstica vsebuje dve polji: **številčno šifro KO** in **parcelno številko**. Podprta so ločila `;`, tabulator in vejica. Prvo polje mora biti pozitivno celo število; vodilne ničle se ohranijo kot del niza. Drugo polje ostane niz, zato so podprte oblike, kot je `901/29`.
```text
Šifra KO;Parcelna številka
2491;901/29
2491;901/30
0107;1820
```
Primeri v `example-input.txt` so samo formatni primeri. Ne predstavljajo preverjeno veljavnih parcelnih številk ali šifer KO. Prazne vrstice in vrstice, ki se začnejo z `#`, se preskočijo; prikazana glava se obravnava kot neveljavna vrstica.
## Kaj naredi
- poišče polji z dobesednima ID-jema `idZnakNep.katastrskaObcina.idsrcsifrant` in `idZnakNep.parcelnaStevilka`;
- v prvo polje neposredno vnese šifro KO ter sproži `input` in `change`;
- v drugo polje vnese parcelno številko;
- poišče gumb z dobesednim ID-jem `btn_pdf` in ga pritisne;
- ne prestreza, preimenuje ali shranjuje PDF-prenosov;
- podpira ročno potrjevanje pred vsakim zapisom ali samodejni način.
Če stran uporablja drug ID, iframe ali shadow DOM, bo potrebna prilagoditev. Trenutno je gumb namenoma izbran izključno z `document.getElementById('btn_pdf')`.
## Testni postopek
1. Zaženite `node --check` za `background.js`, `content-script.js` in `popup.js`.
2. Preverite, da je `manifest.json` veljaven JSON in da je različica `0.2.0`.
3. Najprej preverite en formatni testni zapis v načinu **ročno**.
4. V Firefox Developer Tools konzoli na strani `https://esodisce.si/evlozisce/javni_izpisi/list.html` preverite:
```javascript
document.getElementById('idZnakNep.katastrskaObcina.idsrcsifrant')
document.getElementById('idZnakNep.parcelnaStevilka')
document.getElementById('btn_pdf')
```
5. Preverite, da se šifra KO in parcelna številka neposredno vneseta v obe polji, brez zahteve po izbiri autocomplete rezultata.
6. Preverite, da se vrednosti vnesejo v obe polji in da se pritisne gumb `btn_pdf`, brez ustvarjanja ali preimenovanja PDF-datotek.
7. Preverite napačen format šifre KO, manjkajoče polje in prekinitev med batchom.
Brez testiranja na dejanski strani ni mogoče potrditi popolne združljivosti z vsemi različicami obrazca.