MD5 plugin for Far

Анонсы новых плагинов. Обсуждение плагинов ведется ниже.
Post Reply
Radist
Posts: 36
Joined: Wed 21 Sep, 2005 06:43
Contact:

MD5 plugin for Far

Post by Radist »

Приходится достаточно много с большими видеофайлами работать, приходится как-то контроллировать их целостность. Как наиболее эффективный способ контроля целостности файлов, используется контроль MD5 хешсумм.
Когда вопрос контроля только встал, через поисковик был найден в локалке файлик md5sum.exe, скопирован в system32 и были изучены его параметры. Долгое время его хватало, потом надоело набирать каждый раз сначала строки типа md5sum -c md5sum.md5, в результате чего файлы *.md5 были ассоциированы с соответствующей командой (точнее - с последовательностью консольных команд (ненавижу ГУИ там, где он не нужен, поэтому никаких неконсольных извращений не придумывал) ).
Затем набирать команды типа md5sum -b *.avi >md5sum.md5 и (в качестве дополнительной команды) md5sum -b *.mkv >>md5sum.md5 тоже надоело. В результате чего был написан плагин. Версия довольно сырая - поленился сделать хоть какой-то интерфейс, в общем, он мне и не нужен был - всё, что хотелось - возможности выделить файлы и подсчитать MD5-суммы, выводя их в файл. По идее, это дело надо организовать в отдельном потоке, но фар - не пуп земли и одно окошко можно свернуть (в принципе, мб. надо было организовать данный плагин как оболочку для вызова md5sum.exe, но как раз в руки попался модуль, считающий MD5-сумму (среди исходников InnoSetup откопал), поэтому сделал внутреннюю процедуру подсчета). Позже поле на этот форум, зашел в этот раздел и увидел некую тулзу для работы с MD5-суммами, которая показалась слишком сложной - ведь мне обычно надо подсчитать суммы для набора файлов, а позже и проверить. После этого поискал плагин на плугринге и получил список из двух плагинов: http://plugring.farmanager.com/cgi-bin/ ... chText=md5
Первый выдаёт результат в каком-то нестандартном виде, поэтому как вариант не рассматривался, второй работал слишком быстро, да и выдавал результаты в окошке, а кноака записи в файл не приводила к появлению файла, так что второй плагин тем более не подходит для поставленной мною задачи.

Тоесть, оказалось, что только мой плагин на пару с установленным проверщиком md5-сумм (это некая обёртка md5sum.exe - сам сделал inf-файл, дабы ленивым end-user'ам не объяснять долго, как работать с MD5-суммами). А по сему стало немного неприятно, что до сих пор не выложил это дело сюда.

Лично мне работоспособности плагина хватает, однако, думаю, имеет смысл сделать следующее:
1)немного улучшить интерфейс, так как не всем понравится черная строка вверху
2)добавить настройки, в частности - сделать возможным вызов md5sum.exe в отдельном окне вместо подсчета суммы самим плагином (хотя как по мне - проще свернуть это окошко и запустить другой Far, например у меня обычно запущено как минимум 2 Far'а)
3)наоборот - убрать всё лишнее и сократить плагин до оболочки вызова md5sum.exe
4)добавить проверку внутрь плагина (как по мне, проще запустить внешнюю прогу, но это скорее связано с тем, что было лениво дописывать проверку)
5)добавить поддержку CRC32-сумм (не видел стандартов, но я их форматирую в том-же стиле, что и MD5-суммы), а также SFV-сумм (отличаются от CRC32 в моём исполнении лишь синтаксисом файлов).
Для подсчета/проверки CRC32 у меня есть отдельная программа, собственноручно написанная (не нашел или лень было искать), которая также проверяет sfv-суммы, однако так как сам их не использую (не так надёжно, как md5), а лишь проверять приходится, то о добавлении такой возможности в плагин, при его написании, не задумывался. Да и в реестре прогу для проверки crc32/sfv не прописывал, так как сам стремлюсь популяризировать именно md5-суммы для видеофайлов, так что использую чисто для личных нужд, а появляется нужда достаточно редко, поэтому и не надоедает в консольке ключи писать.
6)локализация интерфейса (самому мне хватает и надписей на англиском)

В общем, все пожелания и отзывы можно посылать (спамеры этот абзац пропускают) по адресу radist-hack[эт]yandex.ru
А главное, что меня интересует - в какую сторону плагин развивать.

Писался и компилился плагин на Delphi 7.
Никаких дополнительных блокировок для файла с MD5-суммами не делал, так как подсчитывать паралельно МД5-суммы себе дороже: долго и слишком напрягает винт.
Чтобы не множить число модулей, модифицировал md5.pas, взятый из исходников InnoSetup. Вроде там написано "Still in the public domain.", что, я так понимаю, позволяет мне вносить свои модификации в файл, взятый для своего проекта. В исходники не включал стандартные заголовочные файлы plugin.pas и farcolor.pas - возьмите их в стандартном дистрибутиве Far1705.

Плагин должен работать на Far1705. В принципе, мб. функциональности 1.65 будет достаточно, однако я давно не использовал эту версию... В принципе, достаточно будет, наверное, перекомпилировать плагин с использованием соответствующих заголовков. Но не уверен в этом.

В прилагаемом архиве 3 папки. В папке MD5Far находится сам плагин - её надо распаковать в папку с плагинами Фара и использовать плагин в некомерческих целях. В папке src находятся исходники. Можете их использовать как хотите, но если будете реализовывать что-то не бесплатное - пишите код наново (на сколько я понимаю, лицензия на md5.pas - отдельная). И, наконец, в папке MD5ChkInst лежит 4 файла. Среди них - md5.inf, в контекстном меню которого, после того как вы распакуете эти 4 файла во временную папку, будет пункт Install (Установить). Его нужно выполнить для того, чтобы установить проверку MD5-сумм (проверка запускается при запуске *.md5-файлов).

Инструкция по использованию.
Выделяем нужные файлы, выбираем из списка плагинов пункт MD5, затем - вводим имя файла с MD5-суммами (по умолчанию - md5sum.md5). Жмём на "продолжить" и дожидаемся рассчета MD5-сумм. Если файл, имя которого мы указали, существует, то MD5-суммы будут дописаны в конец файла. (ожидается, что файл заканчивается на CRLF)

Для проверки файлов по сгенерированным суммам, просто запускаем файл (после установки md5.inf) - появится консольное окошко, в которое будут выводиться резальтаты проверки. После того, как все файлы будут проверены, закрыть окно можно нажав любую клавишу.

http://plugring.farmanager.com/plugin.php?pid=766&l=ru
Post Reply

Return to “Анонсы новых плагинов”