PDA

Просмотр полной версии : PHP-скрипт для обновления тем и расширений


VictorS
11.12.2006, 16:54
Вот пост (http://forum.battlefox.ru/showthread.php?p=49319#post49319) дал толчек заняться написанием скрипта, который бы скачивал все новые версии для расширений из указанной папки. Идея эта у меня уже давно сидела, но было как-то лень. Теперь просто мое самолюбие заставляет попытаться сделать что-то лучше чем сделано у других. :)

Итак, начинаю с конфига... Что нужно настраивать?
1) Папку в которой лежат расширения, которые следует обновить.
2) Качать обновления всегда или только если оно подходит для такого-то приложения такой-то версии.
3) Формат имени расширений. (Переименовывать скачаные версии?)
4) Папка куда перемещать старые версии расширений (чтобы не мешали:))
5) Формат лога и файл куда его писать. (Или писать в стандартный поток?)

Там использует не совсем рабочий модуль сравнения версий. Пока можно просто смотреть что если версия отличается, то качать, а нет - оставлять. С версиями браузеров (если реализовывать эту фичу) будет сложнее.

В общем, сегодня приступлю. Но хотелось бы заранее знать нужно ли это еще кому-нибудь? Если да, то какие пожелания?

P.S.: Так как я собрался покидать этот форум (причины не обсуждаются), то новая версия [Battle]Navigator (http://forum.battlefox.ru/showthread.php?t=797) видимо не увидит света. Если кого заинтересуют идеи что там предполагалось сделать стучите в л/с, пишите в той теме. Передам все права на расширение и его название. :)

Frosty
11.12.2006, 17:37
1)Что тут сказать? указать папку с расширеними :)
2)имхо всегда
3)за чем? :)
4)создать папку типо old и скидывать туда обновляемое рашсирение
5)тут по своему усмотрению...

П.С. как предвидется использовать расширение? В идеале бы создать на фтп папочку, куда все сольют нужные им расширения(естественно ввести определенныеправила заливки), а потом производить поиск обнов, на пример раз в сутки, расширения вешь не грузная, думаю много денег не сьест :)

a2z
11.12.2006, 17:44
на пример раз в сутки
А не часто? Это тебе не базы антивирусные. Кто так часто будет расширения обновлять? :) Насчет расположения надо подумать...

хотелось бы заранее знать нужно ли это еще кому-нибудь?
Особо это не требуется, но потестировать не отказался бы.

Frosty
11.12.2006, 18:28
А не часто? Это тебе не базы антивирусные. Кто так часто будет расширения обновлять? :)Добавь себе RSS закладочку вот эту (https://addons.mozilla.org/rss/firefox/extensions/updated/) и увидишь как часто они обновляются :) Обновляться ведь будут не 10-15 расширений одного юзера а в перспективе штук 50-100, хоть одно за день да обновиться, тем более чем тебе оно мешает? нету обнов-ничего не качается-никто не в убытке :)

a2z
11.12.2006, 18:43
Frosty, родил колесо? :D Спс за полезный линк. Я там уже бывал и не раз ;) Но думаю такое количество это перебор. Необходимых из них максимум 15-20.

VictorS
11.12.2006, 18:47
нету обнов-ничего не качается-никто не в убытке
Frosty, не скажи. Качаются 50-100 rdf-файлов с информацией об обновлениях. Да, они по 2-3Кб. Но в итоге до 9Мб в месяц только на проверки. Допустим расширений еще на 10Мб и обновляются они раза 3 в месяц. 40Мб/месяц... Получается да, мелочи это.

Frosty
11.12.2006, 21:58
Необходимых из них максимум 15-20.5-6 у всех совпадут, остальные у каждого свои

Frosty, не скажи. Качаются 50-100 rdf-файлов с информацией об обновлениях. Да, они по 2-3Кб. Но в итоге до 9Мб в месяц только на проверки. Допустим расширений еще на 10Мб и обновляются они раза 3 в месяц. 40Мб/месяц... Получается да, мелочи это.Ладно-ладно раз в неделю :)

Добавлено через 2 часа 29 минут
Викторс, ну как там работа над скриптом? Если чем нить смогу помочь(ну там потестить и тд) буду рад :D

