Việc phát triển OnionShare

Việc cộng tác

OnionShare có một nhóm team Keybase mở để thảo luận về dự án, đặt các câu hỏi, chia sẻ ý tưởng và thiết kế, cũng như lập kế hoạch phát triển trong tương lai. (Đây cũng là một cách dễ dàng để gửi tin nhắn trực tiếp được mã hóa hai đầu end-to-end cho những người khác trong cộng đồng OnionShare, chẳng hạn như các địa chỉ OnionShare.) Để sử dụng Keybase, hãy tải xuống Ứng dụng Keybase , tạo một tài khoản, và tham gia nhóm team này. Trong ứng dụng, đi tới "Nhóm team", nhấp vào "Tham gia một nhóm team", và nhập "onionshare".

OnionShare cũng có một danh sách thư báo cho các lập trình viên và các nhà thiết kế để thảo luận dự án.

Việc đóng góp Mã Code

Mã nguồn của OnionShare có thể được tìm thấy trong kho lưu trữ Git này: https://github.com/onionshare/onionshare

Nếu bạn muốn đóng góp mã code cho OnionShare, bạn có thể giúp đỡ bằng cách tham gia nhóm team Keybase và đặt các câu hỏi về những gì bạn đang nghĩ đến hoặc đang làm. Bạn cũng nên xem lại tất cả các vấn đề mở trên GitHub để xem có vấn đề nào bạn muốn giải quyết không.

Khi bạn đã sẵn sàng đóng góp mã code, hãy mở một yêu cầu kéo trong kho lưu trữ GitHub và một trong những bảo trì viên dự án sẽ xem xét nó và có thể đặt các câu hỏi, yêu cầu các thay đổi, từ chối nó, hoặc hợp nhất nó vào dự án.

Bắt đầu việc phát triển

OnionShare được phát triển bằng Python. Để bắt đầu, hãy sao chép clone kho lưu trữ Git tại https://github.com/onionshare/onionshare/ rồi tham khảo tập tin cli/README.md để tìm hiểu cách thiết lập môi trường phát triển của bạn cho phiên bản dòng lệnh command, và tập tin desktop/README.md để tìm hiểu cách thiết lập môi trường phát triển của bạn cho phiên bản đồ họa.

Các tập tin đó chứa các hướng dẫn kỹ thuật cần thiết và các lệnh command cài đặt phụ thuộc cho nền tảng của bạn, và để chạy OnionShare từ cây nguồn source tree.

Các mẹo xử lý lỗi bug

Chế độ dài dòng Verbose

Khi phát triển, sẽ thuận tiện hơn khi chạy OnionShare từ một terminal và thêm cờ flag --verbose (hoặc -v) vào lệnh command. Thao tác này sẽ in ra rất nhiều thông báo hữu ích tới terminal, chẳng hạn như khi một số đối tượng được khởi tạo, khi các sự kiện xảy ra (như các nút được bấm, cài đặt được sao lưu hoặc tải lại), và các thông tin xử lý lỗi bug khác. Ví dụ:

$ 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

Bạn có thể thêm thông báo gỡ lỗi bug của riêng mình bằng cách chạy phương thức Common.log từ onionshare/common.py. Ví dụ:

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

Điều này có thể là hữu ích khi tìm hiểu chuỗi các sự kiện xảy ra khi sử dụng OnionShare, hoặc giá trị của các biến nhất định trước và sau khi chúng được thao tác.

Chỉ mỗi cục bộ

Tor chậm chạp, và thường thuận tiện khi bỏ qua việc bắt đầu các dịch vụ onion hoàn toàn trong quá trình phát triển. Bạn có thể làm điều này với cờ flag --local-only. Ví dụ:

$ 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

Trong trường hợp này, bạn tải URL http://127.0.0.1:17641 trong một trình duyệt web thông thường như Firefox, thay vì sử dụng Trình duyệt Tor Browser. Khóa key riêng tư không thực sự cần thiết trong chế độ chỉ cục bộ, vì vậy bạn có thể bỏ qua nó.

Đóng góp bản dịch

Giúp làm cho OnionShare dễ sử dụng hơn, quen thuộc hơn và thân thiện hơn với mọi người bằng cách phiên dịch nó trên Hosted Weblate. Luôn luôn giữ "OnionShare" bằng chữ cái La-tinh, và sử dụng "OnionShare (tên địa phương)" nếu cần thiết.

Để hỗ trợ phiên dịch, hãy tạo một tài khoản Hosted Weblate và bắt đầu đóng góp.

Các gợi ý cho chuỗi gốc tiếng Anh

Đôi khi các chuỗi gốc tiếng Anh bị sai sót, hoặc không khớp giữa ứng dụng và tài liệu.

Cải thiện chuỗi nguồn tập tin bằng cách thêm @kingu vào nhận xét Weblate của bạn, hoặc mở một vấn đề GitHub hoặc kéo yêu cầu. Lựa chọn sau đảm bảo tất cả các lập trình viên ngược dòng upstream có thể nhìn thấy đề xuất, và có khả năng sửa đổi chuỗi thông qua các quy trình xem xét mã code thông thường.

Tình trạng các bản dịch

Đây là tình trạng bản dịch hiện tại. Nếu bạn muốn bắt đầu dịch bằng một ngôn ngữ chưa được bắt đầu, vui lòng viết thư vào danh sách thư báo: onionshare-dev@lists.riseup.net

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