Страница 1 из 4

XPIInfo (content\Lister-плагин)

Добавлено: Чт май 25, 2006 00:00
SeLarin
Текущая версия 1.1d.
Обновлен 08.11.2007

XPIInfo предназначен для получения информации об xpi-файлах, в которых распространяются расширения и темы для Firefox, Thunderbird и других программ, основанных на XUL (в настоящее время плагин "знает" 12 программ). XPIInfo состоит из двух частей: content-плагина и Lister-плагина. В связи с тем, что обе части плагина делят между собой данные и большую часть кода, они объединены в один файл xpiinfo.wdx.

Сейчас плагин поддерживает большое количество информационных полей.
Вид информации, которую плагин выводит в Lister'е можно достаточно гибко настраивать с помощью шаблонов, переключаемых из контекстного меню.
Более подробную информацию о плагине можно узнать на домашней странице странице.

Плагин мультиязычный.
Скачать плагин можно по этой ссылке.

Добавлено: Чт май 25, 2006 00:35
funduk
SeLarin писал(а):А что строка автоопределения не должна восстанавливаться после стирания? Из SDK, предоставленого Ghisler'ом следует обратное...
Нет, не должна. Она должна повиноваться воле пользователя.

И не забудь создать тему на оффоруме.

Пожелания:
1. Мультиязычность, а не двуязычность.
2. Кэширование обязано быть отключаемым! В тотале при использовании wdx и обновлении информации в одном из xpi-файлов это обновление видно не сразу из-за собственно тоталовского кэширования. Тоталовский кэш сбросить легко - достаточно сменить в данной вкладке директорию. А вот плагиновый - надо тотал перезагружать (или выполнять команду cm_unloadplugins, но она выгружает ВСЕ плагины, какие сможет).
3. Шаблон может быть использован в wdx. Я видел, что на мозилловском форуме кому-то не хватило символов для задания всплывающей подсказки. Мне тоже не хватало (в AudioInfo, например) и я зарепортил это дело Гислеру. Он ответил, что рассмотрит предложение, но ничего не обещал. Так что вот моё решение проблемы:

Посмотри на mp3info. Главная фишка в том, что этот плагин в поля для wdx выводит форматированную информацию. Т.е. те недостающие подписи (типа "Описание:") задаются в настройках самого плагина (в его инишнике), а не в тотале. Жутко простое решение :)
В твоём случае в роли инишника будет один из шаблонов.
Естественно, что поля для вывода в подсказку и поля для вывода в колонке должны различаться (т.е. экспортироваться должно будет в два раза больше функций :))! (Чтобы в колонке для каждого файла не было написано "Описание: ...") И название этих самых полей тоже должны быть маленькими (descr=description), а название полей для колонок отличаться синтаксически с постоянным префиксом (например, col_...).

Добавлено: Чт май 25, 2006 01:03
stoneflash
Такую проблему нашёл: Если в файле XPIInfo.lng, который ты используешь для сохранения выбранного шаблона изменить имя шаблона на несуществующее, то при следующей попытке просмотра по Ctrl+Q или F3 вылетает весь тотал. просто я как-то пользовался шаблоном, а потом удалил его... Вот и заметил это. Пусть, если шаблон отсутствует, плагин берёт первый по алфавиту. что ли...

Добавлено: Чт май 25, 2006 01:05
stoneflash
Новые шаблоны для forum.mozilla.ru . Теперь версия включена в заголовок (по-моему так лучше, а то она теряется). Строка Дата добавления/последнего обновления: заменена на просто Дата последнего обновления: . В шаблоне, где выводятся только иконки в списке совместимых продуктов теперь они выводятся в одну строку.
Все три шаблона также перевёл в html. в html-шаблонах нет строки типа [КОД_ПОДДЕРЖИВАЕМОГО_ПРОДУКТА] Имя Версия
Лежат они здесь: http://people.mozilla.ru/stoneflash/misc/xpiinfo_tmpl/
Я думаю, каждый сам разберётся, где что.

Если надо ещё что-то: напишите. Попробую сделать.

Добавлено: Чт май 25, 2006 01:41
stoneflash
Ещё такую проблему заметил:
уже в нескольких расширениях GUID SeaMonkey
92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63 вместо
92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a

Второй случай забит в плагин. Также такой GUID стоит в таком расширении, как MR Tech Local Install, которое, имхо, ошибаться не может.

Хотелось бы ещё видеть функцию сохранения в файл. Просто сохранить в файл то, что вывелось по шаблону.

