A script to upload folders to Usenet with RAR, PAR2, and nyuu.
Project description
UpaPasta
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:
- Compactação: Cria um arquivo
.rara partir da pasta de origem. - Geração de Paridade: Gera arquivos de paridade
.par2para garantir a integridade dos dados. - Upload: Faz o upload dos arquivos
.rare.par2para o grupo de notícias Usenet especificado.
A ferramenta foi projetada para ser simples, eficiente e exibir barras de progresso em cada etapa do processo.
Funcionalidades
- Workflow Automatizado: Orquestra a compactação, geração de paridade e upload com um único comando.
- Flexibilidade: Permite pular etapas individuais (
--skip-rar,--skip-par,--skip-upload). - Customização: Opções para configurar a redundância dos arquivos PAR2, o tamanho dos posts e o assunto da postagem.
- Segurança: Carrega as credenciais da Usenet a partir de um arquivo
.envpara não expor informações sensíveis. - Limpeza Automática: Remove os arquivos
.rare.par2gerados após o upload (pode ser desativado com--keep-files). - Dry Run: Permite simular a execução sem criar ou enviar arquivos (
--dry-run).
Instalação
Via PyPI (Recomendado)
pip install upapasta
Para Desenvolvimento
-
Clone o repositório:
git clone https://github.com/franzopl/upapasta.git cd upapasta
-
Instale em modo editável: Recomenda-se o uso de um ambiente virtual (
venv).python3 -m venv .venv source .venv/bin/activate pip install -e .
-
Dependências Externas: Certifique-se de ter o
rar,parpar(oupar2) enyuuinstalados e disponíveis no seuPATH.
Configuração de Credenciais
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.
Para configurar manualmente:
- Copie o arquivo de exemplo
.env.examplepara~/.config/upapasta/.enve edite:mkdir -p ~/.config/upapasta cp .env.example ~/.config/upapasta/.env
- Edite o arquivo
~/.config/upapasta/.env:NNTP_HOST=news.your-provider.com NNTP_PORT=563 NNTP_USER=your-username NNTP_PASS=your-password USENET_GROUP=alt.binaries.test NNTP_SSL=true
Como Usar
Após a instalação via PyPI, use o comando upapasta diretamente.
Sintaxe:
upapasta /caminho/para/sua/pasta [OPÇÕES]
Exemplo básico:
upapasta /home/user/documentos/meu-arquivo-importante
Opções de Linha de Comando
| Opção | Descrição | Padrão |
|---|---|---|
folder |
(Obrigatório) A pasta que será enviada. | N/A |
--dry-run |
Simula a execução sem criar ou enviar arquivos. | Desativado |
-r, --redundancy |
Define a porcentagem de redundância para os arquivos PAR2. | 15 |
--backend |
Escolhe o backend para a geração de paridade (parpar ou par2). |
parpar |
--post-size |
Define o tamanho alvo para cada post na Usenet (ex: 20M, 700k). |
20M |
-s, --subject |
Define o assunto da postagem na Usenet. | Nome da pasta |
-g, --group |
Define o grupo de notícias (newsgroup) para o upload. | Valor definido no arquivo .env |
--skip-rar |
Pula a etapa de criação do arquivo .rar. |
Desativado |
--skip-par |
Pula a etapa de geração dos arquivos de paridade .par2. |
Desativado |
--skip-upload |
Pula a etapa de upload para a Usenet. | Desativado |
-f, --force |
Força a sobrescrita de arquivos .rar ou .par2 que já existam. |
Desativado |
--env-file |
Especifica um caminho alternativo para o arquivo .env. |
~/.config/upapasta/.env |
--keep-files |
Mantém os arquivos .rar e .par2 no disco após o upload. |
Desativado |
Estrutura do Projeto
upapasta/
├── upapasta/
│ ├── __init__.py # Inicialização do pacote
│ ├── main.py # Orquestrador principal
│ ├── makerar.py # Lógica para criar arquivos .rar
│ ├── makepar.py # Lógica para gerar arquivos .par2
│ └── upfolder.py # Lógica para fazer o upload
├── .env.example # Exemplo de arquivo de configuração
├── LICENSE # Licença MIT
├── MANIFEST.in # Arquivos extras para incluir no pacote
├── pyproject.toml # Configuração do pacote
├── tests/
│ └── test_upapasta.py # Testes unitários
├── INSTALL.md # Instruções de instalação detalhadas
└── README.md # Este arquivo
Licença
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.
Contribuição
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file upapasta-0.1.2.tar.gz.
File metadata
- Download URL: upapasta-0.1.2.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7db11cadf4c569e50fca74b97795520af6453e379c973a925e7ed3c72d5be2cc
|
|
| MD5 |
2f94a96b8602f0f1e3a4cb57c47827b4
|
|
| BLAKE2b-256 |
5e60cac8f1aee2f673820a6e8b8983eb5576edf7ed5f10410fef2c44e88cbffb
|
File details
Details for the file upapasta-0.1.2-py3-none-any.whl.
File metadata
- Download URL: upapasta-0.1.2-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc1a6a0b7f148d111cd40aada45f1bbce93c734bef134578c423cd062e01e0a1
|
|
| MD5 |
23d1eccc26237589e3a06f79d5e58c5a
|
|
| BLAKE2b-256 |
a54efa982e6f7c01862d1a9695d984251a84009fd47e7ccfb8cb6a093ed8156c
|