Розробка OnionShare

Співпраця

OnionShare має відкриту команду Keybase для обговорення проєкту, включно з питаннями, обміном ідеями та побудовою, плануванням подальшого розвитку. (Це також простий спосіб надсилати безпосередні захищені наскрізним шифруванням повідомлення іншим спільноти OnionShare, наприклад адреси OnionShare.) Щоб користуватися Keybase, потрібно завантажити застосунок Keybase app, створити обліковий запис та приєднайтеся до цієї команди. У застосунку перейдіть до «Команди», натисніть «Приєднатися до команди» та введіть «onionshare».

OnionShare також має список розсилання для розробників та дизайнерів для обговорення проєкту.

Внесок до кодової бази

OnionShare source code is to be found in this Git repository: https://github.com/onionshare/onionshare

If you’d like to contribute code to OnionShare, it helps to join the Keybase team and ask questions about what you’re thinking of working on. You should also review all of the open issues on GitHub to see if there are any you’d like to tackle.

Коли ви будете готові допомогти код, відкрийте «pull request» до репозиторію GitHub і один із супровідників проєкту перегляне його та, можливо, поставить питання, попросить змінити щось, відхилить його або об’єднає з проєктом.

Початок розробки

OnionShare is developed in Python. To get started, clone the Git repository at https://github.com/onionshare/onionshare/ and then consult the cli/README.md file to learn how to set up your development environment for the command-line version, and the desktop/README.md file to learn how to set up your development environment for the graphical version.

Ці файли містять необхідні технічні вказівки та команди встановлення залежностей для вашої платформи та запуску OnionShare з джерельного дерева.

Поради щодо зневадження

Детальний режим

Під час розробки зручно запустити OnionShare з термінала та додати до команди прапор --verbose (або -v). До термінала виводитиметься багато корисних повідомлень, наприклад, про ініціалізацію певних об’єктів, про події (наприклад, натискання кнопок, збереження або перезавантаження параметрів) та інші подробиці для зневаджування. Наприклад:

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

[May 10 2021 18:24:02] Settings.__init__
[May 10 2021 18:24:02] Settings.load
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt
[May 10 2021 18:24:02] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[May 10 2021 18:24:02] ModeSettings.load: creating /home/user/.config/onionshare/persistent/tattered-handgun-stress.json
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.title = None
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.public = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostart_timer = 0
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.autostop_timer = 0
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.legacy = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: general.client_auth = False
[May 10 2021 18:24:02] ModeSettings.set: updating tattered-handgun-stress: share.autostop_sharing = True
[May 10 2021 18:24:02] Web.__init__: is_gui=False, mode=share
[May 10 2021 18:24:02] Common.get_resource_path: filename=static
[May 10 2021 18:24:02] Common.get_resource_path: filename=static, path=/home/user/code/onionshare/cli/onionshare_cli/resources/static
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates
[May 10 2021 18:24:02] Common.get_resource_path: filename=templates, path=/home/user/code/onionshare/cli/onionshare_cli/resources/templates
[May 10 2021 18:24:02] Web.generate_static_url_path: new static_url_path is /static_4yxrx2mzi5uzkblklpzd46mwke
[May 10 2021 18:24:02] ShareModeWeb.init
[May 10 2021 18:24:02] Onion.__init__
[May 10 2021 18:24:02] Onion.connect
[May 10 2021 18:24:02] Settings.__init__
[May 10 2021 18:24:02] Settings.load
[May 10 2021 18:24:02] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:02] Onion.connect: tor_data_directory_name=/home/user/.config/onionshare/tmp/tmpw6u0nz8l
[May 10 2021 18:24:02] Common.get_resource_path: filename=torrc_template
[May 10 2021 18:24:02] 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
[May 10 2021 18:24:10] Onion.connect: Connected to tor 0.4.5.7
[May 10 2021 18:24:10] Settings.load
[May 10 2021 18:24:10] Settings.load: Trying to load /home/user/.config/onionshare/onionshare.json
[May 10 2021 18:24:10] Web.generate_password: saved_password=None
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt
[May 10 2021 18:24:10] Common.get_resource_path: filename=wordlist.txt, path=/home/user/code/onionshare/cli/onionshare_cli/resources/wordlist.txt
[May 10 2021 18:24:10] Web.generate_password: built random password: "tipping-colonize"
[May 10 2021 18:24:10] OnionShare.__init__
[May 10 2021 18:24:10] OnionShare.start_onion_service
[May 10 2021 18:24:10] Onion.start_onion_service: port=17645
[May 10 2021 18:24:10] Onion.start_onion_service: key_type=NEW, key_content=ED25519-V3
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: general.service_id = omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd
[May 10 2021 18:24:14] ModeSettings.set: updating tattered-handgun-stress: onion.private_key = 6PhomJCjlWicmOyAAe0wnQoEM3vcyHBivrRGDy0hzm900fW5ITDJ6iv2+tluLoueYj81MhmnYeTOHDm8UGOfhg==
Compressing files.
[May 10 2021 18:24:14] ShareModeWeb.init
[May 10 2021 18:24:14] ShareModeWeb.set_file_info_custom
[May 10 2021 18:24:14] ShareModeWeb.build_zipfile_list
[May 10 2021 18:24:14] Web.start: port=17645
* Running on http://127.0.0.1:17645/ (Press CTRL+C to quit)

Give this address to the recipient:
http://onionshare:tipping-colonize@omxjamkys6diqxov7lxru2upromdprxjuq3czdhen6hrshzd4sll2iyd.onion

Press Ctrl+C to stop the server

Ви можете додати власні повідомлення про зневадження, запустивши метод Common.log з onionshare/common.py. Наприклад:

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

Це може бути корисно для вивчення ланцюжка подій, що відбуваються під час користування OnionShare, або значень певних змінних до та після взаємодії з ними.

Лише локально

Tor повільний і часто під час розробки зручно взагалі знехтувати початковими службами onion. Ви можете зробити це за допомогою прапора --local-only. Наприклад:

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

* Running on http://127.0.0.1:17617/ (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 to the sender:
http://onionshare:ended-blah@127.0.0.1:17617

Press Ctrl+C to stop the server

У цьому випадку ви завантажуєте URL-адресу http://onionshare:train-system@127.0.0.1:17635 у звичайному переглядачі, як-от Firefox, замість користування Tor Browser.

Допомога з перекладами

Допоможіть зробити OnionShare простішим у користуванні та звичнішим та приємнішим для людей, переклавши його на Hosted Weblate. Завжди зберігайте «OnionShare» латинськими літерами та використовуйте «OnionShare (місцева назва)», якщо це необхідно.

Щоб допомогти перекласти, створіть обліковий запис на Hosted Weblate і почніть допомагати.

Пропозиції для оригінальних рядків англійською

Іноді оригінальні англійські рядки містять помилки або відрізняються у застосунку та документації.

Вдоскональте рядок джерела файлу, додавши @kingu до свого коментаря Weblate, або повідомте про проблему на GitHub, або надішліть запит на додавання. Останнє гарантує, що всі основні розробники, бачать пропозицію та, ймовірно, можуть змінити рядок за допомогою звичайних процесів перегляду коду.

Стан перекладів

Тут знаходиться поточний стан перекладу. Якщо ви хочете розпочати переклад відсутньою тут мовою, будь ласка, напишіть нам до списку розсилання: onionshare-dev@lists.riseup.net

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