televault 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.
- televault-0.1.0/GrammarlyInstaller.c00000000000.exe +0 -0
- televault-0.1.0/PKG-INFO +242 -0
- televault-0.1.0/README.md +209 -0
- televault-0.1.0/nadi.txt +0 -0
- televault-0.1.0/pyproject.toml +68 -0
- televault-0.1.0/src/televault/__init__.py +16 -0
- televault-0.1.0/src/televault/chunker.py +189 -0
- televault-0.1.0/src/televault/cli.py +445 -0
- televault-0.1.0/src/televault/compress.py +138 -0
- televault-0.1.0/src/televault/config.py +81 -0
- televault-0.1.0/src/televault/core.py +479 -0
- televault-0.1.0/src/televault/crypto.py +170 -0
- televault-0.1.0/src/televault/models.py +149 -0
- televault-0.1.0/src/televault/telegram.py +375 -0
- televault-0.1.0/tests/__init__.py +0 -0
- televault-0.1.0/tests/test_chunker.py +142 -0
- televault-0.1.0/tests/test_compress.py +100 -0
- televault-0.1.0/tests/test_crypto.py +111 -0
- televault-0.1.0/tests/test_models.py +150 -0
|
Binary file
|
televault-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: televault
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Unlimited cloud storage using Telegram MTProto. No local DB - everything on Telegram.
|
|
5
|
+
Project-URL: Homepage, https://github.com/YahyaToubali/televault
|
|
6
|
+
Project-URL: Repository, https://github.com/YahyaToubali/televault
|
|
7
|
+
Author-email: Yahya Toubali <contact@yahyatoubali.me>
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: backup,cloud,mtproto,storage,telegram
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: System :: Archiving :: Backup
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Requires-Dist: aiofiles>=23.2.0
|
|
20
|
+
Requires-Dist: blake3>=0.4.0
|
|
21
|
+
Requires-Dist: click>=8.1.0
|
|
22
|
+
Requires-Dist: cryptography>=42.0.0
|
|
23
|
+
Requires-Dist: rich>=13.7.0
|
|
24
|
+
Requires-Dist: telethon>=1.36.0
|
|
25
|
+
Requires-Dist: textual>=0.47.0
|
|
26
|
+
Requires-Dist: zstandard>=0.22.0
|
|
27
|
+
Provides-Extra: dev
|
|
28
|
+
Requires-Dist: mypy>=1.8.0; extra == 'dev'
|
|
29
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: ruff>=0.2.0; extra == 'dev'
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# TeleVault
|
|
35
|
+
|
|
36
|
+
Unlimited cloud storage using Telegram MTProto. No local database — everything lives on Telegram.
|
|
37
|
+
|
|
38
|
+
## Features
|
|
39
|
+
|
|
40
|
+
- **MTProto Direct** — No bot API limits, 2GB file support
|
|
41
|
+
- **Zero Local DB** — Metadata stored on Telegram itself
|
|
42
|
+
- **Client-Side Encryption** — AES-256-GCM before upload
|
|
43
|
+
- **Smart Chunking** — Large files split automatically
|
|
44
|
+
- **Parallel Processing** — Faster uploads/downloads
|
|
45
|
+
- **Folder Support** — Preserve directory structure
|
|
46
|
+
- **Resume Capability** - Continue interrupted transfers
|
|
47
|
+
- **TUI + CLI** - Beautiful terminal interface
|
|
48
|
+
|
|
49
|
+
## Install
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install televault
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Or from source:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
git clone https://github.com/YahyaToubali/televault
|
|
59
|
+
cd televault
|
|
60
|
+
pip install -e .".
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# First time: authenticate with Telegram
|
|
67
|
+
televault login
|
|
68
|
+
|
|
69
|
+
# Upload a file
|
|
70
|
+
televault push backup.tar.gz
|
|
71
|
+
|
|
72
|
+
# Upload a directory
|
|
73
|
+
televault push ~/Documents/ -r --no-encrypt
|
|
74
|
+
|
|
75
|
+
# List files
|
|
76
|
+
televault ls
|
|
77
|
+
|
|
78
|
+
# Download
|
|
79
|
+
televault pull backup.tar.gz
|
|
80
|
+
|
|
81
|
+
# Interactive TUI
|
|
82
|
+
televault
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## How It Works
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Your File
|
|
89
|
+
↓
|
|
90
|
+
[Compress] → zstd (optional, skips media)
|
|
91
|
+
↓
|
|
92
|
+
[Encrypt] → AES-256-GCM with Scrypt key derivation
|
|
93
|
+
↓
|
|
94
|
+
[Chunk] → Split into ≤2GB pieces
|
|
95
|
+
↓
|
|
96
|
+
[Upload] → MTProto to your private channel
|
|
97
|
+
↓
|
|
98
|
+
[Index] → Metadata stored as pinned message
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Channel Structure
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
📌 INDEX (pinned)
|
|
105
|
+
│ └── {"files": {"id1": msg_id, "id2": msg_id, ...}}
|
|
106
|
+
│
|
|
107
|
+
├── 📄 Metadata Message (JSON)
|
|
108
|
+
│ └── {"name": "file.zip", "size": 5GB, "chunks": [...]}
|
|
109
|
+
│
|
|
110
|
+
└── 📦 Chunk Messages (reply to metadata)
|
|
111
|
+
└── file_id_001.chunk, file_id_002.chunk, ...
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Commands
|
|
115
|
+
|
|
116
|
+
| Command | Description |
|
|
117
|
+
|---------|-------------|
|
|
118
|
+
| `televault login` | Authenticate with Telegram |
|
|
119
|
+
| `televault logout` | Clear session |
|
|
120
|
+
| `televault push <file>` | Upload file (or directory with -r) |
|
|
121
|
+
| `televault pull <file>` | Download file |
|
|
122
|
+
| `televault ls` | List all files |
|
|
123
|
+
| `televault search <query>` | Search files by name |
|
|
124
|
+
| `televault rm <file>` | Delete file |
|
|
125
|
+
| `televault info <file>` | Show file details |
|
|
126
|
+
| `televault status` | Show vault status |
|
|
127
|
+
| `televault whoami` | Show current Telegram account |
|
|
128
|
+
| `televault` | Launch TUI |
|
|
129
|
+
|
|
130
|
+
## Configuration
|
|
131
|
+
|
|
132
|
+
Config stored at `~/.config/televault/config.json`:
|
|
133
|
+
|
|
134
|
+
```json
|
|
135
|
+
{
|
|
136
|
+
"channel_id": -1003652003243,
|
|
137
|
+
"chunk_size": 104857600,
|
|
138
|
+
"compression": true,
|
|
139
|
+
"encryption": true,
|
|
140
|
+
"parallel_uploads": 3,
|
|
141
|
+
"parallel_downloads": 5,
|
|
142
|
+
"max_retries": 3,
|
|
143
|
+
"retry_delay": 1.0
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Security
|
|
148
|
+
|
|
149
|
+
- **Encryption**: AES-256-GCM (authenticated encryption)
|
|
150
|
+
- **Key Derivation**: Scrypt (memory-hard, GPU-resistant)
|
|
151
|
+
- **Session**: Telegram MTProto session stored encrypted
|
|
152
|
+
- **Zero Knowledge**: Server never sees unencrypted data
|
|
153
|
+
- **MTProto**: Direct Telegram protocol (no bot API limits)
|
|
154
|
+
|
|
155
|
+
## Prerequisites
|
|
156
|
+
|
|
157
|
+
- Telegram API credentials (get at [my.telegram.org](https://my.telegram.org))
|
|
158
|
+
- Telegram account
|
|
159
|
+
- Python 3.11+
|
|
160
|
+
|
|
161
|
+
## Installation
|
|
162
|
+
|
|
163
|
+
### From PyPI
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
pip install televault
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### From Source
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
git clone https://github.com/YahyaToubali/televault
|
|
173
|
+
cd televault
|
|
174
|
+
pip install -e .".
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Setup
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Authenticate with Telegram
|
|
181
|
+
televault login
|
|
182
|
+
|
|
183
|
+
# Set up storage channel
|
|
184
|
+
televault setup
|
|
185
|
+
|
|
186
|
+
# Upload your first file
|
|
187
|
+
televault push hello.txt
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Usage Examples
|
|
191
|
+
|
|
192
|
+
### Upload a file
|
|
193
|
+
```bash
|
|
194
|
+
televault push backup.tar.gz --password mysecret
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Upload a directory
|
|
198
|
+
```bash
|
|
199
|
+
televault push ~/Documents/ -r --no-encrypt
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Download a file
|
|
203
|
+
```bash
|
|
204
|
+
televault pull backup.tar.gz --password mysecret
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### List files
|
|
208
|
+
```bash
|
|
209
|
+
televault ls --sort=size
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Search files
|
|
213
|
+
```bash
|
|
214
|
+
televault search "*.sql"
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## TUI
|
|
218
|
+
|
|
219
|
+
Launch the interactive terminal interface:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
televault
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Controls:
|
|
226
|
+
- `r` = Refresh
|
|
227
|
+
- `u` = Upload
|
|
228
|
+
- `d` = Download selected
|
|
229
|
+
- `q` = Quit
|
|
230
|
+
- Arrow keys to navigate
|
|
231
|
+
|
|
232
|
+
## License
|
|
233
|
+
|
|
234
|
+
MIT
|
|
235
|
+
|
|
236
|
+
## Author
|
|
237
|
+
|
|
238
|
+
Yahya Toubali - [@yahyatoubali](https://github.com/YahyaToubali)
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
Built with ❤️ using Python, Telethon, and Textual
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# TeleVault
|
|
2
|
+
|
|
3
|
+
Unlimited cloud storage using Telegram MTProto. No local database — everything lives on Telegram.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **MTProto Direct** — No bot API limits, 2GB file support
|
|
8
|
+
- **Zero Local DB** — Metadata stored on Telegram itself
|
|
9
|
+
- **Client-Side Encryption** — AES-256-GCM before upload
|
|
10
|
+
- **Smart Chunking** — Large files split automatically
|
|
11
|
+
- **Parallel Processing** — Faster uploads/downloads
|
|
12
|
+
- **Folder Support** — Preserve directory structure
|
|
13
|
+
- **Resume Capability** - Continue interrupted transfers
|
|
14
|
+
- **TUI + CLI** - Beautiful terminal interface
|
|
15
|
+
|
|
16
|
+
## Install
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install televault
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Or from source:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
git clone https://github.com/YahyaToubali/televault
|
|
26
|
+
cd televault
|
|
27
|
+
pip install -e .".
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# First time: authenticate with Telegram
|
|
34
|
+
televault login
|
|
35
|
+
|
|
36
|
+
# Upload a file
|
|
37
|
+
televault push backup.tar.gz
|
|
38
|
+
|
|
39
|
+
# Upload a directory
|
|
40
|
+
televault push ~/Documents/ -r --no-encrypt
|
|
41
|
+
|
|
42
|
+
# List files
|
|
43
|
+
televault ls
|
|
44
|
+
|
|
45
|
+
# Download
|
|
46
|
+
televault pull backup.tar.gz
|
|
47
|
+
|
|
48
|
+
# Interactive TUI
|
|
49
|
+
televault
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## How It Works
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
Your File
|
|
56
|
+
↓
|
|
57
|
+
[Compress] → zstd (optional, skips media)
|
|
58
|
+
↓
|
|
59
|
+
[Encrypt] → AES-256-GCM with Scrypt key derivation
|
|
60
|
+
↓
|
|
61
|
+
[Chunk] → Split into ≤2GB pieces
|
|
62
|
+
↓
|
|
63
|
+
[Upload] → MTProto to your private channel
|
|
64
|
+
↓
|
|
65
|
+
[Index] → Metadata stored as pinned message
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Channel Structure
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
📌 INDEX (pinned)
|
|
72
|
+
│ └── {"files": {"id1": msg_id, "id2": msg_id, ...}}
|
|
73
|
+
│
|
|
74
|
+
├── 📄 Metadata Message (JSON)
|
|
75
|
+
│ └── {"name": "file.zip", "size": 5GB, "chunks": [...]}
|
|
76
|
+
│
|
|
77
|
+
└── 📦 Chunk Messages (reply to metadata)
|
|
78
|
+
└── file_id_001.chunk, file_id_002.chunk, ...
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Commands
|
|
82
|
+
|
|
83
|
+
| Command | Description |
|
|
84
|
+
|---------|-------------|
|
|
85
|
+
| `televault login` | Authenticate with Telegram |
|
|
86
|
+
| `televault logout` | Clear session |
|
|
87
|
+
| `televault push <file>` | Upload file (or directory with -r) |
|
|
88
|
+
| `televault pull <file>` | Download file |
|
|
89
|
+
| `televault ls` | List all files |
|
|
90
|
+
| `televault search <query>` | Search files by name |
|
|
91
|
+
| `televault rm <file>` | Delete file |
|
|
92
|
+
| `televault info <file>` | Show file details |
|
|
93
|
+
| `televault status` | Show vault status |
|
|
94
|
+
| `televault whoami` | Show current Telegram account |
|
|
95
|
+
| `televault` | Launch TUI |
|
|
96
|
+
|
|
97
|
+
## Configuration
|
|
98
|
+
|
|
99
|
+
Config stored at `~/.config/televault/config.json`:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"channel_id": -1003652003243,
|
|
104
|
+
"chunk_size": 104857600,
|
|
105
|
+
"compression": true,
|
|
106
|
+
"encryption": true,
|
|
107
|
+
"parallel_uploads": 3,
|
|
108
|
+
"parallel_downloads": 5,
|
|
109
|
+
"max_retries": 3,
|
|
110
|
+
"retry_delay": 1.0
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Security
|
|
115
|
+
|
|
116
|
+
- **Encryption**: AES-256-GCM (authenticated encryption)
|
|
117
|
+
- **Key Derivation**: Scrypt (memory-hard, GPU-resistant)
|
|
118
|
+
- **Session**: Telegram MTProto session stored encrypted
|
|
119
|
+
- **Zero Knowledge**: Server never sees unencrypted data
|
|
120
|
+
- **MTProto**: Direct Telegram protocol (no bot API limits)
|
|
121
|
+
|
|
122
|
+
## Prerequisites
|
|
123
|
+
|
|
124
|
+
- Telegram API credentials (get at [my.telegram.org](https://my.telegram.org))
|
|
125
|
+
- Telegram account
|
|
126
|
+
- Python 3.11+
|
|
127
|
+
|
|
128
|
+
## Installation
|
|
129
|
+
|
|
130
|
+
### From PyPI
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
pip install televault
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### From Source
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
git clone https://github.com/YahyaToubali/televault
|
|
140
|
+
cd televault
|
|
141
|
+
pip install -e .".
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Setup
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
# Authenticate with Telegram
|
|
148
|
+
televault login
|
|
149
|
+
|
|
150
|
+
# Set up storage channel
|
|
151
|
+
televault setup
|
|
152
|
+
|
|
153
|
+
# Upload your first file
|
|
154
|
+
televault push hello.txt
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Usage Examples
|
|
158
|
+
|
|
159
|
+
### Upload a file
|
|
160
|
+
```bash
|
|
161
|
+
televault push backup.tar.gz --password mysecret
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Upload a directory
|
|
165
|
+
```bash
|
|
166
|
+
televault push ~/Documents/ -r --no-encrypt
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Download a file
|
|
170
|
+
```bash
|
|
171
|
+
televault pull backup.tar.gz --password mysecret
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### List files
|
|
175
|
+
```bash
|
|
176
|
+
televault ls --sort=size
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Search files
|
|
180
|
+
```bash
|
|
181
|
+
televault search "*.sql"
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## TUI
|
|
185
|
+
|
|
186
|
+
Launch the interactive terminal interface:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
televault
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Controls:
|
|
193
|
+
- `r` = Refresh
|
|
194
|
+
- `u` = Upload
|
|
195
|
+
- `d` = Download selected
|
|
196
|
+
- `q` = Quit
|
|
197
|
+
- Arrow keys to navigate
|
|
198
|
+
|
|
199
|
+
## License
|
|
200
|
+
|
|
201
|
+
MIT
|
|
202
|
+
|
|
203
|
+
## Author
|
|
204
|
+
|
|
205
|
+
Yahya Toubali - [@yahyatoubali](https://github.com/YahyaToubali)
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
Built with ❤️ using Python, Telethon, and Textual
|
televault-0.1.0/nadi.txt
ADDED
|
File without changes
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "televault"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
description = "Unlimited cloud storage using Telegram MTProto. No local DB - everything on Telegram."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
license = { text = "MIT" }
|
|
8
|
+
authors = [{ name = "Yahya Toubali", email = "contact@yahyatoubali.me" }]
|
|
9
|
+
keywords = ["telegram", "storage", "cloud", "mtproto", "backup"]
|
|
10
|
+
classifiers = [
|
|
11
|
+
"Development Status :: 3 - Alpha",
|
|
12
|
+
"Environment :: Console",
|
|
13
|
+
"Intended Audience :: End Users/Desktop",
|
|
14
|
+
"License :: OSI Approved :: MIT License",
|
|
15
|
+
"Operating System :: OS Independent",
|
|
16
|
+
"Programming Language :: Python :: 3.11",
|
|
17
|
+
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"Topic :: System :: Archiving :: Backup",
|
|
19
|
+
]
|
|
20
|
+
|
|
21
|
+
dependencies = [
|
|
22
|
+
"telethon>=1.36.0",
|
|
23
|
+
"cryptography>=42.0.0",
|
|
24
|
+
"zstandard>=0.22.0",
|
|
25
|
+
"blake3>=0.4.0",
|
|
26
|
+
"textual>=0.47.0",
|
|
27
|
+
"click>=8.1.0",
|
|
28
|
+
"rich>=13.7.0",
|
|
29
|
+
"aiofiles>=23.2.0",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
[project.optional-dependencies]
|
|
33
|
+
dev = [
|
|
34
|
+
"pytest>=8.0.0",
|
|
35
|
+
"pytest-asyncio>=0.23.0",
|
|
36
|
+
"ruff>=0.2.0",
|
|
37
|
+
"mypy>=1.8.0",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
[project.scripts]
|
|
41
|
+
televault = "televault.cli:main"
|
|
42
|
+
tv = "televault.cli:main"
|
|
43
|
+
|
|
44
|
+
[project.urls]
|
|
45
|
+
Homepage = "https://github.com/YahyaToubali/televault"
|
|
46
|
+
Repository = "https://github.com/YahyaToubali/televault"
|
|
47
|
+
|
|
48
|
+
[build-system]
|
|
49
|
+
requires = ["hatchling"]
|
|
50
|
+
build-backend = "hatchling.build"
|
|
51
|
+
|
|
52
|
+
[tool.hatch.build.targets.wheel]
|
|
53
|
+
packages = ["src/televault"]
|
|
54
|
+
|
|
55
|
+
[tool.ruff]
|
|
56
|
+
line-length = 100
|
|
57
|
+
target-version = "py311"
|
|
58
|
+
|
|
59
|
+
[tool.ruff.lint]
|
|
60
|
+
select = ["E", "F", "I", "N", "W", "UP", "B", "C4", "SIM"]
|
|
61
|
+
|
|
62
|
+
[tool.mypy]
|
|
63
|
+
python_version = "3.11"
|
|
64
|
+
strict = true
|
|
65
|
+
|
|
66
|
+
[tool.pytest.ini_options]
|
|
67
|
+
asyncio_mode = "auto"
|
|
68
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""
|
|
2
|
+
TeleVault - Unlimited cloud storage using Telegram MTProto.
|
|
3
|
+
|
|
4
|
+
Features:
|
|
5
|
+
- MTProto Direct (no bot API limits)
|
|
6
|
+
- Zero Local DB (metadata on Telegram)
|
|
7
|
+
- Client-side Encryption (AES-256-GCM)
|
|
8
|
+
- Parallel Processing
|
|
9
|
+
- Folder Support
|
|
10
|
+
- TUI + CLI
|
|
11
|
+
"""
|
|
12
|
+
__version__ = "1.0.0"
|
|
13
|
+
__author__ = "Yahya Toubali"
|
|
14
|
+
__email__ = "yahya@yahyatoubali.me"
|
|
15
|
+
__license__ = "MIT"
|
|
16
|
+
__url__ = "https://github.com/yahyatoubali/televault"
|