[wdx] WinScript Advanced Content Plugin (x86\x64) (new)

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Gentoo69
Сообщения: 68
Зарегистрирован: Вс июл 11, 2010 19:58

[wdx] WinScript Advanced Content Plugin (x86\x64) (new)

Сообщение Gentoo69 »

WinScript Advanced
(c) Alex Shy, 2016 (= автор топика)

Тема на оффоруме

Контентный плагин WinScriptAdv запускает скрипты для каждого файла и папки и возвращает результат работы скрипта (строку) в колонки.
Вы можете писать скрипты для получения любой полезной информации из файла/папки или парсить имя для сортировки в требуемом порядке, переименования в инструменте группового переименования и т.д.

Вы можете активировать неограниченное количество скриптов в одной группе колонок (в одной панели) - они будут работать совместно.

Скрин 1
Скрин 2
Скрин 3

Возможности:

* До 21 колонки в одном скрипте
* Неограниченное количество совместно работающих скриптов (по 21 колонке на скрипт) в одной группе колонок
* Возможность изменять заголовки колонок
* Поддерживаемые языки:
  • VBS, (через COM)
    JS, (через COM)
    Python (*.py) (через COM)
    AutoHotKey (*.ahk) (через exe парсер)
    PHP (*.php) (через exe парсер)
    AutoIt (*.au3) (через exe парсер)
    PowerShell (*.ps1) (через exe парсер, всегда запущен)
см. рабочие примеры скриптов в папке Scripts.

* Возможность устанавливать собственные скриптовые движки, указав путь к exe интерпретатора.
* Стабильный и быстрый
(быстрый в случае использования языков через COM - VBS, JS, Python, языки, которые работают через exe парсер - заметно медленнее)
* С открытым исходным кодом (Delphi XE8) - будет открыт в ближайшее время

Полностью совместим со скриптами, созданными для плагина script_wdx (автор Lev Freidin, wincmd.ru и totalcmd.net), у вас нет необходимости исправлять их: скрипты для WinScriptAdv имеют тот же формат - переменная с именем "filename" и переменные с результатом content, content1, content2, ... content20 (всего 21).

[cut="Полезные скрипты (идут вместе с плагином):"]CheckEncoding.vbs
Возвращает кодировку файла и окончание строк. Например: ASCII - CRLF (Win)

Signature.vbs
Возвращает первые 10 байт файла в виде текста или hex-последовательности. Может быть полезен, например, для поиска файлов с указанием сигнатуры.

DayOfWeek
Показывает день недели даты модификации файла.

Html_info
Два поля для html-файлов: заголовок страницы (title) и ссылка, по которой файл был скачан ("saved from", если есть).

SearchInFile
Поиск по содержимому файла с помощью регулярного выражения.

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

FileOwner
Возвращает владельца файла/папки.

MinutesAgo
Возвращает разницу в минутах между текущей датой и датой папки/файла. Например:

Код: Выделить всё

Модифицирован: 
3 min ago

или

Код: Выделить всё

Создан: 
10 min ago
[/cut]

Скачать:
http://wincmd.ru/plugring/WinScriptAdv.html

Ваши предложения, сообщения о найденных ошибках, новые скрипты пожалуйста отправляйте в эту тему или в соседнюю.

**
Вы можете добавить все имеющиеся скрипты в раздел
[Script]
ActiveScripts=
Это не повлияет на производительность, т.к. скрипты запускаются только если колонка активна в ТС.

После этого можно добавить нужные колонки с разными скриптами и создать группы колонок, а затем легко переключаться между ними (нажав правую кнопку мыши в TC по колонке и выбрав в меню нужную группу колонок)
Последний раз редактировалось Gentoo69 Чт сен 01, 2016 17:40, всего редактировалось 6 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

О как. Предчуствие не обмануло, коль затягивал с выкладкой. Что называется, кто не успел, тот опоздал. :)
Skif_off более полноценный и грамотно оформленный перевод скидывал с описаниями. Перенаправил в ЛС.

Вопросы вероятно появятся после некоторых тестов.
Последний раз редактировалось Flasher Чт май 19, 2016 16:01, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Gentoo69
Сообщения: 68
Зарегистрирован: Вс июл 11, 2010 19:58

Сообщение Gentoo69 »

Flasher писал(а):О как. Предчуствие не обмануло, коль затягивал с выкладкой. Что называется, кто не успел, тот опоздал. :)
Skiff_off более полноценный и грамотно оформленный перевод скидывал с описаниями. Перенаправил в ЛС.

Вопросы вероятно появятся после некоторых тестов.
Обновил описание, спасибо Skiff_off и Flasher.

Инфу по поводу создания скриптов убрал из шапки форума в Readme (на англ.), кроме того, там содержится один ньюанс для скриптов, которые работают с exe парсерами напрямую (и только для них!) - нужно выводить результаты переменных content, content1 итп. в StdOut (в консоль).
(все это есть в примерах скриптов в папке Scripts, т.е. в принципе ридми можно и не читать :) - а сразу брать тестовый скрипт нужного разрешения и на его основе делать то, что Вам необходимо).
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Gentoo69
Шапка темы приведена в несколько более компактный вид. Дубль в "Автоматизации" удалён как нарушающий правила форума.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Rodny
Сообщения: 949
Зарегистрирован: Ср янв 24, 2007 00:59
Откуда: Могилёв, Беларусь

Сообщение Rodny »

