2025-08-22

positron

 

 L'esperienza dei giorni scorsi ha dato i suoi frutti. 

Ieri pomeriggio ho fatto una lunga camminata e mentre il mio cervello girava libero mi sono reso conto che se usiamo il python e webview per fare un clone di electron questo potrebbe essere crossplatform.

Arrivato a casa ho messo sotto chtGPT5 thinking che fin'ora aveva deluso e ho spiegato bene il progetto. In 2 ore avevo già positron funzionante. Per ora solo html/javascript ma nulla vieta di espanderlo verso nodejs react vue e soci vari.

Il programma si divide in 2 file python: lo script install, il classico requirements.txt (vuoto ha solo webview) e il readme.md fatto da chatgpt in inglese.

positron e make_bundle in linux si lanciano come eseguibili. 

Se lanciate positron se non esiste crea la cartella www con dentro un index minimo di benvenuto dopodiché ve la mostra nel webview.

make_bundle invece appende la cartella www e il suo contenuto con electron e uno script python di avvio che scompatta il pacchetto in /tmp (o in temp di windows) e lo esegue.

Il progetto è gia su github (https://github.com/vroby65/positron).

E' un progetto giovanissimo da testare e usare con cura. Non ho ancora messo qualcosa di complesso e non so nemmeno se è in grado di salvare o come si comporta con i cookie e con IndexedDB e local storage. Già oggi cambierò il benvenuto con qualcosa in inglese visto che ora è in italiano.

aggiornamento del 23 agosto 2025 

 ho inserito il salvataggio con la scelta. Questa feauture non è prevista in webview che salva sempre in Download (nel mio caso Scaricati). Ho risolto facendo un piccolo e leggerissimo demone che controlla se viene salvato un file e se si ti chiede dove vuoi metterlo. Ho anche risolto il problema della localstorage e indexedDB che scomparivano.
Siccome la cache è persistente ho pensato di usare il classico parametro ?nocache=date.time alla index.html. In questo modo è sempre resettata la cache ma purtroppo webview considera pagine diverse con indexedDB diversi. Ho risolto usando la dimensione della index.html come parametro. In questo modo il database è sempre lo stesso. Ora proverò a estenderlo verso nodejs. 

E come sempre a disposizione per suggerimenti e modifiche

Nessun commento:

Posta un commento