A solution for maintaining folder structure when uploading (that works for downloading too)
A feature to prevent uploading duplicate files
Add support for resuming, so the script does not upload from the beginning after the next use
Increase speed by uploading files in parallel, useful for small files
Add support for multiple pairs source-destination
Add support for downloading too
Make the script keep track of the volume uploaded, so the users can know the space required on their device when downloading
Support for filtering the files uploaded
A big problem I have with TG is that I cannot replicate the folder structure when uploading files. For example when uploading courses that have multiple folders/subfolders, After the upload, I don't know when a module ends and another begins or when a course ends and another begins, or which video belongs to what course. All are mixed.
So I was thinking of some solutions to resolve this issue. Is possible to upload a text file with the name of the folder/subfolder before uploading the files contained in them?
Another fix is to caption the files with the name of the folders/subfolders like this:
Unfortunately, the program is broken on Windows and the developer does not maintain the project anymore.
The solution implemented is to have files captioned with the file path + file name. This together with checksums of files is stored in a JSON file in Saved Messages. This solves important issues:
users can now replicate folder structure when uploading files.
it makes it possible for searching in a channel for a specific course, sub-module
when downloading the folder structure is preserved and all files are automatically put in their folders
hashing files prevents uploading of duplicate files and keep score of files already uploaded from a folder so when it resumes the script does not upload them again
The program uses SHA-256 but this is CPU and storage-intensive. Maybe something lighter can be used, a fast non-cryptographic algorithm. This is used by TG too, is supporting hardware acceleration (AVX2), and has a python implementation:
Currently, the upload speed is very good for bigger files but it slows down when uploading smaller files. Uploading files in parallel will be beneficial in this case. Can this be made for UploadGram?
Now only one folder path can be used for upload. Please add an option for choosing multiple folder paths. This is useful if the folders are in different partitions and cannot be put in a single parent folder. Also, it will be helpful if the users could choose multiple pairs of folders-destination. For example folder A to be uploaded in channel B, folder C in channel D.
Another handy feature is to keep track of data volume uploaded, convenient if users choose later to download everything or only some folders, to have an idea of space needed on HDD. Of course, this will require adding an option to download files, currently missing from the script.
A filtering feature will be nice to have, working by whitelist or blacklist, so the users can upload only some files from the folders or preventing other types to be upload.
I was thinking of these features:
A big problem I have with TG is that I cannot replicate the folder structure when uploading files. For example when uploading courses that have multiple folders/subfolders, After the upload, I don't know when a module ends and another begins or when a course ends and another begins, or which video belongs to what course. All are mixed.
So I was thinking of some solutions to resolve this issue. Is possible to upload a text file with the name of the folder/subfolder before uploading the files contained in them?
Another fix is to caption the files with the name of the folders/subfolders like this:
https://github.com/khrj/teledrive https://teledrive.khushrajrathod.com
Unfortunately, the program is broken on Windows and the developer does not maintain the project anymore.
The solution implemented is to have files captioned with the file path + file name. This together with checksums of files is stored in a JSON file in Saved Messages. This solves important issues:
The program uses SHA-256 but this is CPU and storage-intensive. Maybe something lighter can be used, a fast non-cryptographic algorithm. This is used by TG too, is supporting hardware acceleration (AVX2), and has a python implementation:
https://github.com/Cyan4973/xxHash https://github.com/Cyan4973/xxHash/wiki/Performance-comparison
Currently, the upload speed is very good for bigger files but it slows down when uploading smaller files. Uploading files in parallel will be beneficial in this case. Can this be made for UploadGram?
https://gist.github.com/painor/7e74de80ae0c819d3e9abcf9989a8dd6
Now only one folder path can be used for upload. Please add an option for choosing multiple folder paths. This is useful if the folders are in different partitions and cannot be put in a single parent folder. Also, it will be helpful if the users could choose multiple pairs of folders-destination. For example folder A to be uploaded in channel B, folder C in channel D.
Another handy feature is to keep track of data volume uploaded, convenient if users choose later to download everything or only some folders, to have an idea of space needed on HDD. Of course, this will require adding an option to download files, currently missing from the script.
A filtering feature will be nice to have, working by whitelist or blacklist, so the users can upload only some files from the folders or preventing other types to be upload.
Thank you for your time!