Rozwijanie OnionShare
Współpraca
OnionShare ma otwartą grupę Keybase, służącą dyskusji na temat projektu, zadaniu pytań, dzieleniu się pomysłami i projektami oraz tworzeniu planów na przyszły rozwój. (Jest to również łatwy sposób na wysyłanie zaszyfrowanych end-to-end wiadomości bezpośrednich do innych członków społeczności OnionShare, takich jak adresy OnionShare). Aby użyć Keybase, pobierz aplikację Keybase , załóż konto i dołącz do tego zespołu. W aplikacji przejdź do „Zespoły”, kliknij „Dołącz do zespołu” i wpisz „onionshare”.
OnionShare posiada również listę mailingową dla programistów i designerów do dyskusji nad projektem.
Dodawanie kodu
Kod źródłowy OnionShare można znaleźć w tym repozytorium Git: https://github.com/onionshare/onionshare
Jeśli chcesz wnieść swój wkład do kodu OnionShare, warto dołączyć do grupy Keybase by zadawać pytania dotyczące tego, nad czym zamierzasz pracować. Powinieneś również przejrzeć wszystkie otwarte problemy na GitHub, aby zobaczyć, czy są jakieś, którymi chciałbyś się zająć.
Gdy będziesz gotowy do wniesienia swojego wkładu do kodu, stwórz pull request w repozytorium GitHub, a jeden z opiekunów projektu przejrzy go i prawdopodobnie zada pytania, zażąda zmian, odrzuci go lub scali z projektem.
Rozpoczęcie programowania
OnionShare jest rozwijany przy użyciu Pythona. Aby rozpocząć pracę, sklonuj repozytorium Git z https://github.com/onionshare/onionshare/, a następnie zapoznaj się z plikiem cli/README.md
, aby dowiedzieć się, jak skonfigurować środowisko programistyczne dla wersji wiersza poleceń , oraz plik desktop/README.md
, aby dowiedzieć się, jak skonfigurować środowisko programistyczne dla wersji graficznej.
Pliki te zawierają niezbędne instrukcje i polecenia instalujące zależności dla Twojej platformy i uruchamiające OnionShare ze źródeł.
Wskazówki przy debugowaniu
Tryb rozszerzony
Podczas programowania wygodnie jest uruchomić OnionShare z terminala i dodać do polecenia flagę --verbose
(lub -v
). Powoduje to wyświetlenie wielu pomocnych komunikatów na terminalu, takich jak inicjowanie pewnych obiektów, występowanie zdarzeń (takich jak kliknięcie przycisków, zapisanie lub ponowne wczytanie ustawień) i inne informacje dotyczące debugowania. Na przykład:
$ 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
Możesz dodać własne komunikaty debugowania, uruchamiając metodę Common.log
z onionshare/common.py
. Na przykład:
common.log('OnionShareGui', 'start_server', 'I ran here')
Może to być przydatne podczas analizowania łańcucha zdarzeń występujących podczas korzystania z OnionShare lub wartości niektórych zmiennych przed i po manipulowaniu nimi.
Uruchamianie lokalne
Tor jest powolny i często wygodnie jest całkowicie pominąć uruchamianie usług cebulowych podczas programowania. Możesz to zrobić za pomocą flagi --local-only
. Na przykład:
$ 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
W tym przypadku ładujemy adres URL http://127.0.0.1:17641
w normalnej przeglądarce internetowej, takiej jak Firefox, zamiast używać przeglądarki Tor. Klucz prywatny nie jest właściwie potrzebny w trybie lokalnym, więc możesz go zignorować.
Wkład w tłumaczenia
Pomóż uczynić OnionShare łatwiejszym w użyciu, bardziej znanym i przyjaznym dla ludzi, tłumacząc go na Hosted Weblate. Zawsze zapisuj „OnionShare” łacińskimi literami i w razie potrzeby używaj „OnionShare (nazwa lokalna)”.
Aby pomóc w tłumaczeniu, załóż konto Hosted Weblate i zacznij współtworzyć.
Sugestie do oryginalnego tekstu angielskiego
Czasami oryginalne angielskie ciągi są nieprawidłowe lub nie pasują do aplikacji i dokumentacji.
Zgłoś poprawki tekstu źródłowego poprzez dodanie @kingu do komentarza Weblate albo otwarcie zgłoszenia w GitHub lub pull request. Ten ostatni zapewnia, że wszyscy deweloperzy wyższego szczebla zobaczą sugestię i mogą potencjalnie zmodyfikować tekst podczas rutynowego przeglądu kodu.
Postęp tłumaczeń
Oto aktualny stan tłumaczenia. Jeśli chcesz rozpocząć tłumaczenie w języku, dla którego tłumaczenie jeszcze się nie rozpoczęło, napisz na listę mailingową: onionshare-dev@lists.riseup.net