newhinton / Round-Sync

An android cloud file manager, powered by rclone. Visit https://roundsync.com for more information!
https://roundsync.com
GNU General Public License v3.0
1.25k stars 50 forks source link

Enable passing additional flags to rclone for each remote #152

Open jcastilloalonso opened 1 year ago

jcastilloalonso commented 1 year ago

Pre-Submission checklist

What version of extRact are you using (About -> App version)?

2.2.2

What problem are you trying to solve?

As we all know, rclone is super versatile and supports an incredible amount of flags and configuration. This sometimes results in Round-Sync being limited in what has been coded for a GUI. For example, some providers limit API calls per account and we might be using it in multiple locations so we need to do particular tpslimit calls to minimize throttling, or for OneDrive we might want to avoid to create versioning of the sync files, or use a particular date or filter (include/exclude flags for example) Making it very flexible for people already familiar with Rclone.

What should extRact be able to do differently to help with this problem?

Ideally when editing a remote inside Round-Sync, a button or section called "advanced" should be added, maybe show a disclaimer to not mess around unless you know what you are doing and explain that when interacting with that remote those flags will just be passed to rclone binary.

newhinton commented 1 year ago

There are multiple issues with this request:

Creating a simple to understand ux that allows access to all of the flags, without having to compromise on the other points

As before with the provider, manually adding all flags is really expensive in terms of maintenance. Especially if the rclone version changes flags.

Each flag might affect sync, copy, list or dir operations. There are many hidden "tasks" that are required to make this app work, and allowing those to be influenced by flags might result in very bad, unpredictable behaviour. Limiting flags to a known set heavily reduces this probability.

If we find a way to get all available flags in a machine-readable format, we can start thinking about this. But in the meantime, i will not work on this, because there are more pressing tasks that i need to do. If you need a specific flag, for a specific reason, i might implement it in one way or another in the meantime.

jcastilloalonso commented 1 year ago

Thanks for the reply. I agree with your reasoning. In particular I'm interested in fast-list flag as in OneDrive and 1.65 beta, Nick implemented logic to use ListR that results in using an API Microsoft is more lax on throttling.

Another flag I would use is --onedrive-no-versions as OneDrive and Sharepoint create a version every single time a file is touched, eating quota space, and the only systematically way to clean the versions is with a cleanup command that is very heavy in API throttling, so usually takes a couple of days to run across all my remotes.

The way I was envisioning my original feature is a advanced (maybe even hidden like developer tools are in Android) where people who have issues or savvy enough to venture into Github and read/troubleshoot can unlock and implement some edge scenario flags that do not matter 99% of day to day users. The problem with rclone is that is too powerful/customizable that easily overwhelms casual users. So I totally agree with your vision of making RoundSync a tool that regular day to day users can download/use and just enjoy, yet I would be lying if I would also not love to be able to tweak every single parameter of the application.

All that being said, I'm realistic and totally understand your time is limited and this is a free application. And your time is way better spent in making it as easy as possible to target as much audience as possible. And each flag/option you add results in additional upkeep of the application and more documentation on what each option does, so I totally understand this not being implemented.

newhinton commented 1 year ago

--onedrive-no-versions is already available. Backend Flags will be added automatically as they become available via the remote editor. Only the non-backend-flags are not generally available to configure by yourself.

jcastilloalonso commented 1 year ago

Thanks, another that I thought of is --fast-list or in contrast --disable ListR to either force or disable fast list in Android with low or high memory.