Utveckla OnionShare

Samarbeta

OnionShare har en öppen Keybase-grupp för att diskutera projektet, ställa frågor, dela idéer och designförslag och göra planer för framtida utveckling. (Det är också ett enkelt sätt att skicka ände-till-ände-krypterade direktmeddelanden till andra i OnionShare-communityn, som OnionShare-adresser.) Om du vill använda Keybase laddar du ned Keybase-appen <https://keybase.io/download>`_, skapar ett konto och går med i den här gruppen. I appen går du till ”Teams”, klickar på ”Join a Team” och skriver ”onionshare”.

OnionShare har också en e-postlista för utvecklare och designers att diskutera projektet.

Bidra med kod

OnionShare-källkod finns i denna Git-lagringsplats: https://github.com/onionshare/onionshare

Om du vill bidra med kod till OnionShare hjälper det att gå med i Keybase-gruppen och ställa frågor om vad du funderar på att arbeta med. Du bör också granska alla öppna ärenden på GitHub för att se om det finns några du vill ta itu med.

När du är redo att bidra med kod öppnar du en pull-begäran i GitHub-lagringsplatsen och en av projektunderhållarna granskar den och ställer eventuellt frågor, begär ändringar, avvisar den eller sammanfogar den till projektet.

Starta utveckling

OnionShare är utvecklat i Python. För att komma igång, klona Git-arkivet på https://github.com/onionshare/onionshare/ och läs sedan filen cli/README.md för att lära dig hur du konfigurerar din utvecklingsmiljö för kommandoradsversionen, och filen desktop/README.md för att lära dig hur du konfigurerar din utvecklingsmiljö för den grafiska versionen.

Dessa filer innehåller nödvändiga tekniska instruktioner och kommandon installerar beroenden för din plattform och för att köra OnionShare från källträdet.

Felsökningstips

Utförligt läge

När du utvecklar är det bekvämt att köra OnionShare från en terminal och lägga till flaggan ’’–verbose’’ (eller ’’-v’’ ) i kommandot. Detta skriver ut många användbara meddelanden till terminalen, till exempel när vissa objekt initieras, när händelser inträffar (som knappar klickade, inställningar som sparats eller laddats om) och annan felsökningsinformation. Till exempel:

$ 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

Du kan lägga till egna felsökningsmeddelanden genom att köra metoden ’’Common.log’’ från ’’onionshare/common.py’’. Till exempel:

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

Detta kan vara användbart när du lär dig kedjan av händelser som inträffar när du använder OnionShare, eller värdet på vissa variabler före och efter att de manipulerats.

Endast lokalt

Tor är långsam, och det är ofta bekvämt att hoppa över att starta onion-tjänster helt och hållet under utvecklingen. Du kan göra detta med flaggan ”–local-only”. Till exempel:

$ 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

I det här fallet laddar du URL:en http://127.0.0.1:17641 i en vanlig webbläsare som Firefox, istället för att använda Tor Browser. Den privata nyckeln behövs egentligen inte i lokalt läge, så du kan ignorera den.

Bidra med översättningar

Hjälp till att göra OnionShare lättare att använda och mer bekant och välkomnande för människor genom att översätta det på Hosted Weblate. Bevara alltid ”OnionShare” med latinska bokstäver och använd ”OnionShare (lokalt namn)” om det behövs.

Om du vill hjälpa till att översätta skapar du ett Hosted Weblate-konto och börjar bidra.

Förslag på engelska originalsträngar

Ibland är de ursprungliga engelska strängarna felaktiga eller matchar inte programmet och dokumentationen.

Begär förbättringar av källfilsträngen genom att lägga till @kingu i Weblate-kommentaren eller öppna ett GitHub-ärende eller en pull-begäran. Det senare säkerställer att alla utvecklare uppströms ser förslaget och kan eventuellt ändra strängen via de vanliga kodgranskningsprocesserna.

Översättningarnas status

Här är den aktuella översättningsstatusen. Om du vill starta en översättning på ett språk som ännu inte har startats skriver du till e-postlistan: onionshare-dev@lists.riseup.net

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