Sviluppare OnionShare

Collaborare

OnionShare ha un team aperto su Keybase per parlare del progetto, porre domande, condividere idee e design, e pianificare sviluppi futuri. (Si tratta anche di un modo facile per mandare messaggi diretti protetti da crittografia end-to-end tra le persone che fanno parte della comunità di OnionShare, simile agli indirizzi OnionShare.) Per usare Keybase, scarica l”app Keybase, crea un account, e unisciti a questo team. All’interno dell’app, vai su «Teams», clicca «Join a Team», e scrivi «onionshare».

OnionShare ha anche una mailing list per sviluppatori e designer che vogliono discutere del progetto.

Contribuire al Codice

Il codice sorgente di OnionShare si trova in questo repository Git: https://github.com/onionshare/onionshare

Se desideri contribuire al codice di OnionShare, è utile entrare a far parte del team di Keybase e porre domande su ciò su cui stai pensando di lavorare. Dovresti anche esaminare tutte le questioni aperte <https://github.com/onionshare/onionshare/issues> _ su GitHub per vedere se ce ne sono alcune che vorresti affrontare.

Quando sei pronto per contribuire al codice, apri una richiesta pull nel repository GitHub e uno dei manutentori del progetto lo esaminerà ed eventualmente farà domande, richiederà modifiche, lo rifiuterà o lo inserirà nel progetto.

Avvio dello sviluppo

OnionShare è sviluppato in Python. Per iniziare, clona il repository Git da https://github.com/onionshare/onionshare/ e poi consulta il file cli/README.md per sapere come configurare il tuo ambiente di sviluppo per la versione a riga di comando e il file desktop/README.md per imparare come impostare il proprio ambiente di sviluppo per la versione grafica.

Questi file contengono le istruzioni tecniche e i comandi necessari per installare le dipendenze per la piattaforma e per eseguire OnionShare dall’albero dei sorgenti.

Suggerimenti per il debug

Modalità dettagliata

Durante lo sviluppo, è conveniente eseguire OnionShare da un terminale e aggiungere il flag --verbose (o -v) al comando. Questo stampa molti messaggi utili su terminale, come quando determinati oggetti vengono inizializzati, quando si verificano eventi (come i pulsanti cliccati, le impostazioni salvate o ricaricate) e altre informazioni di debug. Per esempio:

$ poetry run onionshare-cli -v ~/Documents/roms/nes/Q-bert\ \(USA\).nes
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.4.1                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

[Sep 09 2021 19:13:20] Settings.__init__
[Sep 09 2021 19:13:20] Settings.load
[Sep 09 2021 19:13:20] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=wordlist.txt
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[Sep 09 2021 19:13:20] ModeSettings.load: creating /home/user/.config/onionshare/persistent/polish-pushpin-hydrated.json
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.title = None
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.public = False
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.autostart_timer = 0
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: general.autostop_timer = 0
[Sep 09 2021 19:13:20] ModeSettings.set: updating polish-pushpin-hydrated: share.autostop_sharing = True
[Sep 09 2021 19:13:20] Web.__init__: is_gui=False, mode=share
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=static
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=templates
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[Sep 09 2021 19:13:20] Web.generate_static_url_path: new static_url_path is /static_gvvq2hplxhs2cekk665kagei6m
[Sep 09 2021 19:13:20] ShareModeWeb.init
[Sep 09 2021 19:13:20] Onion.__init__
[Sep 09 2021 19:13:20] Onion.connect
[Sep 09 2021 19:13:20] Settings.__init__
[Sep 09 2021 19:13:20] Settings.load
[Sep 09 2021 19:13:20] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:20] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpf3akiouy
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=torrc_template
[Sep 09 2021 19:13:20] Common.get_resource_path: filename=torrc_template, path=/home/user/code/onionshare/cli/onionshare_cli/resources/torrc_template
Connecting to the Tor network: 100% - Done
[Sep 09 2021 19:13:30] Onion.connect: Connected to tor 0.4.6.7
[Sep 09 2021 19:13:30] Settings.load
[Sep 09 2021 19:13:30] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[Sep 09 2021 19:13:30] OnionShare.__init__
[Sep 09 2021 19:13:30] OnionShare.start_onion_service
[Sep 09 2021 19:13:30] Onion.start_onion_service: port=17616
[Sep 09 2021 19:13:30] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: general.service_id = vucwsdmjt7szoc6pel3puqoxobiepdsowmqaq7pm7dzhembtzr2capad
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.private_key = +HfFALM4MtrNh59ibfMtRwDCIpfpWHIcNh3boahqrHh3TkLAyQvzKTm/y53KoYKSh0VU+m9DZY7DtZuCzkHkqQ==
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.client_auth_priv_key = G24TSNLIJX7YZM6R7P24AIGRU4N56ZFL7ENZVIDIWUEWY66YS3EQ
[Sep 09 2021 19:13:35] ModeSettings.set: updating polish-pushpin-hydrated: onion.client_auth_pub_key = GDY2EPXSS7Q3ELQJFIX2VELTVZ3QEYIGWIZ26CEDQKZJ5Y7VKI3A
Compressing files.
[Sep 09 2021 19:13:35] ShareModeWeb.init
[Sep 09 2021 19:13:35] ShareModeWeb.set_file_info_custom
[Sep 09 2021 19:13:35] ShareModeWeb.build_zipfile_list
[Sep 09 2021 19:13:35] Web.start: port=17616
* Running on http://127.0.0.1:17616/ (Press CTRL+C to quit)

