Userscript Updater Generator

by ΙδεΠÐ

Introduction

Userscript Updater Generator is a GAE application for Greasemonkey scriptwrights to make any userscript on userscripts.org auto-updatable.

Effect

With Userscript Updater Generator, every time you update your userscript on userscripts.org, your users would sooner or later see a messagebox popping up, indicating that a new release is available, which would then be installed. Also, new items would be added to the Greasemonkey menu, enabling users to check for updates at any time.

Usage

In the metadata section of your userscript, add

// @require http://userscript-updater-generator.appspot.com/?id=<userscript id>[&day=<update interval>][&hour=<update interval>]

[// @title <userscript alias>]

[// @version <userscript version>]

[/* @reason
<update notes>
@end */]

and it is done. Parameters and options are explained below.

Compatibility

Works in Firefox and other browsers that support following features of Greasemonkey:

为Greasemonkey脚本添加自动更新功能

by ΙδεΠÐ

最少操作

简单到只需要在你开发的脚本的注释段(也称meta部分)添加一行代码:

// @require http://userscript-updater-generator.appspot.com/?id=<脚本id>

对于你的脚本,将<脚本id>换成其在userscripts.org上的id即可。加入这行代码后并上传到userscripts.org后,你的脚本会在Greasemonkey菜单中添加“立即更新xx脚本”的菜单项,并且每12个小时检查一次更新;只要userscripts.org上的脚本有了更新(判断条件是网站自动生成的@uso:version标示的增长,而不是@version标示的增长,因此每一次更新都不会错过),就会弹出对话框提示用户更新脚本。

URL可选参数

在url中传递的参数除了必需的id外,还可以有dayhour。这两个参数都是用来设置检查脚本更新时间间隔的,合法的值都是正整数。url里dayhour两个参数并存时,检查间隔是两者之和,比如day=2&hour=12,就是每隔两天半检查一次。当这两个参数都不存在或都不合法时,默认每12个小时检查一次。作为例子,以下三个url都是合法的:

// @require http://userscript-updater-generator.appspot.com/?id=<脚本id>&day=35&hour=57

// @require http://userscript-updater-generator.appspot.com/?id=<脚本id>&day=7

// @require http://userscript-updater-generator.appspot.com/?id=<脚本id>&hour=8

其他可选项

通过在脚本注释段(meta部分)添加其他信息,可以获得更好的提示效果。可以添加的信息有:

// @title <脚本名>

脚本名在添加菜单项和弹出对话框提示里都会用到。如果没有@title,就会以@name的标示作为脚本名;如果连@name都没有(这个一般不会发生),就会以“[<脚本id>]”作为脚本名。很多脚本的@name标示是英文的,如果要显示中文脚本名,可以写在@title里。(脚本名不能包含双引号,结尾带不带“脚本”两个字都行,程序能够自动识别处理:对“xyz脚本”和“xyz”,提示信息都是一样的。)

// @version <版本号>

脚本的更新与否并不依赖@version标示,但是当存在@version标示时,如果新版本的@version标示高于上个版本的@version标示,那么在提示更新时会显示脚本已更新至xxx版。(程序可以识别并比较类似“v1.2.0”和“1.2.0版”的版本号,但是版本号不能包含双引号。)

/* @reason
<更新说明>
@end */

作为@version标示的附属存在。如果@version标示增长了,并且@reason标示存在,那么在提示脚本已更新至xxx版的同时也会显示更新说明。

说明

适用于Firefox和其他支持Greasemonkey@require, GM_xmlhttpRequest, GM_getValue和GM_setValue的浏览器,并且脚本必须位于userscripts.org上。

©2009+ ΙδεΠÐΙδεΠÐ, Userscript Updater Generator Powered by Google App Engine