78 lines
5.4 KiB
Markdown
78 lines
5.4 KiB
Markdown
# 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.
|