diff --git a/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py b/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py index 270d3915..dcd51dda 100644 --- a/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py +++ b/src/fenrirscreenreader/commands/onScreenUpdate/65000-progress_detector.py @@ -79,10 +79,12 @@ class command(): # Pattern 1b: Time/token activity (not percentage-based, so use single beep) timeMatch = re.search(r'(\d+)s\s', text) tokenMatch = re.search(r'(\d+)\s+tokens', text) - # Pattern 1c: Curl-style transfer data (bytes, speed indicators) + # Pattern 1c: dd command output (bytes copied with transfer rate) + ddMatch = re.search(r'\d+\s+bytes.*copied.*\d+\s+s.*[kMGT]?B/s', text) + # Pattern 1d: Curl-style transfer data (bytes, speed indicators) curlMatch = re.search(r'(\d+\s+\d+\s+\d+\s+\d+.*?(?:k|M|G)?.*?--:--:--|Speed)', text) - if timeMatch or tokenMatch or curlMatch: + if timeMatch or tokenMatch or ddMatch or curlMatch: # For non-percentage progress, use a single activity beep every 2 seconds if currentTime - self.env['commandBuffer']['lastProgressTime'] >= 2.0: self.env['runtime']['debug'].writeDebugOut("Playing activity beep for transfer progress", debug.debugLevel.INFO)