This repository aimed to be fast uploading and fast downloading via Telethon (user and bots both supported)
Project description
devgagantools
devgagantools is a Python library designed for fast and efficient file upload and download operations. It includes features like progress tracking, customizable file names, and human-readable file size formatting. The library is asynchronous and integrates seamlessly with Telegram bots or other projects requiring file management.
Features
- Fast File Downloads: Asynchronous file downloading with real-time progress updates.
- Fast File Uploads: Asynchronous file uploading with customizable filenames and progress tracking.
- Progress Bar: Dynamic progress bar for file operations.
- Human-Readable Sizes: Easily convert file sizes to human-readable formats.
- Custom Timing: Control update intervals for progress tracking.
Installation
To install the library once it's published to PyPI, use:
pip install devgagantools
Usage
1. Fast Download
You can use the devgagantools download functionality by providing the required parameters:
client: The Telegram client instance (e.g., Pyrogram Client).msg: The Telegram message containing the file to download.reply(Optional): The reply message to update with progress.download_folder(Optional): Folder where the file will be saved (default:downloads/).name(Optional): A custom filename for the downloaded file (default: original file name).progress_bar_function(Optional): A function to customize the progress bar display.
Example
download_location = await devgagantools.fast_download(
client=client,
msg=message,
reply=reply_message, # Optional
download_folder="my_files/", # Optional
name="custom_filename.mp4", # Optional
)
print(f"File downloaded to: {download_location}")
2. Fast Upload
You can upload files using the following arguments:
client: The Telegram client instance (e.g., Pyrogram Client).file_location: The local file path to upload.reply(Optional): The reply message to update with progress.name(Optional): A custom name for the uploaded file (default: original file name).progress_bar_function(Optional): A function to customize the progress bar display.
Example
uploaded_file = await devgagantools.fast_upload(
client=client,
file_location="my_files/custom_filename.mp4",
reply=reply_message, # Optional
name="uploaded_file.mp4", # Optional
)
print(f"File uploaded successfully: {uploaded_file}")
Parameters for Progress Bar Customization
You can use a custom progress bar function for more control over how the progress is displayed. The function must accept two arguments:
done: Bytes downloaded or uploaded so far.total: Total size of the file in bytes.
Example of a custom progress bar function:
def custom_progress_bar(done, total):
percent = round(done / total * 100, 2)
return f"Progress: {percent}% ({done}/{total} bytes)"
Pass this function as the progress_bar_function argument in the download or upload methods.
Human-Readable File Sizes
The library also provides a utility to convert file sizes into human-readable formats:
from devgagantools import human_readable_size
size = human_readable_size(1048576) # Output: '1.00 MB'
Dependencies
- telethon: For Telegram client and file management.
- pathlib, os, time, datetime: Standard Python libraries for file and time management.
License
This project is licensed under the MIT License.
Contributions
Contributions are welcome! Feel free to fork the repository, make your changes, and submit a pull request.
Special Thanks
- Mautrix Telegram Bridge
Contacts
- Contact us on telegram for any query Team Spy
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 Distributions
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 devgagantools-3.0.1-py3-none-any.whl.
File metadata
- Download URL: devgagantools-3.0.1-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67fb5041885d9d9a0c35a02d9cb031d066ffd25204d624f85f62c97b52fea88f
|
|
| MD5 |
dfb4b257b929702eecb265afb5fa94de
|
|
| BLAKE2b-256 |
9555b84106e2cf49fd6367e3021039a1608e32950c6342fa76e9b8dbe160c9a5
|