HTA-приложение "FB2CheckContentTypes"

81 views
Skip to first unread message

Sclex

unread,
Jul 23, 2025, 2:00:50 PMJul 23
to Fiction Book Editor
Я сделал и залил в GitHub-хранилище новое HTA-приложение - называется "FB2CheckContentTypes". Сокращенно - "FB2CCT". Текущая версия - 1.0.

Данное приложение проверяет двоичные вложения выбранного пользователем FB2-документа на предмет несовпадения *прописанного* content-type-а с content-type-ом *фактическим*. Например, если у вложения прописан content-type "image/jpeg", а на самом деле это файл в формате WEBP, то приложение напишет об этом.

Приложение НЕ проверяет вложения - графические файлы на полную корректность. Тип файла определяется по сигнатуре (т.е. только по нескольким байтам файла). На текущий момент приложение умеет определять ТРИ типа файлов: JPEG, PNG и WEBP.

У приложения есть три разные подверсии, которые используют разные версии MSXML. Если не знаете, какие версии MXSML имеются у вас в Windows, то работоспособность подверсий приложения можете выяснить путем эксперимента.

Принимаю пожелания касательно функционала и интерфейса данного приложения.

FB2CheckContentTypes_OldMSXML.hta
FB2CheckContentTypes_MSXML4.hta

Снимок окна приложения с примером его (приложения) вывода:
Clipboard77.png

Федор

unread,
Jul 24, 2025, 2:01:10 AMJul 24
to fiction-b...@googlegroups.com
Спасибо! 
Было бы здорово если бы была возможность конвертировать файлы webp и gif (тоже начали часто появляться в книгах) в формат jpg.
Я сейчас использую в своей программке такие сигнатуры:
            // Определяем правильное расширение картинки по признаку в coverBodyText (секция binary)
            if (coverBodyTextExt.Contains("/9j/")) rezult = ".jpg";
            else if (coverBodyTextExt.Contains("iVBOR")) rezult = ".png";
            else if (coverBodyTextExt.Contains("UklGR")) rezult = ".webp";
            else if (coverBodyTextExt.Contains("SUkqA")) rezult = ".tif";
            else if (coverBodyTextExt.Contains("Qk")) rezult = ".bmp";
            else if (coverBodyTextExt.Contains("R0lGOD")) rezult = ".gif";
            else rezult = "Не поддерживается";
Потом сохраняю файл webp на диск и в FSViewer79 смотрю и если он мне нужен конвертирую и потом вставляю его в книгу. Это слишком долго и утомительно. Оптимально если бы файл конвертировался и сразу заменялся в книге.

ср, 23 июл. 2025 г. в 21:00, Sclex <scl...@gmail.com>:
--
Вы получили это сообщение, поскольку подписаны на группу "Fiction Book Editor".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес fiction-book-ed...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/b3720e1b-b2cd-47af-b13a-8c9908476fa9n%40googlegroups.com.


--
С уважением, Федор

Sclex

unread,
Jul 24, 2025, 4:26:09 AMJul 24
to Fiction Book Editor
> Спасибо!
Пожалуйста.

> Было бы здорово если бы была возможность конвертировать файлы webp и gif (тоже начали часто появляться в книгах) в формат jpg.
Конвертацию делать не буду, по крайней мере сейчас. Если сделаю когда-нибудь в будущем, то дам об этом знать.

> Я сейчас использую в своей программке такие сигнатуры:
Спасибо, наверно сейчас добавлю в мое приложение проверку сигнатур файлов tiff, bmp и gif. Мое приложение проверяет сигнатуры с учетом их позиции в файле, т.е. проверка более строгая, чем у вас.

четверг, 24 июля 2025 г. в 09:01:10 UTC+3, Федор:

Sclex

unread,
Jul 24, 2025, 4:58:44 AMJul 24
to Fiction Book Editor
HTA-приложение "FB2CheckContentTypes" обновлено до версии 1.1.
- теперь приложение будет уметь определять файлы GIF, TIFF и BMP.

Ссылки для скачивания файлов приложения (последняя версия):

четверг, 24 июля 2025 г. в 11:26:09 UTC+3, Sclex:

Федор

unread,
Jul 24, 2025, 5:36:42 AMJul 24
to fiction-b...@googlegroups.com
Спасибо!
Кстати, у меня позиция сигнатур тоже учитывается, т.к. считывается для проверки первые 10 символов файла.

чт, 24 июл. 2025 г. в 11:58, Sclex <scl...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/fiction-book-editor/61562963-a06d-483f-b6d0-ff5d745290a9n%40googlegroups.com.


--
С уважением, Федор

Sclex

unread,
Jul 24, 2025, 5:46:10 AMJul 24
to Fiction Book Editor
> Спасибо!
Пожалуйста.

> Кстати, у меня позиция сигнатур тоже учитывается, т.к. считывается для проверки первые 10 символов файла.
А... тогда хорошо.

четверг, 24 июля 2025 г. в 12:36:42 UTC+3, Федор:

SeNS

unread,
Jul 25, 2025, 11:54:07 AMJul 25
to Fiction Book Editor
@Sclex
>> Конвертацию делать не буду

Если дашь пример, как получить содержимое тэгов <binary> (base64 текст), и если MSHTML/Trident, на котором Мацнев "заточил" FBE позволяет делать HTTP POST, то я могу попробовать прикрутить у себя на сервере универсальный конвертер: отправил через json base64, в ответ получил корректный json с jpeg.

Хотя, с другой стороны, можно и проще: по-быстрому консольную "автоконвертилку" на C# написать - там вообще никаких проблем нет.
Если реально есть необходимость - дай(те) мне знать.

Ну, или я напишу и тут запощу, потом, если что, можно включить ее в пакет. 

P.S. 2 @Sclex: кстати, я проглядел группу: ты в каком-то сообщении жалуешься, что "новую инсталляцию некому собрать" - так я же, вроде, тебе подробно расписывал (и не так давно), как и что делать, и у тебя даже получалось?

Sclex

unread,
Jul 25, 2025, 1:49:30 PMJul 25
to Fiction Book Editor
> кстати, я проглядел группу: ты в каком-то сообщении жалуешься, что "новую инсталляцию некому собрать"
Это сообщение (в котором жалуюсь) - от 2017 года. Старое, в общем.

пятница, 25 июля 2025 г. в 18:54:07 UTC+3, SeNS:

SeNS

unread,
Jul 25, 2025, 3:05:07 PMJul 25
to Fiction Book Editor
Сорри, не обратил внимания на дату! Значит, теперь всё в порядке.
Reply all
Reply to author
Forward
0 new messages