Give this address and private key to the recipient:
http://vucwsdmjt7szoc6pel3puqoxobiepdsowmqaq7pm7dzhembtzr2capad.onion
Private key: G24TSNLIJX7YZM6R7P24AIGRU4N56ZFL7ENZVIDIWUEWY66YS3EQ

Press Ctrl+C to stop the server

Puoi aggiungere i tuoi messaggi di debug eseguendo il metodo Common.log da onionshare/common.py. Per esempio:

common.log('OnionShareGui', 'start_server', 'I ran here')

Ciò può essere utile quando si apprende la catena di eventi che si verificano quando si utilizza OnionShare o il valore di determinate variabili prima e dopo che vengono manipolate.

Solo in Locale

Tor è lento ed è spesso conveniente saltare del tutto l’avvio dei servizi onion durante lo sviluppo. Puoi farlo con il flag --local-only. Per esempio:

$ poetry run onionshare-cli --local-only --receive
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.4.1                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

* Running on http://127.0.0.1:17641/ (Press CTRL+C to quit)

Files sent to you appear in this folder: /home/user/OnionShare

Warning: Receive mode lets people upload files to your computer. Some files can potentially take control of your computer if you open them. Only open things from people you trust, or if you know what you are doing.

Give this address and private key to the sender:
http://127.0.0.1:17641
Private key: E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA

Press Ctrl+C to stop the server

In questo caso, vai all’URL ``http://127.0.0.1:17641`` in un normale browser web come Firefox, invece di usare Tor Browser. La chiave privata non è necessaria nella modalità in locale, per cui puoi ignorarla.

Contribuire alle Traduzioni

Contribuisci a rendere OnionShare più facile da usare e più familiare e accogliente per le persone traducendolo su Hosted Weblate. Mantieni sempre «OnionShare» in lettere latine e usa «OnionShare (localname)» se necessario.

Per aiutare a tradurre, crea un account Hosted Weblate e inizia a contribuire.

Suggerimenti per le Stringhe Originali in Inglese

A volte le stringhe inglesi originali sono sbagliate o non corrispondono tra l’applicazione e la documentazione.

Miglioramenti alla stringa sorgente del file aggiungendo @kingu al commento di Weblate o aprendo un problema su GitHub o una richiesta pull. Quest’ultimo garantisce che tutti gli sviluppatori a monte vedano il suggerimento e possano potenzialmente modificare la stringa tramite i consueti processi di revisione del codice.

Stato delle Traduzioni

Ecco lo stato attuale della traduzione. Se vuoi iniziare una traduzione in una lingua non ancora iniziata, scrivi alla mailing list: onionshare-dev@lists.riseup.net

https://hosted.weblate.org/widgets/onionshare/-/translations/multi-auto.svg