mmozeiko/RcloneBrowser

Progress bars don't show after v1.39 update

whitesnakeftw opened this issue · 8 comments

Same exact config: with 1.39 or later progress bars don't show. 1.38 is the latest rclone version that makes rcloneBrowser show bars.

Checking "verbose output" doesn't seem to make a difference.

+1 to this, though for me size, bandwidth, elapsed time, transferred, errors & checks don't populate at all.

having same issue here.

+1 to this, only progress bars of Elapsed time and Errors shows When I update my rclone to the lastest rclone v1.44.

Is it related to this?:
Upload progress blank? #117

Try using rclone from the command line and you'll note that there is no progress at all without the -P option.

       Note: Use the -P/--progress flag to view real-time transfer statistics
              rclone copy source:path dest:path [flags]

You can test the regex in src/job_widget.cpp against a standard pcre perl expression like so (e.g. rclone 1.45):

echo 'Transferred:       31.996M / 96.757 MBytes, 33%, 726.048 kBytes/s, ETA 1m31s' | perl -pe 's|^Transferred:\s+([0-9.]+)(\S)? \/ (\S+) (\S+), ([0-9%-]+), (\S+ \S+), (\S+) (\S+)$|\1 \2 \6|'
echo 'Errors:                 0' | perl -pe 's|^Errors:\s+(\S+)$|\1|'
echo 'Checks:                 0 / 0, -' | perl -pe 's|^Checks:\s+(\S+) \/ (\S+), [0-9%-]+$|\1|'
echo 'Transferred:            0 / 1, 0%' | perl -pe 's|^Transferred:\s+(\S+) \/ (\S+), [0-9%-]+$|\1|'
echo 'Elapsed time:       45.1s' | perl -pe 's|^Elapsed time:\s+(\S+)$|\1|'
echo ' *     myfile: 33% /96.757M, 1.937M/s, 33s' | perl -pe 's|\*([^:]+):\s*([^%]+)% \/[a-zA-z0-9.]+, [a-zA-z0-9.]+\/s, (\w+)$|\1|'

That's with the 1.43+ patterns defined by Handle changed progress output of Rclone 1.43.

Run rclone from a shell and copy/paste the output then apply the regex as noted in that file:

        QRegExp rxSize(R"(^Transferred:\s+(\S+ \S+) \(([^)]+)\)$)");  // Until rclone 1.42
        QRegExp rxSize2(R"(^Transferred:\s+([0-9.]+)(\S)? \/ (\S+) (\S+), ([0-9%-]+), (\S+ \S+), (\S+) (\S+)$)"); // Starting with rclone 1.43
        QRegExp rxErrors(R"(^Errors:\s+(\S+)$)");
        QRegExp rxChecks(R"(^Checks:\s+(\S+)$)"); // Until rclone 1.42
        QRegExp rxChecks2(R"(^Checks:\s+(\S+) \/ (\S+), [0-9%-]+$)"); // Starting with rclone 1.43
        QRegExp rxTransferred(R"(^Transferred:\s+(\S+)$)"); // Until rclone 1.42
        QRegExp rxTransferred2(R"(^Transferred:\s+(\S+) \/ (\S+), [0-9%-]+$)"); // Starting with rclone 1.43
        QRegExp rxTime(R"(^Elapsed time:\s+(\S+)$)");
        QRegExp rxProgress(R"(^\*([^:]+):\s*([^%]+)% done.+(ETA: [^)]+)$)"); // Until rclone 1.38
        QRegExp rxProgress2(R"(\*([^:]+):\s*([^%]+)% \/[a-zA-z0-9.]+, [a-zA-z0-9.]+\/s, (\w+)$)"); // Starting with rclone 1.39
            if (rxSize.exactMatch(line))
            {
                ui.size->setText(rxSize.cap(1));
                ui.bandwidth->setText(rxSize.cap(2));
            }
            else if (rxSize2.exactMatch(line))
            {
                ui.size->setText(rxSize2.cap(1) + " " + rxSize2.cap(2) + "Bytes");
                ui.bandwidth->setText(rxSize2.cap(6));
            }
            else if (rxErrors.exactMatch(line))
            {
                ui.errors->setText(rxErrors.cap(1));
            }
            else if (rxChecks.exactMatch(line))
            {
                ui.checks->setText(rxChecks.cap(1));
            }
            else if (rxChecks2.exactMatch(line))
            {
                ui.checks->setText(rxChecks2.cap(1));
            }
            else if (rxTransferred.exactMatch(line))
            {
                ui.transferred->setText(rxTransferred.cap(1));
            }
            else if (rxTransferred2.exactMatch(line))
            {
                ui.transferred->setText(rxTransferred2.cap(1));
            }
            else if (rxTime.exactMatch(line))
            {
                ui.elapsed->setText(rxTime.cap(1));
            }
            else if (rxProgress.exactMatch(line))
            {

The first part shows the regex and the second grabs the specified capture groups. Seems like they're mostly just the one.

I'm building from these repos and the dialogs work okay for my use case:
nce/rclone
JanHellwig/RcloneBrowser

@noabody Your are so great , and I hope your can release your build or pull requests so I can use it since I don't have CMAKE environment in my Windows system.
On the other hands , Is it a good idea to get rclone version by using rcloneGetVersion() (

void rcloneGetVersion();
) and then make different regexp?

As this repo is dead for so long I did some DIY combining various enhancements and fixes together and released binaries for macOS, Win64 and Linux64. If anybody is interested give it a try - https://github.com/kapitainsky/RcloneBrowser/releases