VictorS
11.12.2006, 23:04
Идет, идет. Разобрался поглубже с имеющимся. Оказалось что лишнего там почти и нет. Я просто очень мало занимался обработкой XML-файлов и вот сказывается... Но кое что я все же меняю. А точнее дополняю.

VictorS
12.12.2006, 02:05
Уже кое-что даже протестил через инет. :) Только есть проблемы с некоторыми расширеними, у которых в install.rdf используется левая кодировка (например Get File или MR Tech Local Install).
Осталось дописать одну функцию: для вытаскивания из скачанного update.rdf версии обновления и URL откуда качать. Затем пойдем по пути улучшений.

VictorS
12.12.2006, 19:16
Сделано. (http://disk.karelia.ru/?f=VictorS/Soft/PHP-FxAddonsUpdater-0.1.0.2.zip&d=1)
Требования:
- PHP5
- Включение опции "fopen wrappers" для функции file_get_contents
- Доступность Интернета во время запуска скрипта
Перед запуском сконфигурируйте скрипт отредактировав файл config.inc.php.
Если у вас в папке лежат какие-то неофициальные версии, то может произойти "обновление" до более старой версии.

MDM, может наконец-то сейчас пригодится папка __SOFT/FireFox давным-давно залитая мною на сервер?

Что предполагается далее:
- "черный список" файлов, которые не будут проверяться
- нормальное сравнение версий чтобы происходило только обновление
- попытка разобраться с кодировками чтобы "get_file-1.2.2-fx.xpi" нормально читался

Frosty
12.12.2006, 19:25
Теперь надо вокруг этого скрипта создать общую копилку расширений и обновлять их, идеальным был бы вариант размещения на фтп баттла...
П.С. Викторс зайди в джаббер или асю, пара вопросов есть :)

MDM
12.12.2006, 19:36
Парни, потерпите. Проработаем этот вопрос.

VictorS
12.12.2006, 19:46
MDM, а ни кто и не торопит. Мне такая обновлялка просто из принципа была интересна. А все расширения что мне нужно я обновляю из Лиса автоматом. :)

Frosty, если организовать совсем уж открытую копилку, то она может очень сильно вырасти, так что думаю что если кто-то и сделает такое, то размещать будет туда там файлы по своему усмотрению. А вопросы через л/с. Если сочту нужным, то отвечу. Честно говоря нет большого желания с кем-то общаться по этому все выключено, а запросы на авторизацию отклоняются.

Frosty
12.12.2006, 20:02
Дык организовать систему: заливка в "аплоад" хозяин копилки переносит в папку с расширениями которые обновляются, если надо могу дать скриптик готовый :)

VictorS
12.12.2006, 21:04
Обновил скрипт. (http://disk.karelia.ru/?f=VictorS/Soft/PHP-FxAddonsUpdater-0.1.1.0.7z&d=1)
Теперь он умеет сравнивать версии вида '/\d+(\.\d+)*/'. Кажется у расширений они только такого вида. Это совместимость может быть описана как 2.0+ или 2.0.0.*, но тут я и человеческим языком не могу объяснить что значит этот '+'. :)

VictorS
12.12.2006, 21:57
Обновление №2. (http://disk.karelia.ru/?f=VictorS/Soft/PHP-FxAddonsUpdater-0.1.2.0.7z&d=1)
Ну вот и черный список готов.
А с кодировкой ни чего хорошего так и не придумывается, так что с некоторыми расширениями будут проблемы. Неужели так сложно всем использовать UTF-8?.. Или это только у меня проблемы с mr_tech_local_install версии 5.3.2.1ru? Кто-нибудь, киньте это расширение себе в папку и протестите, плиз. Лучше если у вас php под линухом.

Frosty
12.12.2006, 22:03
Кто-нибудь, киньте это расширение себе в папку и протестите, плиз. Лучше если у вас php под линухом.1)Дай линк на расширение(в локале)
2) как хоть юзать скрипт, тот что я качал запускается с бат файла...

Frosty
16.12.2006, 21:58
Идея с копилкой умерла? :(