Обновление Пользовательских Скриптов. Версия Тбмс.

Как я писал во вступительной статье о GreaseMonkey, недовольные отсутствием системы обновления пользовательских скриптов, мы взяли вопрос в разработку.

Несколько дней спустя решение материализовалось в сложный инструмент, который мы назвали «Генератор шаблонов сценариев для GreaseMonkey».

Его интерфейс доступен здесь tbms.ru/greasemonkey/generator Генератор создает собственный шаблон скрипта, в котором помимо всей необходимой метаинформации строится объект ГМХелпер , который реализует систему обновлений и ряд других полезных функций.

Основная функция ГМХелпер это обновление скрипта.

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

Раз в 24 часа ГМХелпер скачивает по ссылке первый килобайт из JS-файла и смотрит, не изменилась ли версия; если он изменился, то предлагает скачать.

Если вы откажетесь, он оставит вас в покое еще на 24 часа.

Во время разработки ГМХелпер Появилось еще несколько полезных, на наш взгляд, функций.

Сначала мы обернули GM_getValue/GM_setValue в обертки.

ГМХелпер .

getValue/setValue. Это решает две проблемы: проверку доступности GM (если делаете кроссбраузерный скрипт) и преобразование неподдерживаемых типов при записи (попытка записать Date через GM_setValue вызывает ошибку).

Ну и для порядка мы разместили генератор JS-пространств имен getNamespace, принимающий в качестве параметра нужное окно (привет unsafeWindow), и массив имен для вложенных пространств имен.

Давайте посмотрим на пример:

GMHelper.getNamespace(window, ['Weborama', 'InlinePlayer']);

создаст пространство имен Веборама.

InlinePlayer в окне GreaseMonkey. В заключение хотелось бы сказать, что мы приветствуем любые комментарии и предложения и в свою очередь надеемся, что наш шаблон окажется полезным.

Теги: #Greasemonkey #пользовательский скрипт #TBMS #Greasemonkey

Вместе с данным постом часто просматривают: