upapasta 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- upapasta-0.1.1/.env.example +68 -0
- upapasta-0.1.1/INSTALL.md +86 -0
- upapasta-0.1.1/LICENSE +21 -0
- upapasta-0.1.1/MANIFEST.in +4 -0
- upapasta-0.1.1/PKG-INFO +131 -0
- upapasta-0.1.1/README.md +112 -0
- upapasta-0.1.1/pyproject.toml +29 -0
- upapasta-0.1.1/setup.cfg +4 -0
- upapasta-0.1.1/tests/test_upapasta.py +1 -0
- upapasta-0.1.1/upapasta/__init__.py +1 -0
- upapasta-0.1.1/upapasta/main.py +589 -0
- upapasta-0.1.1/upapasta/makepar.py +267 -0
- upapasta-0.1.1/upapasta/makerar.py +135 -0
- upapasta-0.1.1/upapasta/upfolder.py +249 -0
- upapasta-0.1.1/upapasta.egg-info/PKG-INFO +131 -0
- upapasta-0.1.1/upapasta.egg-info/SOURCES.txt +17 -0
- upapasta-0.1.1/upapasta.egg-info/dependency_links.txt +1 -0
- upapasta-0.1.1/upapasta.egg-info/entry_points.txt +2 -0
- upapasta-0.1.1/upapasta.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Configuração de credenciais para upload em Usenet com nyuu
|
|
2
|
+
# Copie este arquivo para .env e preencha com seus dados reais
|
|
3
|
+
|
|
4
|
+
# *** Server Options ***
|
|
5
|
+
# Servidor NNTP (ex: sanews.blocknews.net)
|
|
6
|
+
NNTP_HOST=news.example.com
|
|
7
|
+
|
|
8
|
+
# Porta NNTP (119 = não-criptografado, 443/563 = TLS/SSL)
|
|
9
|
+
NNTP_PORT=563
|
|
10
|
+
|
|
11
|
+
# Usar SSL/TLS (true/false)
|
|
12
|
+
NNTP_SSL=true
|
|
13
|
+
|
|
14
|
+
# Ignorar erro de certificado (true/false)
|
|
15
|
+
NNTP_IGNORE_CERT=false
|
|
16
|
+
|
|
17
|
+
# Usuário NNTP
|
|
18
|
+
NNTP_USER=seu_usuario
|
|
19
|
+
|
|
20
|
+
# Senha NNTP
|
|
21
|
+
NNTP_PASS=sua_senha
|
|
22
|
+
|
|
23
|
+
# Número de conexões simultâneas
|
|
24
|
+
NNTP_CONNECTIONS=50
|
|
25
|
+
|
|
26
|
+
# *** Article Options ***
|
|
27
|
+
# Grupo Usenet para upload (ex: alt.binaries.boneless ou seu grupo preferido)
|
|
28
|
+
USENET_GROUP=alt.binaries.test
|
|
29
|
+
|
|
30
|
+
# Tamanho de artigo (ex: 700K, 750K)
|
|
31
|
+
ARTICLE_SIZE=700K
|
|
32
|
+
|
|
33
|
+
# *** Check Options ***
|
|
34
|
+
# Número de conexões para verificação de posts
|
|
35
|
+
CHECK_CONNECTIONS=5
|
|
36
|
+
|
|
37
|
+
# Número de tentativas de verificação
|
|
38
|
+
CHECK_TRIES=2
|
|
39
|
+
|
|
40
|
+
# Delay entre tentativas de verificação (ex: 5s, 30s)
|
|
41
|
+
CHECK_DELAY=5s
|
|
42
|
+
|
|
43
|
+
# Delay antes de retry de verificação
|
|
44
|
+
CHECK_RETRY_DELAY=30s
|
|
45
|
+
|
|
46
|
+
# Número de tentativas de verificação de post
|
|
47
|
+
CHECK_POST_TRIES=2
|
|
48
|
+
|
|
49
|
+
# *** NZB Options ***
|
|
50
|
+
# Caminho onde salvar arquivo .nzb (opcional)
|
|
51
|
+
NZB_OUT={filename}.nzb
|
|
52
|
+
|
|
53
|
+
# Sobrescrever arquivo .nzb existente (true/false)
|
|
54
|
+
NZB_OVERWRITE=true
|
|
55
|
+
|
|
56
|
+
# *** Other Options ***
|
|
57
|
+
# Ignorar erros (all/none)
|
|
58
|
+
SKIP_ERRORS=all
|
|
59
|
+
|
|
60
|
+
# Caminho para salvar posts que falharam (opcional)
|
|
61
|
+
DUMP_FAILED_POSTS=/home/francisco/nzb/fail/
|
|
62
|
+
|
|
63
|
+
# Modo silencioso (true/false)
|
|
64
|
+
QUIET=false
|
|
65
|
+
|
|
66
|
+
# *** UI Options ***
|
|
67
|
+
# Incluir timestamp nos logs (true/false)
|
|
68
|
+
LOG_TIME=true
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# Guia de Instalação — UpaPasta
|
|
2
|
+
|
|
3
|
+
Este guia irá ajudá-lo a instalar o **UpaPasta** e suas dependências.
|
|
4
|
+
|
|
5
|
+
## 1. Pré-requisitos
|
|
6
|
+
|
|
7
|
+
Antes de começar, você precisará ter os seguintes softwares instalados em seu sistema:
|
|
8
|
+
|
|
9
|
+
- **Python 3.8+**: A linguagem de programação na qual o UpaPasta é construído.
|
|
10
|
+
- **pip**: O instalador de pacotes do Python.
|
|
11
|
+
|
|
12
|
+
### Dependências de Sistema
|
|
13
|
+
|
|
14
|
+
O UpaPasta orquestra ferramentas de linha de comando. Você DEVE instalar as seguintes ferramentas e garantir que elas estejam no PATH do seu sistema:
|
|
15
|
+
|
|
16
|
+
- **`rar`**: O utilitário de compressão.
|
|
17
|
+
- *Debian/Ubuntu*: `sudo apt install rar`
|
|
18
|
+
- *macOS*: `brew install rar`
|
|
19
|
+
- **`nyuu`**: O uploader de Usenet.
|
|
20
|
+
- *Via npm*: `npm install -g nyuu`
|
|
21
|
+
- **`parpar`**: O gerador de paridade (recomendado, mais rápido que `par2`).
|
|
22
|
+
- *Via npm*: `npm install -g parpar`
|
|
23
|
+
|
|
24
|
+
Consulte o `requirements.txt` para mais detalhes e alternativas de instalação.
|
|
25
|
+
|
|
26
|
+
## 2. Instalação do UpaPasta
|
|
27
|
+
|
|
28
|
+
Com os pré-requisitos instalados, você pode instalar o UpaPasta como um comando de linha.
|
|
29
|
+
|
|
30
|
+
### Passo 1: Obtenha o Código-Fonte
|
|
31
|
+
|
|
32
|
+
Clone o repositório do UpaPasta para a sua máquina local usando Git (ou baixe o ZIP):
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git clone https://github.com/franzopl/upapasta.git
|
|
36
|
+
cd upapasta
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Passo 2: Instale o Pacote
|
|
40
|
+
|
|
41
|
+
Use `pip` para instalar o UpaPasta. Este comando irá criar o executável `upapasta` no seu sistema, permitindo que você o execute de qualquer lugar.
|
|
42
|
+
|
|
43
|
+
É altamente recomendável fazer isso em um ambiente virtual (`venv`).
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# Opcional, mas recomendado: criar e ativar um ambiente virtual
|
|
47
|
+
python3 -m venv venv
|
|
48
|
+
source venv/bin/activate # Em sistemas baseados em Unix (Linux, macOS)
|
|
49
|
+
|
|
50
|
+
# Instalar o UpaPasta
|
|
51
|
+
pip install .
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Para desenvolvimento, use o modo "editável", que permite que as alterações no código-fonte sejam refletidas imediatamente sem a necessidade de reinstalar:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
pip install -e .
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 3. Configuração e Uso
|
|
61
|
+
|
|
62
|
+
### Configuração de Credenciais
|
|
63
|
+
|
|
64
|
+
Na primeira vez que você executar o `upapasta`, o script irá verificar se as credenciais de Usenet estão configuradas. Se não estiverem, ele solicitará que você as insira e as salvará em um arquivo `.env` no diretório de trabalho atual.
|
|
65
|
+
|
|
66
|
+
### Executando o UpaPasta
|
|
67
|
+
|
|
68
|
+
Após a instalação, você pode usar o comando `upapasta` de qualquer lugar no seu terminal:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
upapasta /caminho/para/sua/pasta [OPÇÕES]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Exemplo:**
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
upapasta "/media/downloads/meu_projeto_secreto" --redundancy 20
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Para ver todas as opções disponíveis, use a flag `--help`:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
upapasta --help
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
É isso! Agora você está pronto para usar o UpaPasta.
|
upapasta-0.1.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Franzopl
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
upapasta-0.1.1/PKG-INFO
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: upapasta
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: A script to upload folders to Usenet with RAR, PAR2, and nyuu.
|
|
5
|
+
Author-email: Franzopl <franzopl@example.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/franzopl/upapasta
|
|
7
|
+
Project-URL: Repository, https://github.com/franzopl/upapasta.git
|
|
8
|
+
Project-URL: Issues, https://github.com/franzopl/upapasta/issues
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Classifier: Topic :: Communications :: File Sharing
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
15
|
+
Requires-Python: >=3.8
|
|
16
|
+
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Dynamic: license-file
|
|
19
|
+
|
|
20
|
+
# UpaPasta
|
|
21
|
+
|
|
22
|
+
**UpaPasta** é uma ferramenta de linha de comando (CLI) em Python para automatizar o processo de upload de pastas para a Usenet. O script orquestra um fluxo de trabalho completo, que inclui:
|
|
23
|
+
|
|
24
|
+
1. **Compactação**: Cria um arquivo `.rar` a partir da pasta de origem.
|
|
25
|
+
2. **Geração de Paridade**: Gera arquivos de paridade `.par2` para garantir a integridade dos dados.
|
|
26
|
+
3. **Upload**: Faz o upload dos arquivos `.rar` e `.par2` para o grupo de notícias Usenet especificado.
|
|
27
|
+
|
|
28
|
+
A ferramenta foi projetada para ser simples, eficiente e exibir barras de progresso em cada etapa do processo.
|
|
29
|
+
|
|
30
|
+
## Funcionalidades
|
|
31
|
+
|
|
32
|
+
- **Workflow Automatizado**: Orquestra a compactação, geração de paridade e upload com um único comando.
|
|
33
|
+
- **Flexibilidade**: Permite pular etapas individuais (`--skip-rar`, `--skip-par`, `--skip-upload`).
|
|
34
|
+
- **Customização**: Opções para configurar a redundância dos arquivos PAR2, o tamanho dos posts e o assunto da postagem.
|
|
35
|
+
- **Segurança**: Carrega as credenciais da Usenet a partir de um arquivo `.env` para não expor informações sensíveis.
|
|
36
|
+
- **Limpeza Automática**: Remove os arquivos `.rar` e `.par2` gerados após o upload (pode ser desativado com `--keep-files`).
|
|
37
|
+
- **Dry Run**: Permite simular a execução sem criar ou enviar arquivos (`--dry-run`).
|
|
38
|
+
|
|
39
|
+
## Instalação
|
|
40
|
+
|
|
41
|
+
### Via PyPI (Recomendado)
|
|
42
|
+
```bash
|
|
43
|
+
pip install upapasta
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Para Desenvolvimento
|
|
47
|
+
1. **Clone o repositório:**
|
|
48
|
+
```bash
|
|
49
|
+
git clone https://github.com/franzopl/upapasta.git
|
|
50
|
+
cd upapasta
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
2. **Instale em modo editável:**
|
|
54
|
+
Recomenda-se o uso de um ambiente virtual (`venv`).
|
|
55
|
+
```bash
|
|
56
|
+
python3 -m venv .venv
|
|
57
|
+
source .venv/bin/activate
|
|
58
|
+
pip install -e .
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
3. **Dependências Externas:**
|
|
62
|
+
Além das dependências do Python (nenhuma adicional), certifique-se de ter o `rar`, `parpar` (ou `par2`) e `nyuu` instalados e disponíveis no seu `PATH`.
|
|
63
|
+
|
|
64
|
+
### Configuração de Credenciais
|
|
65
|
+
O script usa um arquivo de configuração global em `~/.config/upapasta/.env` por padrão. Na primeira execução, será solicitado que você forneça as credenciais, que serão salvas automaticamente.
|
|
66
|
+
|
|
67
|
+
Para configurar manualmente:
|
|
68
|
+
- Copie o arquivo de exemplo `.env.example` para `~/.config/upapasta/.env` e edite:
|
|
69
|
+
```bash
|
|
70
|
+
mkdir -p ~/.config/upapasta
|
|
71
|
+
cp .env.example ~/.config/upapasta/.env
|
|
72
|
+
```
|
|
73
|
+
- Edite o arquivo `~/.config/upapasta/.env`:
|
|
74
|
+
```ini
|
|
75
|
+
NNTP_HOST=news.your-provider.com
|
|
76
|
+
NNTP_PORT=563
|
|
77
|
+
NNTP_USER=your-username
|
|
78
|
+
NNTP_PASS=your-password
|
|
79
|
+
USENET_GROUP=alt.binaries.test
|
|
80
|
+
NNTP_SSL=true
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Como Usar
|
|
84
|
+
|
|
85
|
+
O uso básico do `upapasta` envolve a execução do script `main.py`, passando o caminho da pasta que você deseja enviar.
|
|
86
|
+
|
|
87
|
+
**Sintaxe:**
|
|
88
|
+
```bash
|
|
89
|
+
python3 -m upapasta.main /caminho/para/sua/pasta [OPÇÕES]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
**Exemplo básico:**
|
|
93
|
+
```bash
|
|
94
|
+
python3 -m upapasta.main /home/user/documentos/meu-arquivo-importante
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Opções de Linha de Comando
|
|
98
|
+
|
|
99
|
+
| Opção | Descrição | Padrão |
|
|
100
|
+
| ------------------ | ------------------------------------------------------------------------------ | --------------------------------------- |
|
|
101
|
+
| `folder` | **(Obrigatório)** A pasta que será enviada. | N/A |
|
|
102
|
+
| `--dry-run` | Simula a execução sem criar ou enviar arquivos. | Desativado |
|
|
103
|
+
| `-r`, `--redundancy` | Define a porcentagem de redundância para os arquivos PAR2. | `15` |
|
|
104
|
+
| `--backend` | Escolhe o backend para a geração de paridade (`parpar` ou `par2`). | `parpar` |
|
|
105
|
+
| `--post-size` | Define o tamanho alvo para cada post na Usenet (ex: `20M`, `700k`). | `20M` |
|
|
106
|
+
| `-s`, `--subject` | Define o assunto da postagem na Usenet. | Nome da pasta |
|
|
107
|
+
| `-g`, `--group` | Define o grupo de notícias (newsgroup) para o upload. | Valor definido no arquivo `.env` |
|
|
108
|
+
| `--skip-rar` | Pula a etapa de criação do arquivo `.rar`. | Desativado |
|
|
109
|
+
| `--skip-par` | Pula a etapa de geração dos arquivos de paridade `.par2`. | Desativado |
|
|
110
|
+
| `--skip-upload` | Pula a etapa de upload para a Usenet. | Desativado |
|
|
111
|
+
| `-f`, `--force` | Força a sobrescrita de arquivos `.rar` ou `.par2` que já existam. | Desativado |
|
|
112
|
+
| `--env-file` | Especifica um caminho alternativo para o arquivo `.env`. | `.env` |
|
|
113
|
+
| `--keep-files` | Mantém os arquivos `.rar` e `.par2` no disco após o upload. | Desativado |
|
|
114
|
+
|
|
115
|
+
## Estrutura do Projeto
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
upapasta/
|
|
119
|
+
├── upapasta/
|
|
120
|
+
│ ├── main.py # Orquestrador principal
|
|
121
|
+
│ ├── makerar.py # Lógica para criar arquivos .rar
|
|
122
|
+
│ ├── makepar.py # Lógica para gerar arquivos .par2
|
|
123
|
+
│ └── upfolder.py # Lógica para fazer o upload
|
|
124
|
+
├── .env.example # Exemplo de arquivo de configuração
|
|
125
|
+
├── requirements.txt # Dependências do Python
|
|
126
|
+
└── README.md # Este arquivo
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Contribuição
|
|
130
|
+
|
|
131
|
+
Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma sugestão de melhoria, sinta-se à vontade para abrir uma *issue* ou enviar um *pull request*.
|
upapasta-0.1.1/README.md
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# UpaPasta
|
|
2
|
+
|
|
3
|
+
**UpaPasta** é uma ferramenta de linha de comando (CLI) em Python para automatizar o processo de upload de pastas para a Usenet. O script orquestra um fluxo de trabalho completo, que inclui:
|
|
4
|
+
|
|
5
|
+
1. **Compactação**: Cria um arquivo `.rar` a partir da pasta de origem.
|
|
6
|
+
2. **Geração de Paridade**: Gera arquivos de paridade `.par2` para garantir a integridade dos dados.
|
|
7
|
+
3. **Upload**: Faz o upload dos arquivos `.rar` e `.par2` para o grupo de notícias Usenet especificado.
|
|
8
|
+
|
|
9
|
+
A ferramenta foi projetada para ser simples, eficiente e exibir barras de progresso em cada etapa do processo.
|
|
10
|
+
|
|
11
|
+
## Funcionalidades
|
|
12
|
+
|
|
13
|
+
- **Workflow Automatizado**: Orquestra a compactação, geração de paridade e upload com um único comando.
|
|
14
|
+
- **Flexibilidade**: Permite pular etapas individuais (`--skip-rar`, `--skip-par`, `--skip-upload`).
|
|
15
|
+
- **Customização**: Opções para configurar a redundância dos arquivos PAR2, o tamanho dos posts e o assunto da postagem.
|
|
16
|
+
- **Segurança**: Carrega as credenciais da Usenet a partir de um arquivo `.env` para não expor informações sensíveis.
|
|
17
|
+
- **Limpeza Automática**: Remove os arquivos `.rar` e `.par2` gerados após o upload (pode ser desativado com `--keep-files`).
|
|
18
|
+
- **Dry Run**: Permite simular a execução sem criar ou enviar arquivos (`--dry-run`).
|
|
19
|
+
|
|
20
|
+
## Instalação
|
|
21
|
+
|
|
22
|
+
### Via PyPI (Recomendado)
|
|
23
|
+
```bash
|
|
24
|
+
pip install upapasta
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Para Desenvolvimento
|
|
28
|
+
1. **Clone o repositório:**
|
|
29
|
+
```bash
|
|
30
|
+
git clone https://github.com/franzopl/upapasta.git
|
|
31
|
+
cd upapasta
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
2. **Instale em modo editável:**
|
|
35
|
+
Recomenda-se o uso de um ambiente virtual (`venv`).
|
|
36
|
+
```bash
|
|
37
|
+
python3 -m venv .venv
|
|
38
|
+
source .venv/bin/activate
|
|
39
|
+
pip install -e .
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
3. **Dependências Externas:**
|
|
43
|
+
Além das dependências do Python (nenhuma adicional), certifique-se de ter o `rar`, `parpar` (ou `par2`) e `nyuu` instalados e disponíveis no seu `PATH`.
|
|
44
|
+
|
|
45
|
+
### Configuração de Credenciais
|
|
46
|
+
O script usa um arquivo de configuração global em `~/.config/upapasta/.env` por padrão. Na primeira execução, será solicitado que você forneça as credenciais, que serão salvas automaticamente.
|
|
47
|
+
|
|
48
|
+
Para configurar manualmente:
|
|
49
|
+
- Copie o arquivo de exemplo `.env.example` para `~/.config/upapasta/.env` e edite:
|
|
50
|
+
```bash
|
|
51
|
+
mkdir -p ~/.config/upapasta
|
|
52
|
+
cp .env.example ~/.config/upapasta/.env
|
|
53
|
+
```
|
|
54
|
+
- Edite o arquivo `~/.config/upapasta/.env`:
|
|
55
|
+
```ini
|
|
56
|
+
NNTP_HOST=news.your-provider.com
|
|
57
|
+
NNTP_PORT=563
|
|
58
|
+
NNTP_USER=your-username
|
|
59
|
+
NNTP_PASS=your-password
|
|
60
|
+
USENET_GROUP=alt.binaries.test
|
|
61
|
+
NNTP_SSL=true
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Como Usar
|
|
65
|
+
|
|
66
|
+
O uso básico do `upapasta` envolve a execução do script `main.py`, passando o caminho da pasta que você deseja enviar.
|
|
67
|
+
|
|
68
|
+
**Sintaxe:**
|
|
69
|
+
```bash
|
|
70
|
+
python3 -m upapasta.main /caminho/para/sua/pasta [OPÇÕES]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Exemplo básico:**
|
|
74
|
+
```bash
|
|
75
|
+
python3 -m upapasta.main /home/user/documentos/meu-arquivo-importante
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Opções de Linha de Comando
|
|
79
|
+
|
|
80
|
+
| Opção | Descrição | Padrão |
|
|
81
|
+
| ------------------ | ------------------------------------------------------------------------------ | --------------------------------------- |
|
|
82
|
+
| `folder` | **(Obrigatório)** A pasta que será enviada. | N/A |
|
|
83
|
+
| `--dry-run` | Simula a execução sem criar ou enviar arquivos. | Desativado |
|
|
84
|
+
| `-r`, `--redundancy` | Define a porcentagem de redundância para os arquivos PAR2. | `15` |
|
|
85
|
+
| `--backend` | Escolhe o backend para a geração de paridade (`parpar` ou `par2`). | `parpar` |
|
|
86
|
+
| `--post-size` | Define o tamanho alvo para cada post na Usenet (ex: `20M`, `700k`). | `20M` |
|
|
87
|
+
| `-s`, `--subject` | Define o assunto da postagem na Usenet. | Nome da pasta |
|
|
88
|
+
| `-g`, `--group` | Define o grupo de notícias (newsgroup) para o upload. | Valor definido no arquivo `.env` |
|
|
89
|
+
| `--skip-rar` | Pula a etapa de criação do arquivo `.rar`. | Desativado |
|
|
90
|
+
| `--skip-par` | Pula a etapa de geração dos arquivos de paridade `.par2`. | Desativado |
|
|
91
|
+
| `--skip-upload` | Pula a etapa de upload para a Usenet. | Desativado |
|
|
92
|
+
| `-f`, `--force` | Força a sobrescrita de arquivos `.rar` ou `.par2` que já existam. | Desativado |
|
|
93
|
+
| `--env-file` | Especifica um caminho alternativo para o arquivo `.env`. | `.env` |
|
|
94
|
+
| `--keep-files` | Mantém os arquivos `.rar` e `.par2` no disco após o upload. | Desativado |
|
|
95
|
+
|
|
96
|
+
## Estrutura do Projeto
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
upapasta/
|
|
100
|
+
├── upapasta/
|
|
101
|
+
│ ├── main.py # Orquestrador principal
|
|
102
|
+
│ ├── makerar.py # Lógica para criar arquivos .rar
|
|
103
|
+
│ ├── makepar.py # Lógica para gerar arquivos .par2
|
|
104
|
+
│ └── upfolder.py # Lógica para fazer o upload
|
|
105
|
+
├── .env.example # Exemplo de arquivo de configuração
|
|
106
|
+
├── requirements.txt # Dependências do Python
|
|
107
|
+
└── README.md # Este arquivo
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Contribuição
|
|
111
|
+
|
|
112
|
+
Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma sugestão de melhoria, sinta-se à vontade para abrir uma *issue* ou enviar um *pull request*.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61.0"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "upapasta"
|
|
7
|
+
version = "0.1.1"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="Franzopl", email="franzopl@example.com" },
|
|
10
|
+
]
|
|
11
|
+
description = "A script to upload folders to Usenet with RAR, PAR2, and nyuu."
|
|
12
|
+
readme = "README.md"
|
|
13
|
+
requires-python = ">=3.8"
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Programming Language :: Python :: 3",
|
|
16
|
+
"License :: OSI Approved :: MIT License",
|
|
17
|
+
"Operating System :: OS Independent",
|
|
18
|
+
"Topic :: Communications :: File Sharing",
|
|
19
|
+
"Development Status :: 4 - Beta",
|
|
20
|
+
"Intended Audience :: End Users/Desktop",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://github.com/franzopl/upapasta"
|
|
25
|
+
Repository = "https://github.com/franzopl/upapasta.git"
|
|
26
|
+
Issues = "https://github.com/franzopl/upapasta/issues"
|
|
27
|
+
|
|
28
|
+
[project.scripts]
|
|
29
|
+
upapasta = "upapasta.main:main"
|
upapasta-0.1.1/setup.cfg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Tests for upapasta
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# This file makes upapasta a Python package
|