Gentoo69
Не нужно файл в дистрибутиве называть options.ini, пускай он будет что-нибудь вроде options.ini.sample. А то при обновлении он затирает имеющийся файл.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Gentoo69
Отдельное спасибо за extensions и возврат значений из процедур! Теперь от лишнего кода можно избавиться.
1. Просьба ввести ключ 2 (только папки) для FoldersPaths.
2. У SCP была возможность обновлять возращаемые с обновлённым кодом поля без перезапуска ТС. Есть возможность осуществить?
3. Можно ли рассчитывать в будущем на ключ для пути к интерпретатору (без костылей с StdOut)?
4. В ReadMe перевод на русский хотелось бы. Строки снизу там лишние. И Alt+Backspace в AkelPad нажать не помешает.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Flasher
2. cm_UnloadPlugins, а потом cm_LoadAllOnDemandFields? Блин, а я перезапускал :)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off
Это-то понятно. Но я панель по Esc обновляю.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Flasher
cm_RereadSource?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Skif_off
Почти. 540,524.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Gentoo69
Сообщения: 68
Зарегистрирован: Вс июл 11, 2010 19:58

Сообщение Gentoo69 »

Flasher
1. Просьба ввести ключ 2 (только папки) для FoldersPaths.
Ok.
2. У SCP была возможность обновлять возращаемые с обновлённым кодом поля без перезапуска ТС. Есть возможность осуществить?
2.1 Закрыть > открыть TC это ж занимаем секунды.
2.2 По идее в options.ini придется не часто ходить (только во время добавления нового скрипта), один раз забрасываем все скрипты, прописываем их все в ActiveScripts (это не влияет на производительность, скрипты запускаются только если колонка видимая), далее включаем или отключаем их через TC - например можно создать группы нужных скриптов (т.е. колонок) и переключаться между ними в ТС (правая кнопка мыши по колонке).

3.
Можно ли рассчитывать в будущем на ключ для пути к интерпретатору?
Сейчас уже можно указать путь к любому интерпретатору в секции, к примеру копипаста из options.ini:

[ExeScriptParsers]
php=c:\php\php.exe
phpVarFormat=$filename='%s';
phpDoubleSlashPath=0
Можно ли рассчитывать в будущем на ключ для пути к интерпретатору, без костылей с StdOut [из скрипта]?
А как тогда получать результаты от скрипта в таких парсерах?
К примеру для php скрипта в конце кода нужно написать:

echo $content;
или
echo $content;
echo $content1;

...
Разве что плагин сам добавит эти строчки в скрипт.
Хм, а это идея, надо подумать.
Я правильно вас понял - т.е. суть в унификации - чтобы и vb\js\python (у них не нужно в скриптах выводить результаты на консоль, переменная читается напрямую через COM) и php имели один стандарт написания, чтобы не путаться?
4. В ReadMe перевод на русский хотелось бы.
Я за плагин смогу взяться только через пару недель, там еще PowerShell на очереди, так что если можете помочь с переводом ReadMe - это было бы прекрасно.
Строки снизу там лишние.
Это не баг, а фича :D - чтобы текст в конце файла можно было проскролить на середину экрана, а не направлять глаза и голову вниз монитора (на больших мониторах)
Последний раз редактировалось Gentoo69 Чт май 19, 2016 18:22, всего редактировалось 2 раза.
Аватара пользователя
Staniclaw
Сообщения: 533
Зарегистрирован: Вс дек 12, 2010 15:37
Откуда: Ташкент

Сообщение Staniclaw »

Gentoo69 писал(а):2.1 Закрыть > открыть TC это ж занимаем секунды.
А если открыта вкладка с результатами поиска?
Вечному двигателю -- вечные тормоза!..
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Gentoo69
2.1 Для тестов это крайне неприятная необходимость, когда проверка может возникать в минуту по неск. раз.
3. Та-ак. Я не обновился просто. В описании нигде не увидел. Теперь вижу. Тогда пойду смотреть. По идее и унификации всё верно.
4. Помочь не проблема, если кто-то не опередит. Там немного. Первый раз встречаюсь с фичей, но хозяин-барин. Но концевые пробелы вряд ли фича. ;)
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Skif_off
Сообщения: 1255
Зарегистрирован: Ср ноя 28, 2012 13:44

Сообщение Skif_off »

Gentoo69
Писал про #include <WinAPIFiles.au3>, прошу прощения, я был неправ: не заметил, что вы там используете константу $FO_READ

Код: Выделить всё

Local $hFileOpen = FileOpen($filename, $FO_READ)
(Обычно пишут числа и до 3.3.10.0 в документации в описании и примерах тоже писали сразу числа, хотя в 3.3.8.1 эти константы уже были.)

Проще записать в виде

Код: Выделить всё

Local $hFileOpen = FileOpen($filename, 0)
чтобы не тянуть include всего лишь из-за одной строки "Global Const $FO_READ = 0". В принципе, знакомый с AutoIt поймёт в чем дело, но я вас подвёл ненароком - из коробки пример стал нерабочим, ещё раз прошу прощения.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Gentoo69
3. Что-то у меня не получилось.

Код: Выделить всё

[ExeScriptParsers]
vbs=%COMMANDER_PATH%\Scripts\Parsers\wscript.exe
vbsVarFormat=filename="%s"
>>No data from script.

И да, было бы здорово указывать его отдельно для секций ActiveScripts, а не всех скриптов заданного расширения подряд.
Ответить