// ==UserScript==
// @name Auto Resume Downloads (Um por vez - PT/EN)
// @namespace [Link]
// @version 1.2
// @description Retoma automaticamente downloads com erro (português
ou inglês), um por vez, até completar
// @match chrome://downloads/
// @grant none
// ==/UserScript==
(function() {
'use strict';
let isProcessing = false;
const errorKeywords = [
'erro', 'interrompido', 'falha', // Português
'error', 'failed', 'interrupted' // Inglês
];
function hasError(text) {
const lower = [Link]();
return [Link](keyword => [Link](keyword));
function resumeNextDownload() {
if (isProcessing) return;
const manager = [Link]('downloads-manager');
if (!manager) return;
[16/08, 22:54] ChatGPT: const items =
[Link]('downloads-item');
for (const item of items) {
const root = [Link];
const stateEl = root?.querySelector('#tag');
const stateText = stateEl?.textContent?.trim();
if (stateText && hasError(stateText)) {
isProcessing = true;
const moreBtn = [Link]('#moreActions');
if (moreBtn) {
[Link]();
setTimeout(() => {
const menu = [Link]('cr-action-menu');
const menuShadow = menu?.shadowRoot;
const resumeBtn = menuShadow?.querySelector('#pause-
or-resume');
if (resumeBtn) {
[Link]();
setTimeout(() => {
isProcessing = false;
}, 10000); // Aguarda 10s antes de processar o próximo
}, 300);
}
break; // Processa um download por vez
setInterval(resumeNextDownload, 5000); // Verifica a cada 5 segundos
})();
```