Ищется расширение, которое ищет обновления для неустановленных на данном компьютере расширений, и скачивает новые версии расширений, если такие находятся.

Ёп. Это ж сколько надо времени, чтобы найти все неустановленные на твоём компьютере расширения.

TLemur
Если тебе это нужно для тех расширений, которые ты переводшь, но которыми не пользуешься, то не проще просто создать ещё 1 профиль, поставть туда все эти расширения и время от времени проверять всё это на обновление?

Quicksilver tears

Да, проще, но как-то неавтоматизировано, что ли...

Если какое-то полезное расширение глючит, то я его просто отключаю, а не удаляю.
Так я могу стандартным образом получить уведомление о его обновлении и проверить, пофиксены ли ошибки.
Достаточно простой способ.

TLemur
У меня есть тулзовина, написанная для себя, которая проверяет обновления для всех расширений, сложенных в папочке, но... это скрипт, написанный на PHP (обоснование выбора языка не спрашивайте). Если надо, то могу поделиться. И даже могу попробовать сделать что-то вроде stand-alone версии (скрипт + все необходимые для его запуска программы и библиотеки).

SeLarin

Буду благодарен. PHP есть под cygwin.

SeLarin
Коечно выложи. И мне тоже интересно. :)

TLemur
Какой cygwin?! Есть нативный windows! :) И не менее нативный *nix

TLemur
stoneflash
Хорошо, выложу. Только ногами за него не пинать!

SeLarin
Таки придётся тебе extension manager со встроенным xpiinfo и прочими приблудами мастерить. ;-)

Dimanish
Ага. Мультиязычный (в смысле на нескольких языках написанный)... :) Кстати, в новом TC есть возможность к content-плагину (коим и является XPIInfo) прикрутить редактор полей...

Итак, звуки фанфар... Тревожное ожидание...
Дамы и господа, разрешите вам представить скрипт update.php!!!

Методика использования (на сайте пока традиционно не описано ничего)
Положим у меня есть папка c:\ext, в которой лежат все расширения, для которых я собираюсь искать обновления. В этой папке я создаю ещё папку, например script (т.е. c:\ext\script), в которую распаковываю содержимое архива update.rar (3,1 Кб). После этого запускаю скрипт с помощью update.bat и после завершения работы получаю найденные обновления для расширений (лежат в папке скрипта). Для запуска необходимо, чтобы файл php.exe из дистрибутива PHP находился в каталоге, прописанном в переменной окружения PATH.
Для работы скрипт, естественно, требует установленного и настроенного PHP. Необходимо, чтобы загружались следующие расширения PHP: openssl, sockets, zip (файлы бибилиотек php_openssl.dll, php_sockets.dll и php_zip.dll).
Те у кого есть дела поважнее скачивания, установки и настройки PHP (например нужно срочно проверить обновления для расширений) могут просто скачать готовый к работе php_pack (2,2 Мб). Архив надо распаковать в любую папку, папку прописать в PATH.
Настройка в Linux/Unix может отличаться от описанной, php_pack работает только в Windows.

Все замечания, предложения и пожелания направлять ко мне по любому из доступных каналов связи.
Лицензии на скрипт нет, но всё-таки прошу уважать интеллектуальную собственность. ;)

SeLarin
Молодец! Классно получилось!
Верните назад репутацию! Дайте плюсов наставить! :lol: А потом можете убирать. :)

В общем так. Запустить просто скрипт из update.rar не получилось. Но, скорее всего, это из-за того, что у меня для php и сервера стоит Денвер (Я под Win). Запускается это у меня всё сразу по ярлычку и диск сразу создаётся.
Когда открывал update.bat - ничего не происходило. Окошко быстро открывалось и скрывалось.
Зато pack заработал как часы - закинул в одну папку с самим скриптом и всё заработало.
Всё нормально проверил на своих расширениях (какие перевожу). Проблема вышла только с Context Highlight 0.3. Скрипт скачал версию 0.11 . Хотя сам фокс обновления не находит. Проблема, в общем в сравнениях версий. Хотя по формальной логике 11 больше 3 ...
Сейчас ещё посмотрю, может придумаю что.
Хотя уже придумал: Может сделать более подробный лог? Чтобы расписывал по каждому расширению: URL xml-файла для обновления, URL, откуда скачано обновление, размер файла и т.д.

