Desenvolvimento do OnionShare

Colaborando

O time OnionShare possuí um Keybase aberto para discutir o projeto, responder perguntas, compartilhar ideias e designs, e fazer planos para o desenvolvimento futuro. (E também uma forma de enviar mensagens diretas encriptadas de ponta-a-ponta para outros na comunidade OnionShare, como endereços OnionShare.) Para utilizar o Keybase, baixe-o em Keybase app, make an account, and join this team . Dentro do aplicativo, vá para “Teams”, clique em “Join a Team”, e digite “onionshare”.

O OnionShare também tem uma lista de e-mail para desenvolvedores e designers discutirem o projeto.

Código de Contribuição

O código fonte do OnionShare pode ser encontrado neste repositório Git: https://github.com/onionshare/onionshare

Se você gostaria de contribuir com o código OnionShare, junte-se à Keybase e faça perguntas sobre o que você está pensando em trabalhar. Você também deve rever todas as “questões abertas <https://github.com/onionshare/onionshare/issues>`_ no GitHub para ver se há alguma que você gostaria de resolver.

Quando você estiver pronto para contribuir com o código, abra um pull request no repositório GitHub e um dos mantenedores do projeto irá revisá-la e possivelmente fazer perguntas, solicitar alterações, rejeitá-lo ou mesclá-lo no projeto.

Iniciando o Desenvolvimento

O OnionShare é desenvolvido em Python. Para começar, clone o repositório Git em https://github.com/onionshare/onionshare/ e depois consulte o arquivo cli/README.md para aprender como configurar seu ambiente de desenvolvimento para a versão de linha de comando, e o arquivo ``desktop/README.md` para aprender como configurar seu ambiente de desenvolvimento para a versão gráfica.

Esses arquivos contêm as instruções técnicas e comandos necessários para instalar dependências para sua plataforma, e para executar o OnionShare a partir da árvore de origem.

Dicas de depuração

Modo detalhado

Ao desenvolver, é conveniente executar o OnionShare a partir de um terminal e adicionar o sinalizador `` –verbose`` (ou `` -v``) ao comando. Isso imprime muitas mensagens úteis para o terminal, como quando certos objetos são inicializados, quando ocorrem eventos (como botões clicados, configurações salvas ou recarregadas) e outras informações de depuração. Por exemplo:

$ 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

Você pode adicionar suas próprias mensagens de depuração executando o método `` Common.log`` de `` onionshare / common.py``. Por exemplo:

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

Isso pode ser útil ao aprender a cadeia de eventos que ocorrem ao usar o OnionShare ou o valor de certas variáveis antes e depois de serem manipuladas.

Somente Local

O Tor é lento e geralmente é conveniente pular a inicialização dos serviços onion durante o desenvolvimento. Você pode fazer isso com o sinalizador `` –local-only``. Por exemplo:

$ 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

Neste caso, você carrega a URL http://127.0.0.1:17641 em um navegador normal, como o Firefox, em vez de utilizar o Tor Browser. A chave privada não é realmente necessária no modo apenas local, portanto, você pode ignorá-la.

Contribuindo com traduções

Ajude a tornar o OnionShare mais fácil de usar e mais familiar e acolhedor para as pessoas, traduzindo-o no Hosted Weblate <https://hosted.weblate.org/projects/onionshare/> _. Sempre mantenha o “OnionShare” em letras latinas e use “OnionShare (localname)” se necessário.

Para ajudar a traduzir, crie uma conta Hosted Weblate e comece a contribuir.

Sugestões para sequências originais em inglês

Às vezes, as sequências originais em inglês estão erradas ou não correspondem entre o aplicativo e a documentação.

Melhorias na string de origem do arquivo adicionando @kingu ao seu comentário Weblate ou abrindo um issue do GitHub ou pull request. O último garante que todos os desenvolvedores upstream vejam a sugestão e possam modificar a string por meio dos processos usuais de revisão de código.

Estado das traduções

Aqui está o estado atual da tradução. Se você deseja iniciar uma tradução em um idioma que ainda não começou, escreva para a lista de discussão: onionshare-dev@lists.riseup.net

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