Как заставить usercript не загружать уже существующий файл - PullRequest
0 голосов
/ 29 апреля 2020

Я использую Tampermonkey на мобильном телефоне firefox. В usercript я использую GM_download(url, name) для загрузки файла с URL. Когда он начинает загружать тот же файл в firefox, результатом будет:

Hello.txt

Hello (1) .txt

...

Hello (9) .txt

Я хочу знать, как не загружать дубликаты. Или способ заблокировать firefox Скачать дубликат.

Или получить список каталогов. Если файл уже существует, не скачивайте. В bash (linux cml) вы пишете ls, в windows вы пишете dir. Но как это было бы в userScript? Если вы напишите file:///storage/emulated/0/Download/Hello.txt в вашем браузере, он покажет все файлы, которые вы хотите (по этому адресу находится файл Hello.txt). Но я не могу получить это html или что-то еще через XMLHttpRequest

Ps: Извините за мой английский sh

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Вы не можете получить доступ к файловой системе, чтобы проверить, существует ли какой-либо файл. Это было бы довольно опасно для пользовательских скриптов - представьте, что вы установили пользовательский скрипт, который сделал это. Firefox даже не позволяет плагинам обращаться к файловой системе AFAIK, поэтому tampermonkey не может предоставить этот API.

Что вы можете сделать, это запомнить имя загруженного файла. Ваши варианты:

  • localStorage - например, установите localStorage[filename]=true, а затем проверьте это. Но если вы удалите файл на своем телефоне, это предотвратит его повторную загрузку
  • indexedDB Это лучше для сохранения данных, но проблема та же, что и для локального хранилища.
0 голосов
/ 29 апреля 2020

Вы можете сохранить список файлов, загруженных с помощью вашего пользовательского скрипта, но я не могу получить доступ к списку каталогов, я думаю.

...