зы. а может тему перенсти куда-нибудь в другой раздел?

stoneflash

Значит, под Денвер он не работает? А какая версия?

TLemur
Старый. Там php 4.4.2.2 . Никак не смог запустить. Лучше пак скачай - всё просто.

TLemur пишет

Quicksilver tears

Да, проще, но как-то неавтоматизировано, что ли...

а если расширения поставить но отключить???

TLemur
stoneflash
Он под Denver может работать (наверное), но его надо настраивать вручную. Причём поскольку я этот самый Денвер видел один раз, то я не знаю как именно его надо настраивать. Так что пак лучше. :)

stoneflash

Когда открывал update.bat - ничего не происходило. Окошко быстро открывалось и скрывалось.

Правильно. У тебя же папка с php.exe наверняка не прописана в PATH, к тому же для PHP4 надо запускать php-cli.exe, к тому же...

Проблема, в общем в сравнениях версий. Хотя по формальной логике 11 больше 3 ...

Я не виноват. Модуль для сравнения версий писал не я. Я его честно стырил с Багзиллы по наводке с нашего форума, кстати... Надо поискать тему, в которой меня на него вывели и посмотреть не обновили ли там скрипт...

Может сделать более подробный лог? Чтобы расписывал по каждому расширению: URL xml-файла для обновления, URL, откуда скачано обновление, размер файла и т.д.

А он сильно нужен? Я могу сказать, что эта информация будет не очень интересна по простой причине: большинство расширений хостятся на addons.mozilla.org и, следовательно манифесты обновлений скачиваются оттуда (причём URL просто дикие) и сами расширения тоже преимущественно скачиваются оттуда. Так что такой лог будет забит однообразной инфой на самом деле. А объём скачанного файла и так пишется...

SeLarin

Правильно. У тебя же папка с php.exe наверняка не прописана в PATH, к тому же для PHP4 надо запускать php-cli.exe, к тому же...

НУ это ладно. Ничего я дополнительно не настраивал, поэтому и не работает.

Я не виноват. Модуль для сравнения версий писал не я. Я его честно стырил с Багзиллы по наводке с нашего форума, кстати... Надо поискать тему, в которой меня на него вывели и посмотреть не обновили ли там скрипт...

А он для чего писался?

А он сильно нужен? Я могу сказать, что эта информация будет не очень интересна по простой причине: большинство расширений хостятся на addons.mozilla.org и, следовательно манифесты обновлений скачиваются оттуда (причём URL просто дикие) и сами расширения тоже преимущественно скачиваются оттуда. Так что такой лог будет забит однообразной инфой на самом деле. А объём скачанного файла и так пишется...

Ну если не сложно... Было бы не плохо! :)

stoneflash

А он для чего писался?

Я так понял, что он писался как раз для сравнения мозилловских версий. Я, кстати, посмотрел сегодня инфу на mdc и понял так, что 0.11 должна быть выше, чем 0.3, так что недоработочка...

Ну если не сложно... Было бы не плохо! smile

Чё там сложного... echo поставить в двух местах...

SeLarin

Чё там сложного... echo поставить в двух местах...

Давай. И визульно надо выделить каждое расширение. Ещё раз спасибо! Сейчас сижу, все расширения обновляю.

stoneflash

И визульно надо выделить каждое расширение.

Это как?

SeLarin
ну между логами для каждого расширения вставить -------------------------------- :-)
Чтоб легче было.

stoneflash
А-а-а...

Я так понял, что он писался как раз для сравнения мозилловских версий. Я, кстати, посмотрел сегодня инфу на mdc и понял так, что 0.11 должна быть выше, чем 0.3, так что недоработочка...

