Observer — распаковка файлов из различных контейнеров
Posted: Mon 31 Aug, 2009 11:29
by Ariman
Тема для обсуждения плагина Observer. Плагин предназначен только для распаковки файлов. Запаковка/редактирование архивов не планируется.
Хотелки/баги:
- MIME: показывать реальные размеры всех файлов внутри контейнеров
- ISO: исправить извлечение загрузочных HDD образов
- MIME: папки из вложенных multipart сообщений (или eml файлы)
- MSI: в {msi_info}.txt добавить секцию “[Services]” по мотивам таблицы ServiceInstall
- MSI: показывать встроенные служебные файлы
- VDISK: Не показываются скрытые файлы в vhd.
- Снимать атрибут Read-Only при перезаписи файлов
- Поддержка .msm файлов (MSI Merge Modules).
- Файлы *.hlf для Far 1.75 идут в кодировке UTF-8.
- Исправить поддержку русских имён на томах FAT32.
- MIME: сделать доступным заголовок письма в декодированном виде
- Добавить второй конфиг файл (observer_user.ini)
- Добавить поддержку Adobe PDF portfolio
- Добавить шорткаты для списка модулей.
- MPQ: Добавить поддержку list-файлов
- MIME: из дополнительной информации о файлах генерировать файл описаний
- PST: маркировать письма по статусу при помощи файловых атрибутов (ссылка)
- В режиме панели Unsorted показывать элементы в том порядке, в котором они приходят из модулей
- Поддержка длинных имён для FAT32.
- При выгрузке плагина не выгружается модуль VDISK.
- Загрузка модулей по мере необходимости.
- Добавить поддержку PDB
- Добавить опцию отключения авто-переименования файлов с одинаковыми именами
- MIME: добавить опцию, которая позволяет парсить файлы без пустой строки между телом и заголовком
- Показывать количество жёстких ссылок (hardlinks) на файл.
- Добавить возможность модулям выдавать диагностику контейнера.
- MSI: добавить поддержку mst
- Улучшить систему вывода ошибок
- Реализовать в виде модуля fb2bin
- Добавить возможность продолжить распаковку в случае ошибки
- Добавить возможность переименования проблемных файлов при распаковке
- Добавить поддержку UDF внутри .isz.
- Давать возможность просмотра скрипта NSIS в бинарном виде.
- Добавить поддержку формата OST.
- имя просматриваемого файла в заголовке панели и titlebar Far'а
- Добавить пункт Extract в меню плагина
- Расширение возможностей работы с префиксом
- Поддержка BSA
- Расширить индикатор прогресса
- Добавить поддержку макросов
- vise installer
- inno setup
- PDB
- WCX wrapper
- почтовые ящики формата mbox
- почтовые ящики формата tbb (от The Bat)
- виртуальные диски от vmware и virtual box
- isz образы (сжатый iso)
- MoPaQ архивы
Если "ничего не работает", то прежде чем писать сюда:
Читаем системные требования, убеждаемся что они выполнены полностью (найти можно в документации к плагину).
Если какой-то конкретный модуль не работает, то смотрим что он загружен. Для этого набираем F11 -> Observer -> Open file as... -> ищем имя в списке. Если модуля там нет, то он не загружен и работать не будет.
Чтобы увидеть ошибки при загрузке модулей выставляем значение VerboseModuleLoad=1 в файле observer.ini и перезапускаем Far.
Сторонние модули:
Dir — поддержка вывода команд dir и ls в качестве виртуального архива.
Inno Setup — поддержка файлов Inno Setup (сделан на основе innounp).
cab — распаковка нестандартных .cab архивов (Windows Update и др.)
Observer — распаковка файлов из различных контейнеров
Posted: Sat 11 Apr, 2020 22:30
by DV
Latest post of the previous page:
А где бы взять необходимый и достаточный для Observer набор .dll файлов из Visual C++ 2017 Redist, чтобы кинуть их в папку с FAR и не зависеть от того, установлен ли Visual C++ 2017 Redist в системе?
Observer — распаковка файлов из различных контейнеров
Posted: Sun 12 Apr, 2020 02:55
by buniak_a_h
Написал я скрипт, реализующий дерево папок на панели. В том числе и в архивах. Просили меня реализовать построение дерева и в "конгломератах", поддерживаемых Observer-ом (msi, iso). Мне для этого нужно получить листинг файлов (ну, папок). Увы, 7Z.exe на msi-сборках так лажается, что пользоваться им невозможно. А судя по тому, что Ваш плагин "открывает" указанные файлы, он как-то умеет это делать.
Итак, вопросы.
Есть ли интерфейс для вызова функций плагина из макросов (вызовами типа Plugin.Call(op, file, params))? Если нет - можно ли доделать?
Есть ли возможность:
получить список файлов внутри конгломерата?
распаковать один файл в указанное место?
Удалить, заменить файл?
-- Если пункта 2.a нету, то можно ли его доделать? Остальные пункты - не горят…
Observer — распаковка файлов из различных контейнеров
Posted: Sun 12 Apr, 2020 07:55
by Ariman
HaRT wrote: ↑Sat 11 Apr, 2020 21:58
Не влечёт ли это за собой вычёркивание каких-то элементов списка «Хотелки/баги» в заглавном сообщении Темы?
Оказалось, один пункт есть. Обновил.
DV wrote: ↑Sat 11 Apr, 2020 22:30
А где бы взять необходимый и достаточный для Observer набор .dll файлов из Visual C++ 2017 Redist, чтобы кинуть их в папку с FAR и не зависеть от того, установлен ли Visual C++ 2017 Redist в системе?
Без понятия, такие проблемы никогда не возникали. Самый очевидный способ - на системе с установленным redist-ом взять Dependency Walker, найти им полный список зависимостей и скопировать все эти файлы.
buniak_a_h wrote: ↑Sun 12 Apr, 2020 02:55
Есть ли интерфейс для вызова функций плагина из макросов (вызовами типа Plugin.Call(op, file, params))? Если нет - можно ли доделать?
Поддержки макросов в плагине сейчас нет. Доделать, в принципе, можно. Но когда это будет. Добавлю в первый пост пока, в список хотелок.
Observer — распаковка файлов из различных контейнеров
buniak_a_h wrote: ↑Sun 12 Apr, 2020 02:55
Есть ли интерфейс для вызова функций плагина из макросов (вызовами типа Plugin.Call(op, file, params))? Если нет - можно ли доделать?
Поддержки макросов в плагине сейчас нет. Доделать, в принципе, можно. Но когда это будет. Добавлю в первый пост пока, в список хотелок.
1. Спасибо за то, что не в игнор-лист, а в туду
2. Там ещё пара моих хотелок, связанных с поддержкой макросов, но "не жёстко". Я имею в виду, что, может, есть возможность при вызове по префиксу из командной строки получить список вложений или вытащить файло куда-надоть? Как временная мера устроило бы…
Observer — распаковка файлов из различных контейнеров
DV wrote: ↑Sat 11 Apr, 2020 22:30А где бы взять необходимый и достаточный для Observer набор .dll файлов из Visual C++ 2017 Redist, чтобы кинуть их в папку с FAR и не зависеть от того, установлен ли Visual C++ 2017 Redist в системе?
Без понятия, такие проблемы никогда не возникали. Самый очевидный способ - на системе с установленным redist-ом взять Dependency Walker, найти им полный список зависимостей и скопировать все эти файлы.
Observer — распаковка файлов из различных контейнеров
Posted: Sun 12 Apr, 2020 18:26
by Ariman
buniak_a_h wrote: ↑Sun 12 Apr, 2020 08:02
есть возможность при вызове по префиксу из командной строки получить список вложений или вытащить файло куда-надоть? Как временная мера устроило бы…
Это нет. Кодить что с префиксом, что с макросами примерно одинаково. Какой тогда смысл тратить время на временные костыли.
DV wrote: ↑Sun 12 Apr, 2020 12:23
Получается примерно такой скромный список.
Похоже на правду, хотя не факт, что там ещё чего-нибудь не потребуется. Всё-таки c++ redist не самая портабельная штука.
На случай, если Observer единственный плагин, кому эти файлы нужны, можно их в папку modules запихать. Чтобы не мусорить в корне Фара.
Observer — распаковка файлов из различных контейнеров
LAT wrote: ↑Sat 11 Apr, 2020 21:23В "анонсах" вроде бы ссылка только на исходники.
Если по ней пройти, то там достаточно несложно находятся бинарники в разделе Releases. Ну или можно, как заметил HaRT, воспользоваться ссылкой на последнюю сборку из шапки, там, в принципе, эквивалентные архивы лежат.
Спасибо. В Releases я заглянуть не догадался .
Observer — распаковка файлов из различных контейнеров
---------------------------
VDISK Prepare Error
---------------------------
Attempt to read beyond end of stream
---------------------------
ОК
---------------------------
И всё, файл не открывается нигде. В 1.11.2 он нормально открывался в ArcLite, VDISK не пытался делать странное.
Observer — распаковка файлов из различных контейнеров
Posted: Wed 29 Apr, 2020 10:23
by Pasha_ZZZ
Taciturn wrote: ↑Wed 29 Apr, 2020 09:38файл не открывается нигде
Ну почему же нигде? До сих пор открывается в ArcLite (F11 -> ArcLite -> Открыть архив).
Я у себя понизил приоритет Обсервера, чтобы он лез только когда другие открыть не смогли (переименовал 4Observer.dll в zObserver.dll)
Observer — распаковка файлов из различных контейнеров
Posted: Thu 30 Apr, 2020 17:02
by Taciturn
Pasha_ZZZ, если понизить приоритет Observer'а, то перестанут автоматически открываться некоторые форматы, т.к. ArcLite будет открывать их как PE. И я не хочу, чтобы ArcLite перестал открывать как PE то, что ни может открыть никакой другой плагин. А вот если исправить баг в VDISK, то всё будет хорошо.
Ну и я же не спрашивал, как мне открыть dmg — я сообщал в проблеме с Observer'ом.
Observer — распаковка файлов из различных контейнеров
Observer — распаковка файлов из различных контейнеров
Posted: Fri 01 May, 2020 09:21
by Ariman
Окошки, как справедливо заметил Pasha_ZZZ, можно убрать настройкой. А исправить открытие dmg я не смогу, этот формат обрабатывается сторонней либой. Как вариант, можно добавить расширение .dmg в игнор, чтобы плагин по Ctrl-PgDn не пробовал их открывать.
Observer — распаковка файлов из различных контейнеров
Posted: Fri 01 May, 2020 10:36
by Taciturn
Ariman, видимо я что-то делаю не так, но не работает.
Кстати, а нельзя окошки vdisk'а переделать на стандартные, для Far'а, текстовые ошибки?
Observer — распаковка файлов из различных контейнеров
Posted: Fri 01 May, 2020 10:39
by Pasha_ZZZ
Taciturn wrote: ↑Fri 01 May, 2020 10:36но не работает.
IgnoreFilter должен быть в General, т.е. IgnoreFilter=*.tar;*.dmg
Observer — распаковка файлов из различных контейнеров