Estoy codificando una extensión que descarga elementos con nombres específicos. Actualmente, tengo dos tipos de elementos para descargar:
chrome.downloads.download (tipo A)chrome.downloads.onDeterminingFilename.addListener (tipo B) El problema es que chrome.downloads.onDeterminingFilename.addListener interfiere con todas las descargas, independientemente de los parámetros establecidos. Solo quiero que cambie el nombre del archivo cuando se descarga el elemento de tipo B.
Resumen básico de mi código
chrome.downloads.download({ //type A items url: item.imageLink, //set linkURL filename: setName //set name }); //item will be downloaded with *setName* chrome.downloads.onDeterminingFilename.addListener((downloadItem, suggest) => { //type B items //item will be intercepted, its name being its original filename if (item != null && item.type == "B" && downloadItem.url == item.imageLink) { //check linkURL suggest({filename: setName, conflictAction: "uniquify"}); //item's filename will be changed to *setName* } }); A menos que elimine chrome.downloads.onDeterminingFilename completo, el archivo descargado tendrá su nombre de archivo original, independientemente del tipo que sea.
Pensé en 3 posibles soluciones:
chrome.downloads.onDeterminingFilename , haz que cambie el nombre de cada elemento descargado.chrome.downloads.onDeterminingFilename cuando no sean elementos de tipo B y agréguelo cuando lo sea.chrome.downloads.onDeterminingFilename¿Alguna otra sugerencia o estoy haciendo todo esto mal?