Добавлено: Чт май 25, 2006 09:29
SeLarin
funduk
Странно. А как сделать, чтобы тотал не перечитывал строку автоопределения? Плагин ведь не может этим управлять. У него просто запрашивают строку, ничего не сообщая при этом. Плагин строку честно отдает. Тотал честно использует.
На оффорум напишу попозже (когда разберусь с проблемами, замеченными соотечественниками :))
1. Мультиязычность сделаю.
2. При изменении свойств xpi-файла меняется сам файл (такова уж его природа), при этом меняется и время модификации файла. При запросе информации о файле плагин проверяет его время модификации и если оно отличается от того, что сохранено в кеше, то информация перечитывается заново. Таким образом плагин выдаст старую информацию по модифицированному архиву, только если время модификации старого и модифицированного архива совпадает. В таких условиях кеш можно и не очищать, он сам обновится в случае чего.
3. Что-то уж очень сложная получается схема. Я предлагаю такой вариант: добавить для wdx еще одно поле Template, которое будет форматироваться в соответствии с шаблоном, указанном в настройках. И его использовать только в tooltip... Правда тут вступает в игру ограничение на длину строки, которую можно вернуть в тотал (1023 символа). Но в принципе килобайт информации в сплывающей подсказке - это очень много, на мой взгляд.

stoneflash
1. Странно. У меня там написана вроде как защита от ошибок. Значит, баг. Буду исправлять. Даже уже исправил, но пока не выпустил в свет. В этом случае выводится сообщение об ощибке (пока на английском, не локализуется).
2. Однозначно тебя в contributors! :)
3. 92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63 - это неправильный GUID: он короче чем надо. А с "правильностью" Mr Tech Local Install я уже столкнулся: у него в нескольких последних версиях install.rdf вообще не явялется "well-formed XML" и при его парсинге выдается ошибка.
4. Ага. Сделаю.

Добавлено: Чт май 25, 2006 10:36
funduk
добавить для wdx еще одно поле Template, которое будет форматироваться в соответствии с шаблоном, указанном в настройках.
Боюсь, что у тебя перевод строки не получится реализовать. В тултипах, имхо, это только через тотал (\n).
Так что только дублированные поля. :) Т.к. вся инфа в одной строке неудобна для прочтения.
А килобайт - он же с учётом форматирования, так что в тултипе будет чуть-чуть поменьше, но да, всё равно много.

Добавлено: Чт май 25, 2006 13:01
SeLarin
Надо проверить. Вдруг получится. :) А килобайт - это максимальная длина строки, которую тотал принимает от плагина за раз, т.е. максимальная длина "чистой информации", без учета шаблонов и форматирований. Просто мне очень сильно не хочется возиться с дублированием полей.
Но пока у меня "шаблонирование" тултипов не на первом месте...

Добавлено: Чт май 25, 2006 13:02
Parcan
2 SeLarin
Странно. А как сделать, чтобы тотал не перечитывал строку автоопределения? Плагин ведь не может этим управлять. У него просто запрашивают строку, ничего не сообщая при этом. Плагин строку честно отдает. Тотал честно использует.
ты прав интерфесов плагинов это не предусмотрено... решают наверное 2мя способами:
1. нет функции ListGetDetectString(), а пользователь сам пропишер строку если надо.
2. есть настройка твоего плагина в зависимоти от которой возвращается детект-строка или пустая строка (пустая строка всеравно что функция не определена).

Добавлено: Чт май 25, 2006 13:18
funduk
2Parcan
А как же тогда автоподстановка в wincmd.ini детект-строки при установке плагина? А потом её меняй сколько влезет...
Это я по первому пункту... Если нет этой функции, то тотал при установке детект-строку пустой сделает?

В общем: например, в MPlayer4TC (он с исходниками, так что SeLarin может посмотреть :)), при установке появляется какая-то детект-строка, а потом правится юзером и не менятся самим тоталом от перезапуска к перезапуску. Так и надо.

Добавлено: Чт май 25, 2006 13:26
SeLarin
А я вообще хотел узнать, а насколько это необходимо? У меня самого за все время работы с TC и его плагинами никогда не возникало жедания править строки определения. Да и кому как не разработчику знать как именно определить те файлы, с которыми плагин может работать. Ведь сам Ghisler предупреждает
It's very important to define a good test string, especially when there are dozens of plugins loaded! The test string allows lister to load only those plugins relevant for that specific file type.

Добавлено: Чт май 25, 2006 13:28
SeLarin
funduk
А я вот все никак в толк не возьму каким образом она восстанавливается у тебя, если TC ее получает только один раз: при первой загрузке плагина...

Добавлено: Чт май 25, 2006 13:32
funduk
Ну так вот именно что при первой загрузке плагина, но за сессию, а не вообще при первой в жизни. С каждой новой загрузкой тотала ДС становится по умолчанию как только я посмотрю на xpi.

2Parcan
Как ты говоришь тоталу, какая должна быть ДС? В подробностях, если можно.

Добавлено: Чт май 25, 2006 17:37
Parcan
2 funduk and SeLarin
насколько я знаю тотал запрашивает детект-строку при первом вызове плагина если она в его настройках не прописана, если в wincmd.ini для плагина есть детект-строка, то тотал вообще не спрашивает у плагина какой она должна быть.

2 funduk
а детект-строка у меня генерится вообще страшным образом лучше и не рассказывать, но в общих чертах бороздит все настройки плагина и смотрит что в зависимости от настроек туда вставить а что нет.

Добавлено: Чт май 25, 2006 19:54
funduk
Всё понятно - это баг в TCPlugman'е. Он при стирании детект-строки вообще о ней информацию из wincmd.ini стирает, в то время как надо оставлять 10_detect= (т.е. запись о ней оставлять пустой).