Se você conhece os caminhos dos arquivos que está baixando (por exemplo, se os colocar todos em um diretório), poderá verificar se esses arquivos ainda estão abertos.
lsof ~/Downloads
Você pode receber uma notificação quando o Google Chrome terminar de escrevê-las (assumindo Linux :
inotifywait -e close_write ~/Downloads
Se você quiser listar todos os downloads pendentes (ou os terminados), uma maneira desajeitada é acessar o banco de dados do Chrome. Como o Chrome mantém o banco de dados bloqueado, você não pode acessá-lo diretamente (pelo menos não com a linha de comando sqlite3
tool), você precisa fazer uma cópia do arquivo, e há uma pequena chance de obter um inconsistente vista, então isso não é completamente confiável, mas deve ser bom o suficiente para uso casual.
tmp=$(mktemp)
cp ~/.config/google-chrome/Default/Downloads "$tmp"
echo 'select target_path from downloads where end_time is null;' | sqlite3 "$tmp"
rm "$tmp"
A melhor abordagem provavelmente seria fazer o Chrome notificá-lo quando o download terminar. A extensão Download Notifier faz isso, mas tem efeitos adicionais adicionais e oferece a você uma notificação de desktop, não é algo que você pode usar facilmente a partir da linha de comando. A parte principal do código parece ser esta:
chrome.downloads.onChanged.addListener(function(obj) {
if (obj.hasOwnProperty("state") && obj.state.current === "complete") {
chrome.downloads.search({id: did}, function(items) {
filename = items[0].filename;
…
}
}
});
…
precisaria ser preenchido com um método para se comunicar com o mundo externo (criar um arquivo em algum lugar no diretório da extensão, talvez), o que está além do meu conhecimento de programação de extensão do Chrome.