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.
Files changed (106) hide show
  1. totelegram-0.1.0/PKG-INFO +195 -0
  2. totelegram-0.1.0/README.md +170 -0
  3. totelegram-0.1.0/pyproject.toml +10 -0
  4. totelegram-0.1.0/setup.cfg +4 -0
  5. totelegram-0.1.0/setup.py +34 -0
  6. totelegram-0.1.0/tests/test_auditor.py +453 -0
  7. totelegram-0.1.0/tests/test_captions.py +114 -0
  8. totelegram-0.1.0/tests/test_cli_upload_flow.py +327 -0
  9. totelegram-0.1.0/tests/test_cli_views.py +187 -0
  10. totelegram-0.1.0/tests/test_command_config.py +141 -0
  11. totelegram-0.1.0/tests/test_concurrency.py +311 -0
  12. totelegram-0.1.0/tests/test_discovery.py +211 -0
  13. totelegram-0.1.0/tests/test_downloader.py +87 -0
  14. totelegram-0.1.0/tests/test_migration.py +164 -0
  15. totelegram-0.1.0/tests/test_models.py +352 -0
  16. totelegram-0.1.0/tests/test_partitioner.py +122 -0
  17. totelegram-0.1.0/tests/test_pipeline.py +607 -0
  18. totelegram-0.1.0/tests/test_rehydration.py +374 -0
  19. totelegram-0.1.0/tests/test_relocator.py +223 -0
  20. totelegram-0.1.0/tests/test_snapshot.py +335 -0
  21. totelegram-0.1.0/tests/test_stream.py +103 -0
  22. totelegram-0.1.0/tests/test_target_resolution.py +342 -0
  23. totelegram-0.1.0/tests/test_telegram_account_lock.py +333 -0
  24. totelegram-0.1.0/tests/test_ttape.py +124 -0
  25. totelegram-0.1.0/tests/test_uploader.py +224 -0
  26. totelegram-0.1.0/tests_real/__init__.py +0 -0
  27. totelegram-0.1.0/tests_real/base.py +311 -0
  28. totelegram-0.1.0/tests_real/setup_test_env.py +337 -0
  29. totelegram-0.1.0/tests_real/test_real_file_pipeline.py +149 -0
  30. totelegram-0.1.0/tests_real/test_real_resumption.py +240 -0
  31. totelegram-0.1.0/tests_real/test_real_tape_restore.py +206 -0
  32. totelegram-0.1.0/totelegram/__init__.py +2 -0
  33. totelegram-0.1.0/totelegram/cli/__init__.py +0 -0
  34. totelegram-0.1.0/totelegram/cli/__main__.py +149 -0
  35. totelegram-0.1.0/totelegram/cli/commands/__init__.py +0 -0
  36. totelegram-0.1.0/totelegram/cli/commands/auth.py +446 -0
  37. totelegram-0.1.0/totelegram/cli/commands/backup.py +53 -0
  38. totelegram-0.1.0/totelegram/cli/commands/config.py +308 -0
  39. totelegram-0.1.0/totelegram/cli/commands/download.py +185 -0
  40. totelegram-0.1.0/totelegram/cli/commands/forward.py +172 -0
  41. totelegram-0.1.0/totelegram/cli/commands/index.py +176 -0
  42. totelegram-0.1.0/totelegram/cli/commands/prune.py +133 -0
  43. totelegram-0.1.0/totelegram/cli/commands/send.py +48 -0
  44. totelegram-0.1.0/totelegram/cli/commands/snapshot.py +145 -0
  45. totelegram-0.1.0/totelegram/cli/commands/target.py +107 -0
  46. totelegram-0.1.0/totelegram/cli/logic.py +638 -0
  47. totelegram-0.1.0/totelegram/cli/observer.py +361 -0
  48. totelegram-0.1.0/totelegram/cli/state.py +82 -0
  49. totelegram-0.1.0/totelegram/cli/ui.py +241 -0
  50. totelegram-0.1.0/totelegram/cli/views/__init__.py +1 -0
  51. totelegram-0.1.0/totelegram/cli/views/errors.py +47 -0
  52. totelegram-0.1.0/totelegram/cli/views/ledger.py +106 -0
  53. totelegram-0.1.0/totelegram/cli/views/settings.py +325 -0
  54. totelegram-0.1.0/totelegram/cli/views/snapshots.py +250 -0
  55. totelegram-0.1.0/totelegram/cli/views/upload.py +208 -0
  56. totelegram-0.1.0/totelegram/common/__init__.py +0 -0
  57. totelegram-0.1.0/totelegram/common/files.py +56 -0
  58. totelegram-0.1.0/totelegram/common/helpers.py +58 -0
  59. totelegram-0.1.0/totelegram/common/streams.py +61 -0
  60. totelegram-0.1.0/totelegram/concurrency.py +660 -0
  61. totelegram-0.1.0/totelegram/database.py +169 -0
  62. totelegram-0.1.0/totelegram/discovery.py +403 -0
  63. totelegram-0.1.0/totelegram/engine/__init__.py +5 -0
  64. totelegram-0.1.0/totelegram/engine/downloader.py +539 -0
  65. totelegram-0.1.0/totelegram/engine/events.py +208 -0
  66. totelegram-0.1.0/totelegram/engine/factory.py +125 -0
  67. totelegram-0.1.0/totelegram/engine/forwarder.py +252 -0
  68. totelegram-0.1.0/totelegram/engine/pipeline.py +496 -0
  69. totelegram-0.1.0/totelegram/engine/planner.py +127 -0
  70. totelegram-0.1.0/totelegram/engine/relocator.py +142 -0
  71. totelegram-0.1.0/totelegram/engine/uploader.py +149 -0
  72. totelegram-0.1.0/totelegram/exceptions.py +312 -0
  73. totelegram-0.1.0/totelegram/identity.py +613 -0
  74. totelegram-0.1.0/totelegram/logging_config.py +72 -0
  75. totelegram-0.1.0/totelegram/migration.py +297 -0
  76. totelegram-0.1.0/totelegram/models.py +817 -0
  77. totelegram-0.1.0/totelegram/packaging/__init__.py +4 -0
  78. totelegram-0.1.0/totelegram/packaging/auditor.py +480 -0
  79. totelegram-0.1.0/totelegram/packaging/coordinates.py +52 -0
  80. totelegram-0.1.0/totelegram/packaging/importer.py +1047 -0
  81. totelegram-0.1.0/totelegram/packaging/indexer.py +118 -0
  82. totelegram-0.1.0/totelegram/packaging/partitioner.py +109 -0
  83. totelegram-0.1.0/totelegram/packaging/publisher.py +116 -0
  84. totelegram-0.1.0/totelegram/packaging/schemas.py +85 -0
  85. totelegram-0.1.0/totelegram/packaging/snapshot.py +209 -0
  86. totelegram-0.1.0/totelegram/packaging/ttape.py +266 -0
  87. totelegram-0.1.0/totelegram/schemas.py +238 -0
  88. totelegram-0.1.0/totelegram/stream.py +31 -0
  89. totelegram-0.1.0/totelegram/telegram/__init__.py +0 -0
  90. totelegram-0.1.0/totelegram/telegram/access.py +233 -0
  91. totelegram-0.1.0/totelegram/telegram/auth.py +45 -0
  92. totelegram-0.1.0/totelegram/telegram/captions.py +166 -0
  93. totelegram-0.1.0/totelegram/telegram/client.py +155 -0
  94. totelegram-0.1.0/totelegram/telegram/patches.py +464 -0
  95. totelegram-0.1.0/totelegram/telegram/resolver.py +286 -0
  96. totelegram-0.1.0/totelegram/telegram/search.py +131 -0
  97. totelegram-0.1.0/totelegram/telegram/types.py +137 -0
  98. totelegram-0.1.0/totelegram/telegram/utils.py +77 -0
  99. totelegram-0.1.0/totelegram/types.py +105 -0
  100. totelegram-0.1.0/totelegram/utils.py +78 -0
  101. totelegram-0.1.0/totelegram.egg-info/PKG-INFO +195 -0
  102. totelegram-0.1.0/totelegram.egg-info/SOURCES.txt +104 -0
  103. totelegram-0.1.0/totelegram.egg-info/dependency_links.txt +1 -0
  104. totelegram-0.1.0/totelegram.egg-info/entry_points.txt +2 -0
  105. totelegram-0.1.0/totelegram.egg-info/requires.txt +9 -0
  106. 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,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -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
+ )