Integrity Checker — работа с хеш-суммами выделенных файлов

Здесь можно обсудить ваш любимый плагин.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

Анонс

Хотелки от пользователей:
  • работа с плагиновыми панелями, на которых реальные файлы
  • сравнить хэш с содержимым клипборда
  • возможность использовать upper case для шестнадцатеричного вывода
  • поддержка выбора кодировки для файлов хеш-листов
  • опция 1 хеш файл на 1 каталог
  • генерация одновременно нескольких хешей для файла
  • возможность сравнить вновь вычисленный хэш с предыдущим
  • запуск генератора через префикс
  • сохранение в лог ошибок при генерации
  • добавить поддержку ed2k хешей
Для желающих тестировать последние изменения, актуальные бинарники можно взять здесь. (Уже нельзя)
Last edited by Ariman on Tue 04 May, 2021 08:01, edited 14 times in total.
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Latest post of the previous page:

Pasha_ZZZ wrote: Sat 21 May, 2022 09:05 Папка 33 гига
Ну и не надо. Вроде, всё заработало.
Pasha_ZZZ wrote: Sat 21 May, 2022 09:05 фар просто висит долгое время
Я же писал, что без визуализации прогресса.
Pasha_ZZZ wrote: Sat 21 May, 2022 09:05 И выделение, кстати, не снимает
Исправил.
Pasha_ZZZ wrote: Sat 21 May, 2022 09:05 висит долгое время
Ну, быстрее, чем если встроить в плагин, точно не будет. Но на безрыбье и сам раком встанешь… .
Визуализацию прогресса могу доделать - не проблема. С точностью до файлов (не до байтов!). Просто чтоб не скучно было на панельки пялиться ;-) Но всё же не надо на каждый файл вызывать проверку - уже приятнее.
Pasha_ZZZ wrote: Sat 21 May, 2022 09:05 Не думаю, что надо дальше продолжать дорабатывать скрипт
Я всё же доделаю до состояния работоспособности. А Вы можете ждать, пока плагин доделают.
Pasha_ZZZ
Posts: 436
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Pasha_ZZZ »

buniak_a_h wrote: Sat 21 May, 2022 09:42 Я всё же доделаю до состояния работоспособности
Лучше тогда может как с Ctrl+G? Чтобы скрипт автоматом закрывал окошки о результате проверки? И считывал из них имена с ошибками, если таковые есть. А в конце показывал, что получилось. Только вот как сделать, чтобы после отмены следующие файлы не проверялись - даже не знаю.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

Pasha_ZZZ wrote: Sat 21 May, 2022 06:19
  1. Сайт RHash из ридми много лет не але, надо заменить на сф или гитхаб.
  2. Не указано, на какой версии RHash база сабжа.
  3. В новых версиях RHash добавлялись новые алго. Из нужных - BLAKE2, он используется, например, в WinRAR. Скорость очень неплоха, по сравнению с тем же тормознутейшим SHA3.
Действительно, не але. Заменил ссылку, спасибо.
В текущей версии rhash 1.4.1. Я либу обновляю периодически, если есть что обновлять.
Pasha_ZZZ
Posts: 436
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Pasha_ZZZ »

Ariman wrote: Sat 21 May, 2022 09:56 В текущей версии rhash 1.4.1.
В 1.4.1 как раз была добавлена поддержка BLAKE2 (в WinRAR юзается blake2sp если что).
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Pasha_ZZZ wrote: Sat 21 May, 2022 09:48 Лучше тогда может как с Ctrl+G? Чтобы скрипт автоматом закрывал окошки о результате проверки? И считывал из них имена с ошибками, если таковые есть. А в конце показывал, что получилось.
Скрипт и так закрывает окошки с результатами проверки, выводимые плагином, и накапливает из них имена невалидных файлов, которые показывает в конце.
Pasha_ZZZ wrote: Sat 21 May, 2022 09:48 Только вот как сделать, чтобы после отмены следующие файлы не проверялись - даже не знаю.
Думаю, я знаю. Вот сделаю визуализацию прогресса с кнопкой "Прервать" - и сможете прервать (естественно, не сразу, а после уже начатой проверки).
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Ariman wrote: Версия 2.8.0
  • Макро-функция 'gethash' теперь возвращает строку 'userabort' если пользователь прервал операцию.
На самом деле хотелось бы, чтобы функция проверки файла по хэш-сумме в случае прерывания тоже возвращала что-то типа этого. Ну и вообще что-то возвращала (соответствует / не соответствует).
Вообще, почему-то для вычисления суммы используется Plugin.SynchCall, а для проверки - Plugin.Command. Логично было бы, чтоб механизм вызова как для генерации, так и для проверки был одинаковый. Ну, добавьте к "gethash" функцию "check"; вроде, всё для этого есть…
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Ariman!
P/S. А вообще, где можно прочитать про параметры вызова Call? Функция (gethash), вид КС и имя файла - это я понимаю. А там (в искаробочных скриптах) ещё есть параметр true; это - что? Я не заметил, чтоб он на что-то влиял…
Last edited by buniak_a_h on Sun 22 May, 2022 05:39, edited 1 time in total.
Pasha_ZZZ
Posts: 436
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Pasha_ZZZ »

