Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: [AutoIt] Работа с Яндекс.Диск и плагином WebDAV 
Author Message
Skif_off



PostPosted: Sat Apr 22, 2017 05:23    Post subject: [AutoIt] Работа с Яндекс.Диск и плагином WebDAV Reply with quote

Преамбула. Плагин WebDAV имеет одну неудобную особенность: операция удаления файлов/папок не может работать в фоне, блокируя окно ТС, что неудобно, если процесс затянулся. В поисках возможности прикрутить для этого стороннее средство в голову пришла мысль избавиться от необходимости логиниться в браузере и родилось это.

Скрипт умеет:
- удалять файлы/папки;
- публиковать файлы/папки (если объект уже был опубликован, то будет показана предыдущая ссылка);
- закрывать файлы/папки;
- проверять, опубликованы ли выделенные файлы/папки;
- получать хэши выделенных файлов (MD5);
- показать доступное и занятое место.
В первом и третьем случае будет показан диалог, подобный ТС (подтверждение и список имён, не более 5 штук). Во втором, четвёртом и пятом - окно с результирующей таблицей с возможностью скопировать все или только выделенные (просто ссылки или оформленные, как ссылка в HTML или в BBcode), при этом копируются только пункты со ссылкой или с хэшем.

Если это не быстрое соединение ("Quick connection"), то скрипт попытается прочитать адрес сервера, имя пользователя и пароль из файла конфигурации tcwebdav.ini:
- если удалось прочитать имя пользователя и пароль, то они будут использоваться без запроса ввода;
- если удалось прочитать только имя пользователя, то в окно ввода имени пользователя/пароля будет автоматически вставлено имя пользователя, а фокус ввода (курсор) будет поставлен на поле ввода пароля;
Если пароль защищён главным паролем, то скрипт предложит ввести пароль аккуанта!

Задуман и реализован для работы с Total Commander и Double Commander (учтены особенности получения списка файлов/папок и адресов): скрипт проверяет имя родительского процесса и если в его имени не содержится "doublec" или "totalcmd", то скрипт будет завершён с предупреждением.

Ссылка (0.0.4.0 / 2018.09.17).
Писалось и проверялось на AutoIt 3.3.8.1, версии выше пока не проверялись, могут быть проблемы (что-то там менялось в работе с COM-объектами), т.к. используется COM-объект WinHttp.WinHttpRequest.5.1.
Скрипт использует WebDAV API, для доступа используется Basic-аутентификация (как и в плагине WebDAV).

Параметры запуска:
Code:
удаляем файлы/папки
  "%WL" --del
публикуем файлы/папки (если файл/папка уже опубликованы, будет просто показан адрес)
  "%WL" --public
закрываем файлы/папки
  "%WL" --public-del
проверяем, опубликованы ли файлы/папки
  "%WL" --public-check
получить контрольные суммы (MD5) выделенных файлов
   "%WL" --md5
  или
   "%WL" --md5 "path"
  где path - каталог для сохранения MD5-файла ***
свободное и занятое место
  "%WL" --size

Где %WL - список в UTF-16LE. Для Double Commander список для единообразия необходимо задавать как "%/1%LW" (без кавычек).
***
 Hidden text


Пример кнопки:
Code:
TOTALCMD#BAR#DATA
"%COMMANDER_PATH%\AutoIt3.exe" "%COMMANDER_PATH%\Utils\YandexDiskWebDAV.au3"
"%WL" --public-check
%COMMANDER_PATH%\AutoIt3.exe
проверить, опубликованы ли файлы/папки
%COMMANDER_PATH%\Utils\

-1

AutoIt3.exe брать на офсайте, либо попробовать вариант с /AutoIt3ExecuteScript (пример запуска нескомпилированного скрипта здесь, если используется скомпилированная версия TabsList, то вполне можно использовать её).

User Agent, не мудрствуя лукаво, соответствует IE11 на Win7x86, без излишеств
Code:
Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko


Last edited by Skif_off on Mon Sep 17, 2018 22:12; edited 15 times in total
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group