totelegram 0.1.0__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.
- totelegram-0.1.0/PKG-INFO +195 -0
- totelegram-0.1.0/README.md +170 -0
- totelegram-0.1.0/pyproject.toml +10 -0
- totelegram-0.1.0/setup.cfg +4 -0
- totelegram-0.1.0/setup.py +34 -0
- totelegram-0.1.0/tests/test_auditor.py +453 -0
- totelegram-0.1.0/tests/test_captions.py +114 -0
- totelegram-0.1.0/tests/test_cli_upload_flow.py +327 -0
- totelegram-0.1.0/tests/test_cli_views.py +187 -0
- totelegram-0.1.0/tests/test_command_config.py +141 -0
- totelegram-0.1.0/tests/test_concurrency.py +311 -0
- totelegram-0.1.0/tests/test_discovery.py +211 -0
- totelegram-0.1.0/tests/test_downloader.py +87 -0
- totelegram-0.1.0/tests/test_migration.py +164 -0
- totelegram-0.1.0/tests/test_models.py +352 -0
- totelegram-0.1.0/tests/test_partitioner.py +122 -0
- totelegram-0.1.0/tests/test_pipeline.py +607 -0
- totelegram-0.1.0/tests/test_rehydration.py +374 -0
- totelegram-0.1.0/tests/test_relocator.py +223 -0
- totelegram-0.1.0/tests/test_snapshot.py +335 -0
- totelegram-0.1.0/tests/test_stream.py +103 -0
- totelegram-0.1.0/tests/test_target_resolution.py +342 -0
- totelegram-0.1.0/tests/test_telegram_account_lock.py +333 -0
- totelegram-0.1.0/tests/test_ttape.py +124 -0
- totelegram-0.1.0/tests/test_uploader.py +224 -0
- totelegram-0.1.0/tests_real/__init__.py +0 -0
- totelegram-0.1.0/tests_real/base.py +311 -0
- totelegram-0.1.0/tests_real/setup_test_env.py +337 -0
- totelegram-0.1.0/tests_real/test_real_file_pipeline.py +149 -0
- totelegram-0.1.0/tests_real/test_real_resumption.py +240 -0
- totelegram-0.1.0/tests_real/test_real_tape_restore.py +206 -0
- totelegram-0.1.0/totelegram/__init__.py +2 -0
- totelegram-0.1.0/totelegram/cli/__init__.py +0 -0
- totelegram-0.1.0/totelegram/cli/__main__.py +149 -0
- totelegram-0.1.0/totelegram/cli/commands/__init__.py +0 -0
- totelegram-0.1.0/totelegram/cli/commands/auth.py +446 -0
- totelegram-0.1.0/totelegram/cli/commands/backup.py +53 -0
- totelegram-0.1.0/totelegram/cli/commands/config.py +308 -0
- totelegram-0.1.0/totelegram/cli/commands/download.py +185 -0
- totelegram-0.1.0/totelegram/cli/commands/forward.py +172 -0
- totelegram-0.1.0/totelegram/cli/commands/index.py +176 -0
- totelegram-0.1.0/totelegram/cli/commands/prune.py +133 -0
- totelegram-0.1.0/totelegram/cli/commands/send.py +48 -0
- totelegram-0.1.0/totelegram/cli/commands/snapshot.py +145 -0
- totelegram-0.1.0/totelegram/cli/commands/target.py +107 -0
- totelegram-0.1.0/totelegram/cli/logic.py +638 -0
- totelegram-0.1.0/totelegram/cli/observer.py +361 -0
- totelegram-0.1.0/totelegram/cli/state.py +82 -0
- totelegram-0.1.0/totelegram/cli/ui.py +241 -0
- totelegram-0.1.0/totelegram/cli/views/__init__.py +1 -0
- totelegram-0.1.0/totelegram/cli/views/errors.py +47 -0
- totelegram-0.1.0/totelegram/cli/views/ledger.py +106 -0
- totelegram-0.1.0/totelegram/cli/views/settings.py +325 -0
- totelegram-0.1.0/totelegram/cli/views/snapshots.py +250 -0
- totelegram-0.1.0/totelegram/cli/views/upload.py +208 -0
- totelegram-0.1.0/totelegram/common/__init__.py +0 -0
- totelegram-0.1.0/totelegram/common/files.py +56 -0
- totelegram-0.1.0/totelegram/common/helpers.py +58 -0
- totelegram-0.1.0/totelegram/common/streams.py +61 -0
- totelegram-0.1.0/totelegram/concurrency.py +660 -0
- totelegram-0.1.0/totelegram/database.py +169 -0
- totelegram-0.1.0/totelegram/discovery.py +403 -0
- totelegram-0.1.0/totelegram/engine/__init__.py +5 -0
- totelegram-0.1.0/totelegram/engine/downloader.py +539 -0
- totelegram-0.1.0/totelegram/engine/events.py +208 -0
- totelegram-0.1.0/totelegram/engine/factory.py +125 -0
- totelegram-0.1.0/totelegram/engine/forwarder.py +252 -0
- totelegram-0.1.0/totelegram/engine/pipeline.py +496 -0
- totelegram-0.1.0/totelegram/engine/planner.py +127 -0
- totelegram-0.1.0/totelegram/engine/relocator.py +142 -0
- totelegram-0.1.0/totelegram/engine/uploader.py +149 -0
- totelegram-0.1.0/totelegram/exceptions.py +312 -0
- totelegram-0.1.0/totelegram/identity.py +613 -0
- totelegram-0.1.0/totelegram/logging_config.py +72 -0
- totelegram-0.1.0/totelegram/migration.py +297 -0
- totelegram-0.1.0/totelegram/models.py +817 -0
- totelegram-0.1.0/totelegram/packaging/__init__.py +4 -0
- totelegram-0.1.0/totelegram/packaging/auditor.py +480 -0
- totelegram-0.1.0/totelegram/packaging/coordinates.py +52 -0
- totelegram-0.1.0/totelegram/packaging/importer.py +1047 -0
- totelegram-0.1.0/totelegram/packaging/indexer.py +118 -0
- totelegram-0.1.0/totelegram/packaging/partitioner.py +109 -0
- totelegram-0.1.0/totelegram/packaging/publisher.py +116 -0
- totelegram-0.1.0/totelegram/packaging/schemas.py +85 -0
- totelegram-0.1.0/totelegram/packaging/snapshot.py +209 -0
- totelegram-0.1.0/totelegram/packaging/ttape.py +266 -0
- totelegram-0.1.0/totelegram/schemas.py +238 -0
- totelegram-0.1.0/totelegram/stream.py +31 -0
- totelegram-0.1.0/totelegram/telegram/__init__.py +0 -0
- totelegram-0.1.0/totelegram/telegram/access.py +233 -0
- totelegram-0.1.0/totelegram/telegram/auth.py +45 -0
- totelegram-0.1.0/totelegram/telegram/captions.py +166 -0
- totelegram-0.1.0/totelegram/telegram/client.py +155 -0
- totelegram-0.1.0/totelegram/telegram/patches.py +464 -0
- totelegram-0.1.0/totelegram/telegram/resolver.py +286 -0
- totelegram-0.1.0/totelegram/telegram/search.py +131 -0
- totelegram-0.1.0/totelegram/telegram/types.py +137 -0
- totelegram-0.1.0/totelegram/telegram/utils.py +77 -0
- totelegram-0.1.0/totelegram/types.py +105 -0
- totelegram-0.1.0/totelegram/utils.py +78 -0
- totelegram-0.1.0/totelegram.egg-info/PKG-INFO +195 -0
- totelegram-0.1.0/totelegram.egg-info/SOURCES.txt +104 -0
- totelegram-0.1.0/totelegram.egg-info/dependency_links.txt +1 -0
- totelegram-0.1.0/totelegram.egg-info/entry_points.txt +2 -0
- totelegram-0.1.0/totelegram.egg-info/requires.txt +9 -0
- totelegram-0.1.0/totelegram.egg-info/top_level.txt +2 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: totelegram
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: toTelegram sube archivos a telegram sin importar el tamaño.
|
|
5
|
+
Home-page: https://github.com/CalumRakk/toTelegram
|
|
6
|
+
Author: Leo
|
|
7
|
+
Requires-Python: >=3.10.0
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: filetype==1.2.0
|
|
10
|
+
Requires-Dist: peewee>=3.17.9
|
|
11
|
+
Requires-Dist: pydantic>=2.11.7
|
|
12
|
+
Requires-Dist: pydantic-settings>=2.10.1
|
|
13
|
+
Requires-Dist: pyrogram==2.0.106
|
|
14
|
+
Requires-Dist: TgCrypto>=1.2.5
|
|
15
|
+
Requires-Dist: typer>=0.21.1
|
|
16
|
+
Requires-Dist: filelock>=3.20.3
|
|
17
|
+
Requires-Dist: tartape>=3.0.6
|
|
18
|
+
Dynamic: author
|
|
19
|
+
Dynamic: description
|
|
20
|
+
Dynamic: description-content-type
|
|
21
|
+
Dynamic: home-page
|
|
22
|
+
Dynamic: requires-dist
|
|
23
|
+
Dynamic: requires-python
|
|
24
|
+
Dynamic: summary
|
|
25
|
+
|
|
26
|
+
# toTelegram
|
|
27
|
+
|
|
28
|
+
`toTelegram` convierte a Telegram en un sistema de almacenamiento en la nube privado, ordenado y sin límites de tamaño.
|
|
29
|
+
|
|
30
|
+
Está diseñado para que puedas subir archivos gigantescos o carpetas completas, y tener la certeza de qué cosas ya están respaldadas y recuperar exactamente lo que necesitas en cualquier momento.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## ¿Por qué toTelegram?
|
|
35
|
+
|
|
36
|
+
* **Sube cualquier archivo, sin importar su peso:** Olvídate del límite de 2 GB o 4 GB por archivo de Telegram. Puedes subir vídeos de 20 GB, imágenes de disco o proyectos pesados; cuando los descargues, los recuperarás intactos.
|
|
37
|
+
* **Carpetas completas con descarga selectiva:** Respalda carpetas enteras conservando su estructura original. Si en el futuro solo necesitas un documento o una foto específica de esa carpeta, puedes descargarlo de inmediato sin tener que bajar los gigabytes del respaldo completo.
|
|
38
|
+
* **Ahorro de tiempo y conexión:** Si se corta internet o cancelas el proceso, la subida se reanuda exactamente donde se quedó. Además, reconoce automáticamente lo que ya has subido para no transferir el mismo archivo dos veces.
|
|
39
|
+
* **Duplicación instantánea entre canales:** Si quieres tener una copia de tus respaldos en otro canal o compartirla, se clona en segundos directamente en Telegram, sin gastar los datos de tu conexión ni volver a subir nada.
|
|
40
|
+
* **Recupera espacio en tu disco con tranquilidad:** Te ayuda a identificar qué archivos locales ya están 100% seguros en Telegram para que puedas eliminarlos de tu ordenador con la certeza de que podrás descargarlos cuando los vuelvas a necesitar.
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Instalación
|
|
44
|
+
|
|
45
|
+
Requiere **Python 3.11** o superior.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
pip install totelegram
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Primeros pasos
|
|
54
|
+
|
|
55
|
+
### 1. Iniciar sesión
|
|
56
|
+
|
|
57
|
+
Ejecuta el asistente guiado para conectar tu cuenta de Telegram:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
totelegram login
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
El programa te pedirá tu número de teléfono y el código de verificación que recibirás en Telegram.
|
|
64
|
+
|
|
65
|
+
*(Opcional: Si cuentas con tus propias credenciales `API_ID` y `API_HASH` de [my.telegram.org](https://my.telegram.org), puedes ingresarlas durante el proceso).*
|
|
66
|
+
|
|
67
|
+
### 2. Comprobar la conexión
|
|
68
|
+
|
|
69
|
+
Puedes verificar en cualquier momento con qué cuenta estás conectado:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
totelegram status
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Uso habitual
|
|
78
|
+
|
|
79
|
+
En todas las operaciones de envío o respaldo, debes indicar el destino con el parámetro `-t` o `--target`. Puedes usar:
|
|
80
|
+
* `me` para enviarlo a tus **Mensajes Guardados** (ideal para envíos rápidos y personales).
|
|
81
|
+
* El nombre o @alias de un **Canal** (ej. `-t "Mis Respaldos"` o `-t @mi_canal`).
|
|
82
|
+
* El identificador numérico del canal (ej. `-t -100123456789`).
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### ¿`send` o `backup`? Cuándo usar cada uno
|
|
87
|
+
|
|
88
|
+
| Comando | Ideal para... | Cómo se publica en Telegram |
|
|
89
|
+
| :--- | :--- | :--- |
|
|
90
|
+
| **`send`** | **Archivos sueltos** (películas, instaladores, PDFs, vídeos grandes). | Cada archivo se publica como un elemento independiente en el chat. |
|
|
91
|
+
| **`backup`** | **Carpetas completas** (proyectos, fotos familiares, colecciones de documentos). | Se empaqueta todo en un único respaldo ordenado, sin saturar el canal de mensajes y preservando la jerarquía de carpetas. |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
### Enviar archivos individuales (`send`)
|
|
96
|
+
|
|
97
|
+
Sube uno o varios archivos a Telegram. Si el archivo es muy pesado, se dividirá de forma automática para que no tengas problemas con el límite de tamaño.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Enviar un archivo grande a tus Mensajes Guardados
|
|
101
|
+
totelegram send pelicula.mkv -t me
|
|
102
|
+
|
|
103
|
+
# Enviar varios archivos a un canal
|
|
104
|
+
totelegram send video.mp4 instalador.iso manual.pdf -t "Mi Nube"
|
|
105
|
+
|
|
106
|
+
# Envia todos los archivos de una carpeta
|
|
107
|
+
totelegram send peliculas_1080p/ -t "Mi Nube"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
> ⚠️ **Atención con las carpetas en `send`:**
|
|
111
|
+
> Si le pasas una carpeta a `send`, enviará cada archivo interno por separado. **No uses `send` para carpetas con cientos o miles de archivos pequeños** (como fotos o código), ya que publicará miles de mensajes individuales en tu canal. Para carpetas, usa siempre `backup`.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### Respaldar carpetas completas (`backup`)
|
|
116
|
+
|
|
117
|
+
Diseñado específicamente para carpetas. Convierte toda la estructura en un único paquete optimizado, conservando los nombres, subcarpetas y fechas originales.
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Respaldar una carpeta completa en un canal
|
|
121
|
+
totelegram backup ./mis_fotos -t "Respaldo Familiar"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
* **Canal limpio:** Aunque tu carpeta contenga 50.000 archivos, no inundará el chat de mensajes; genera solo unos pocos bloques limpios y compactos.
|
|
125
|
+
* **Extracción selectiva:** Al respaldar con `backup`, ganas la capacidad de descargar un archivo específico de la carpeta en el futuro sin tener que bajarla toda.
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### Descargar y restaurar (`download`)
|
|
129
|
+
|
|
130
|
+
Para recuperar un respaldo, solo necesitas el archivo de manifiesto (`.ttape` o `.json.xz`):
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Restaurar una carpeta o archivo completo
|
|
134
|
+
totelegram download respaldo.ttape -o ./recuperado
|
|
135
|
+
|
|
136
|
+
# Extracción quirúrgica: descargar solo un archivo dentro de una carpeta respaldada
|
|
137
|
+
totelegram download respaldo.ttape --file "fotos/viaje/playa.jpg" -o ./destino
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Comprobar el estado local (`status`)
|
|
143
|
+
|
|
144
|
+
Si quieres saber qué archivos de una carpeta ya están respaldados en Telegram y cuáles están pendientes:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
totelegram status ./mis_documentos
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Muestra una lista con el estado de cada archivo: si ya está en Telegram, si fue modificado localmente o si está pendiente de subida.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### Replicar a otro canal (`forward`)
|
|
155
|
+
|
|
156
|
+
Si ya respaldaste un archivo o carpeta en un canal y quieres tener una copia en otro, puedes clonarlo sin transferir datos desde tu ordenador:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
totelegram forward respaldo.ttape -t "Canal Secundario"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Liberar espacio en disco (`prune`)
|
|
165
|
+
|
|
166
|
+
Elimina de tu equipo aquellos archivos que ya han sido confirmados y respaldados al 100% en Telegram, manteniendo intacto el registro para poder descargarlos cuando los necesites:
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
# Ver qué se eliminaría sin borrar nada
|
|
170
|
+
totelegram prune ./mis_videos --dry-run
|
|
171
|
+
|
|
172
|
+
# Liberar espacio confirmando la eliminación
|
|
173
|
+
totelegram prune ./mis_videos
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Opciones útiles
|
|
179
|
+
|
|
180
|
+
* **Reanudar o forzar subida (`--force`):**
|
|
181
|
+
Si una subida quedó a medias o deseas reiniciar el proceso ignorando el estado previo:
|
|
182
|
+
```bash
|
|
183
|
+
totelegram send archivo.zip -t me --force
|
|
184
|
+
```
|
|
185
|
+
* **Destino predeterminado por entorno:**
|
|
186
|
+
Puedes definir la variable de entorno `TOTELEGRAM_TARGET` para no tener que escribir `-t` en cada comando:
|
|
187
|
+
```bash
|
|
188
|
+
export TOTELEGRAM_TARGET="Mis Respaldos"
|
|
189
|
+
totelegram send archivo.iso
|
|
190
|
+
```
|
|
191
|
+
* **Manejo de múltiples cuentas:**
|
|
192
|
+
Puedes cambiar de cuenta activa en cualquier momento:
|
|
193
|
+
```bash
|
|
194
|
+
totelegram switch
|
|
195
|
+
```
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# toTelegram
|
|
2
|
+
|
|
3
|
+
`toTelegram` convierte a Telegram en un sistema de almacenamiento en la nube privado, ordenado y sin límites de tamaño.
|
|
4
|
+
|
|
5
|
+
Está diseñado para que puedas subir archivos gigantescos o carpetas completas, y tener la certeza de qué cosas ya están respaldadas y recuperar exactamente lo que necesitas en cualquier momento.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## ¿Por qué toTelegram?
|
|
10
|
+
|
|
11
|
+
* **Sube cualquier archivo, sin importar su peso:** Olvídate del límite de 2 GB o 4 GB por archivo de Telegram. Puedes subir vídeos de 20 GB, imágenes de disco o proyectos pesados; cuando los descargues, los recuperarás intactos.
|
|
12
|
+
* **Carpetas completas con descarga selectiva:** Respalda carpetas enteras conservando su estructura original. Si en el futuro solo necesitas un documento o una foto específica de esa carpeta, puedes descargarlo de inmediato sin tener que bajar los gigabytes del respaldo completo.
|
|
13
|
+
* **Ahorro de tiempo y conexión:** Si se corta internet o cancelas el proceso, la subida se reanuda exactamente donde se quedó. Además, reconoce automáticamente lo que ya has subido para no transferir el mismo archivo dos veces.
|
|
14
|
+
* **Duplicación instantánea entre canales:** Si quieres tener una copia de tus respaldos en otro canal o compartirla, se clona en segundos directamente en Telegram, sin gastar los datos de tu conexión ni volver a subir nada.
|
|
15
|
+
* **Recupera espacio en tu disco con tranquilidad:** Te ayuda a identificar qué archivos locales ya están 100% seguros en Telegram para que puedas eliminarlos de tu ordenador con la certeza de que podrás descargarlos cuando los vuelvas a necesitar.
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Instalación
|
|
19
|
+
|
|
20
|
+
Requiere **Python 3.11** o superior.
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install totelegram
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Primeros pasos
|
|
29
|
+
|
|
30
|
+
### 1. Iniciar sesión
|
|
31
|
+
|
|
32
|
+
Ejecuta el asistente guiado para conectar tu cuenta de Telegram:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
totelegram login
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
El programa te pedirá tu número de teléfono y el código de verificación que recibirás en Telegram.
|
|
39
|
+
|
|
40
|
+
*(Opcional: Si cuentas con tus propias credenciales `API_ID` y `API_HASH` de [my.telegram.org](https://my.telegram.org), puedes ingresarlas durante el proceso).*
|
|
41
|
+
|
|
42
|
+
### 2. Comprobar la conexión
|
|
43
|
+
|
|
44
|
+
Puedes verificar en cualquier momento con qué cuenta estás conectado:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
totelegram status
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Uso habitual
|
|
53
|
+
|
|
54
|
+
En todas las operaciones de envío o respaldo, debes indicar el destino con el parámetro `-t` o `--target`. Puedes usar:
|
|
55
|
+
* `me` para enviarlo a tus **Mensajes Guardados** (ideal para envíos rápidos y personales).
|
|
56
|
+
* El nombre o @alias de un **Canal** (ej. `-t "Mis Respaldos"` o `-t @mi_canal`).
|
|
57
|
+
* El identificador numérico del canal (ej. `-t -100123456789`).
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### ¿`send` o `backup`? Cuándo usar cada uno
|
|
62
|
+
|
|
63
|
+
| Comando | Ideal para... | Cómo se publica en Telegram |
|
|
64
|
+
| :--- | :--- | :--- |
|
|
65
|
+
| **`send`** | **Archivos sueltos** (películas, instaladores, PDFs, vídeos grandes). | Cada archivo se publica como un elemento independiente en el chat. |
|
|
66
|
+
| **`backup`** | **Carpetas completas** (proyectos, fotos familiares, colecciones de documentos). | Se empaqueta todo en un único respaldo ordenado, sin saturar el canal de mensajes y preservando la jerarquía de carpetas. |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### Enviar archivos individuales (`send`)
|
|
71
|
+
|
|
72
|
+
Sube uno o varios archivos a Telegram. Si el archivo es muy pesado, se dividirá de forma automática para que no tengas problemas con el límite de tamaño.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Enviar un archivo grande a tus Mensajes Guardados
|
|
76
|
+
totelegram send pelicula.mkv -t me
|
|
77
|
+
|
|
78
|
+
# Enviar varios archivos a un canal
|
|
79
|
+
totelegram send video.mp4 instalador.iso manual.pdf -t "Mi Nube"
|
|
80
|
+
|
|
81
|
+
# Envia todos los archivos de una carpeta
|
|
82
|
+
totelegram send peliculas_1080p/ -t "Mi Nube"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
> ⚠️ **Atención con las carpetas en `send`:**
|
|
86
|
+
> Si le pasas una carpeta a `send`, enviará cada archivo interno por separado. **No uses `send` para carpetas con cientos o miles de archivos pequeños** (como fotos o código), ya que publicará miles de mensajes individuales en tu canal. Para carpetas, usa siempre `backup`.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### Respaldar carpetas completas (`backup`)
|
|
91
|
+
|
|
92
|
+
Diseñado específicamente para carpetas. Convierte toda la estructura en un único paquete optimizado, conservando los nombres, subcarpetas y fechas originales.
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Respaldar una carpeta completa en un canal
|
|
96
|
+
totelegram backup ./mis_fotos -t "Respaldo Familiar"
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
* **Canal limpio:** Aunque tu carpeta contenga 50.000 archivos, no inundará el chat de mensajes; genera solo unos pocos bloques limpios y compactos.
|
|
100
|
+
* **Extracción selectiva:** Al respaldar con `backup`, ganas la capacidad de descargar un archivo específico de la carpeta en el futuro sin tener que bajarla toda.
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### Descargar y restaurar (`download`)
|
|
104
|
+
|
|
105
|
+
Para recuperar un respaldo, solo necesitas el archivo de manifiesto (`.ttape` o `.json.xz`):
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Restaurar una carpeta o archivo completo
|
|
109
|
+
totelegram download respaldo.ttape -o ./recuperado
|
|
110
|
+
|
|
111
|
+
# Extracción quirúrgica: descargar solo un archivo dentro de una carpeta respaldada
|
|
112
|
+
totelegram download respaldo.ttape --file "fotos/viaje/playa.jpg" -o ./destino
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
### Comprobar el estado local (`status`)
|
|
118
|
+
|
|
119
|
+
Si quieres saber qué archivos de una carpeta ya están respaldados en Telegram y cuáles están pendientes:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
totelegram status ./mis_documentos
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Muestra una lista con el estado de cada archivo: si ya está en Telegram, si fue modificado localmente o si está pendiente de subida.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
### Replicar a otro canal (`forward`)
|
|
130
|
+
|
|
131
|
+
Si ya respaldaste un archivo o carpeta en un canal y quieres tener una copia en otro, puedes clonarlo sin transferir datos desde tu ordenador:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
totelegram forward respaldo.ttape -t "Canal Secundario"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### Liberar espacio en disco (`prune`)
|
|
140
|
+
|
|
141
|
+
Elimina de tu equipo aquellos archivos que ya han sido confirmados y respaldados al 100% en Telegram, manteniendo intacto el registro para poder descargarlos cuando los necesites:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# Ver qué se eliminaría sin borrar nada
|
|
145
|
+
totelegram prune ./mis_videos --dry-run
|
|
146
|
+
|
|
147
|
+
# Liberar espacio confirmando la eliminación
|
|
148
|
+
totelegram prune ./mis_videos
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Opciones útiles
|
|
154
|
+
|
|
155
|
+
* **Reanudar o forzar subida (`--force`):**
|
|
156
|
+
Si una subida quedó a medias o deseas reiniciar el proceso ignorando el estado previo:
|
|
157
|
+
```bash
|
|
158
|
+
totelegram send archivo.zip -t me --force
|
|
159
|
+
```
|
|
160
|
+
* **Destino predeterminado por entorno:**
|
|
161
|
+
Puedes definir la variable de entorno `TOTELEGRAM_TARGET` para no tener que escribir `-t` en cada comando:
|
|
162
|
+
```bash
|
|
163
|
+
export TOTELEGRAM_TARGET="Mis Respaldos"
|
|
164
|
+
totelegram send archivo.iso
|
|
165
|
+
```
|
|
166
|
+
* **Manejo de múltiples cuentas:**
|
|
167
|
+
Puedes cambiar de cuenta activa en cualquier momento:
|
|
168
|
+
```bash
|
|
169
|
+
totelegram switch
|
|
170
|
+
```
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
[tool.pyright]
|
|
2
|
+
typeCheckingMode = "basic" # Opciones: "off", "basic", "strict"
|
|
3
|
+
include = ["src"]
|
|
4
|
+
exclude = ["**/node_modules", "**/__pycache__", ".venv"]
|
|
5
|
+
|
|
6
|
+
# Configura o apaga reglas específicas de diagnóstico
|
|
7
|
+
reportUnusedCoroutine = false
|
|
8
|
+
reportArgumentType= false
|
|
9
|
+
reportReturnType= false
|
|
10
|
+
reportAttributeAccessIssue= false
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from setuptools import find_packages, setup
|
|
4
|
+
|
|
5
|
+
from totelegram import __VERSION__
|
|
6
|
+
|
|
7
|
+
this_directory = Path(__file__).parent
|
|
8
|
+
long_description = (this_directory / "README.md").read_text(encoding="utf-8")
|
|
9
|
+
|
|
10
|
+
setup(
|
|
11
|
+
name="totelegram",
|
|
12
|
+
version=__VERSION__,
|
|
13
|
+
description="toTelegram sube archivos a telegram sin importar el tamaño.",
|
|
14
|
+
author="Leo",
|
|
15
|
+
url="https://github.com/CalumRakk/toTelegram",
|
|
16
|
+
long_description=long_description,
|
|
17
|
+
long_description_content_type="text/markdown",
|
|
18
|
+
install_requires=[
|
|
19
|
+
"filetype==1.2.0",
|
|
20
|
+
"peewee>=3.17.9",
|
|
21
|
+
"pydantic>=2.11.7",
|
|
22
|
+
"pydantic-settings>=2.10.1",
|
|
23
|
+
"pyrogram==2.0.106",
|
|
24
|
+
"TgCrypto>=1.2.5",
|
|
25
|
+
"typer>=0.21.1",
|
|
26
|
+
"filelock>=3.20.3",
|
|
27
|
+
"tartape>=3.0.6",
|
|
28
|
+
],
|
|
29
|
+
packages=find_packages(),
|
|
30
|
+
entry_points={
|
|
31
|
+
"console_scripts": ["totelegram=totelegram.cli.__main__:run_script"],
|
|
32
|
+
},
|
|
33
|
+
python_requires=">=3.10.0",
|
|
34
|
+
)
|