buniak_a_h wrote: Sun 22 May, 2022 05:34 На самом деле хотелось бы
Если б еще в вызове можно было бы указать callback-функу, в которую периодически бы передавалось текущее состояние проверки - можно было бы нарисовать настоящий прогресс.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Shmuel »

Pasha_ZZZ wrote: Sun 22 May, 2022 06:25 Если б еще в вызове можно было бы указать callback-функу
Это возможно сделать, используя MCTL_EXECSTRING. Макрос одним из параметров передаёт callback-функцию в текстовом виде. Плагин вызывает её с параметрами в моменты, когда надо обновить прогресс.
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Pasha_ZZZ wrote: Sun 22 May, 2022 06:25 Если б еще в вызове можно было бы указать callback-функу, в которую периодически бы передавалось текущее состояние проверки - можно было бы нарисовать настоящий прогресс.
Ну, это уже эстетство. А вот возвращаемые значения - необходимость. Как выяснилось, открытие немодального диалога для показа прогреса и возможности прерывания делает некорректным работу ивентов. hDlg:send("DM_GETDIALOGINFO") возвращает nil !!! Так что идея с немодальным диалогом провалилась. Прерывание цикла по Esc (mf.waitkey(1)) тоже оказалось невозможным, т.к. Esc перехватывает плагин, начинает диалог подтверждения и, увы, ничего типа userabort не возвращает. Так что прервать (казалось бы, элементарное желание!) у меня не получилось :bang: Да и вообще, получение результата по ивенту на результирующий диалог - это как-то криво. Очень хочется просто анализировать ответ.
User avatar
buniak_a_h
Posts: 4266
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by buniak_a_h »

Shmuel wrote: Sun 22 May, 2022 08:48 Это возможно сделать, используя MCTL_EXECSTRING.
… … … …
Плагин вызывает её…
Так это в плагине уже есть, или его нужно переделать так, чтобы он вызывал?
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Shmuel »

buniak_a_h wrote: Sun 22 May, 2022 09:12 Так это в плагине уже есть, или его нужно переделать так, чтобы он вызывал?
Не переделать, а доделать. Заодно, кроме прогресса, можно получить возможность отмены/прерывания.
Pasha_ZZZ
Posts: 436
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Pasha_ZZZ »

buniak_a_h wrote: Sun 22 May, 2022 09:01 Очень хочется просто анализировать ответ.
По идее, реализация проверки нескольких выделенных файлов все-таки будет полнофункциональна только в самом плагине. На луа получаются только костыли с компромисами в виде частичной потери функционала.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

buniak_a_h wrote: Sun 22 May, 2022 05:38 Ariman!
P/S. А вообще, где можно прочитать про параметры вызова Call? Функция (gethash), вид КС и имя файла - это я понимаю. А там (в искаробочных скриптах) ещё есть параметр true; это - что? Я не заметил, чтоб он на что-то влиял…
Четвертый параметр это Quiet - показывать диалоги (ошибки, вопросы и т.д.) или нет.
Pasha_ZZZ wrote: Sun 22 May, 2022 06:25 Если б еще в вызове можно было бы указать callback-функу, в которую периодически бы передавалось текущее состояние проверки - можно было бы нарисовать настоящий прогресс.
А чем существующий прогресс не нравится? Макровызов считает указанный хеш для одного файла, для него же прогресс и показывает.
buniak_a_h wrote: Sun 22 May, 2022 05:34 На самом деле хотелось бы, чтобы функция проверки файла по хэш-сумме в случае прерывания тоже возвращала что-то типа этого. Ну и вообще что-то возвращала (соответствует / не соответствует).
Нет никакой отдельной функции проверки файла. Есть одна единственная функция gethash, которая считает хеш для одного файла. Полученный результат можно сохранить, можно сверить с существующим или ещё как использовать.
Отдельно есть префикс, которому можно скормить хешфайл. Это эквивалентно вызову проверки из меню. Но это не макрофункция, а классический префикс, который можно из командной строки дергать.
Pasha_ZZZ
Posts: 436
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Pasha_ZZZ »

Ariman wrote: Sun 22 May, 2022 09:43 А чем существующий прогресс не нравится? Макровызов считает указанный хеш для одного файла, для него же прогресс и показывает.
Потом выводит окошко с результатом (и останавливается). Если через Ctrl+G для выделенных файлов - окошко после каждого файла. И нет общего прогресса. И чтобы отменить подсчет - нужно отменять для каждого из непроверенных файлов.
Самое интересное, что опция для создания подобного набора есть (Отдельные хэш-файлы), а проверить весь набор сразу не получится, только поодиночке.
Ariman
Posts: 1351
Joined: Fri 30 Nov, 2007 15:32
Location: Крым
Has thanked: 15 times
Been thanked: 50 times
Contact:

Integrity Checker — работа с хеш-суммами выделенных файлов

Post by Ariman »

Если хочется красивее, то, как вариант, можно макросом слить все файлы в один временный, подсунуть его плагину, а потом, когда он закончит, файл удалить.
Post Reply

Return to “Обсуждение плагинов”