SeLarin, на сколько я понял это для сравнения не совсем самих версий, а для сравнения масок версий в информации о совместимости браузеров. Версии же расширений нумеруются просто числами, на сколько мне известно. Употреблять всякие 0.3.1a5 нельзя. (Или все же можно?) А значит можно просто split('\.', $version_v) и сравнить поэлементно 2 массива. Если число элементов в массивах не совпадают, но все первые элементы более длинного совпадают с элементами более короткого, то более длинная версия новее.
Еще скрипт все же не может справиться с некоторыми расширениями из-за национальных кодировок в install.rdf. :( (У меня он не смог прочитать install.rdf из файла локализованного Mr Tech Local Install.)

Обновляйтесь.

Добавлено Срд 13 Дек 2006 14:46:26 :
VictorS
Нет, это именно для сравнения версий. Сейчас для нумерации используется так называемый Toolkit version format. Согласно ему каждая часть версии может в свою очеред состоять ещё из четырёх частей, причём не только числовых.

Еще скрипт все же не может справиться с некоторыми расширениями из-за национальных кодировок в install.rdf. sad (У меня он не смог прочитать install.rdf из файла локализованного Mr Tech Local Install.)

Не пробовал указать правильную кодировку в <?xml>? Что написано в errors.log по этому поводу?

Не пробовал указать правильную кодировку в <?xml>?

А я-то тут причем? :) Это автор расширения не указал. И я знаю что это исправить почти не возможно. Анализатор текста для определения кодировки - это жестоко. :) До логов сейча не добраться. :(
А за ссылку на описание формата версий спасибо. Конечно пока не все понял, но разбираюсь... Такие версии как "1.1.-1" или "1.*.1" выглядят достаточно смешно. :)

VictorS
Просто в качестве теста мог бы и указать. :)) Дело в том, что скрипт делает проверку на правильность загрузки, потому что во многих случаях авторы кодировку указать забывают, но при этом пишут символами, недопустимыми в UTF-8. Файл без указания кодировки пытается загрузиться как UTF-8 и оба на! Я сам на такое натыкался и сделал так, что если манифест не загружается сразу, то я его перекодирую в UTF-8 из ISO какой-то и загружаю снова. Если снова не загружается манифет, то оба на насовсем! Теперь же я подумал, что логично добавить предварительное определение кодировки перед перекодировкой. В PHP это сделать не так уж и сложно, как тебе кажется...

Теперь же я подумал, что логично добавить предварительное определение кодировки перед перекодировкой. В PHP это сделать не так уж и сложно, как тебе кажется...

SeLarin, тогда, если не секрет, как? Я уже смотрел кусочек кода про борьбу с неверной кодировкой и все вышесказанное мне понятно было... Я не особо интересовался поиском функции определения кодировки. Но если такой нет в библиотечках, и писать ее на PHP, то работать будет медленно, ИМХО. Да и писать не так уж легко, как мне кажется. Неужели я так увлекся программированием в VS2005, что напроч забыл все что знал про PHP? :)

VictorS
Здесь

SeLarin :beer: Между всякими SQL ни когда и не замечал раздела Multibyte String.:dumb: Всетаки стоит перечитать мануал посильнее, а не просто то что из новинок замечаю. Учился я еще на PHP3...

VictorS

Учился я еще на PHP3...

Мда... Я помнится тоже с него начинал, потому что PHP4 не хотел запускаться на Win 95. Слава богу, что это длилось недолго.

Обнаружил в скрипте багу. Не страшную, но критичную. Поэтому советую всем заинтересованным обновиться.

:offtopic:
Оказывается в этом форуме темы так быстро вниз падают... Еле нашёл сейчас...

SeLarin

Спасибо. Обновился.
Кстати, а что мешает сделать сохранение файла с тем же именем, что и на сервере? А то для некоторых расширений, в частности, для Separe там такая мешанина :rolleyes: получается...

TLemur

Кстати, а что мешает сделать сохранение файла с тем же именем, что и на сервере?

Да в принципе ничего не мешает. Просто как-то не сделал, а потом нужды не было. Поскольку скрипт писался под свои нужды, то он сохраняет файлы примерно с теми именами, с которыми они будут лежать у меня. Можно и переделать в принципе.