Extra caution is recommended when installing recently uploaded/updated scripts (read more)
Be sure you trust any scripts you install

Script Updater

Regularly checks us.o for updates for all of your scripts.

What to do

Simply install the script and refresh the page, it will open in a new tab and start looking up your scripts. Wait for it to finish (you can leave it in the background), and you're done.
It will probably spam you with updates for scripts the first time you run it but after that it should be unintrusive. If you click cancel it won't ask until the script is updated again.

Checking for scripts again

You shouldn't have to run the initial setup again, as every time you install a script off us.o it is added to the update list (this can be used as a workaround if some script is not updating correctly for some reason). However if for some reason you wish to do so simple go to about:cache#scriptupdater

Warning

Due to the way it locates your current script it will not work with Firefox portable (or have disabled disk caching for any other reason).
Any ideas on how to fix this would be greatly appreciated.

How it works

The script stores a list of the scripts you have on your computer and where to find them on us.o. It then looks for updates for them every three days. If the script on the site is different from the one on your computer it asks if you want to update. simple.

Updates

  • 28 July 2007
    • Fixed table sort. (now not case dependant)
    • Added untested vista support. (thanks ChronoStriker1)
    • Added support for long names. (thanks daniel Rozenberg)
  • 9 June 2007
    • Made table sortable.
    • fixed bug of matching tag not script. (thanks Matthew P.)
    • Added support for multiple matches.
  • 24 May 2007
    • Attempt at adding support for different language XP. (un tested)
  • 24 May 2007
    • fixed issues with white space around titles. (thanks Junk Blocker)
    • improved but untested mac compatibility. (thanks Matthew P.)
  • 13 May 2007
    • fixed for scripts with special character in the titles (thanks Junk Blocker)
  • 28 April 2007
    • fixed it so it actually works
    • removed <wbr> from profile path</wbr>
    • detected installing new scripts from us.o

If you like this script feel free to donate.

People are having problems with non-English windows and linux. I'll do my best to fix it, however, this is kind of to be expected as the script uses a complicated hack to find your profile, something greasemonkey tries hard (for very good reasons) to not let scripts do. if all esle fails you can enter the file:// url for your profile in the about:config



Jun 12, 2008
lazyttrick Scriptwright

I have a simple script updater, check my scripts.

 
Jun 2, 2008
Eyal Soha Scriptwright

I think that I fixed the bug that Ronen and I have seen. Looks like a race condition. Basically, the script is looking up multiple scripts for updates simultaneously and it gets confused because it is trying to access a variable that is global to the function. I read on a forum somewhere that the solution is to pass variables in to the function. Those are always copied, where as accessing a shared global isn't. Doesn't seem like it should help but it does. Anyway, the diff is below. Patch it in by hand or automatically and it should fix the bug. Worked for me in the few tests that I did. I hope that the author can incorporate this. Let me know if this works for you.

Eyal

--- C:\Documents and Settings\eyals\Desktop\scriptupdater_old.js	Mon Jun 02 16:56:57 2008
+++ C:\Documents and Settings\eyals\Desktop\scriptupdater_new.user.js	Mon Jun 02 16:58:04 2008
@@ -29,7 +29,7 @@
 
 
 
-function xhr(uri,f,a,b,c) {GM_xmlhttpRequest({method: 'get',headers: {'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey'},url: uri,onload:function(res){f(res.responseText,a,b,c)}});}
+function xhr(uri,f,a,b,c,d) {GM_xmlhttpRequest({method: 'get',headers: {'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey'},url: uri,onload:function(res){f(res.responseText,a,b,c,d)}});}
 
 function iframe(src,show) {var f=document.createElement('iframe');f.style.display=show?'inline':'none';f.src=src;return f;}
 
@@ -181,16 +181,15 @@
   if(!/#scriptupdater/.test(location.href) && checkable()) {
     scripts=getValue('scripts');
     for(s in scripts){
-      xhr(ckref(scripts[s].num),function(res,s){
-        script=scripts[s];
-        if (hash(res)!=script.hash) {
+      xhr(ckref(scripts[s].num),function(res,s,script_name,script_hash,script_num){
+        if (hash(res)!=script_hash) {
          scpts=getValue('scripts');
          scpts[s].hash=hash(res);
          setValue('scripts',scpts);
-         if(confirm('Update found for: \n'+script.name+'\n'+res.match(/@description\s*(.*)/)[1])) 
-           GM_openInTab(upref(script.num))
+         if(confirm('Update found for: \n'+script_name+'\n'+res.match(/@description\s*(.*)/)[1])) 
+           GM_openInTab(upref(script_num))
         }
-      },s);
+      },s,scripts[s].name,scripts[s].hash,scripts[s].num);
     }
   }
 }

 
May 21, 2008
Eyal Soha Scriptwright

Ronen, same here. The script claimed one script was old and then tried to update the other. When I used about:config#scriptupdater , it said that everything was up-to-date. Weird.

 
Apr 16, 2008
Volkan User

This script doesn't work at all.

 
Jan 16, 2008
Black Cat Scriptwright

the correct line is:
} else xhr('http://userscripts.org/scripts/search?q='+name.replace(/[^a-zA-Z0-9]+| {2,}/g," "),function(res,p,s,ns){

 
Jan 16, 2008
Black Cat Scriptwright

hi

I replaced the line 128:
} else xhr('http://userscripts.org/scripts/search?q='+name,function(res,p,s,ns){

with

} else xhr('http://userscripts.org/scripts/search?q='+name.replace(/[^a-zA-Z0-9]+| +/g," "),function(res,p,s,ns){

because it didn't find any of my scripts ;)

 
Jan 14, 2008
Noone^^ User

cool thing. ;)

 
Jan 10, 2008
Ronnen User

Its a great script with some problem.
recently, there was an update to the script: "inYOf4ceBook".
The Updater found that there is a script to update, but it updated the script: "Multi-Column view of Google Search Results" instead.
meaning, the script update a wrong script.

 
Oct 10, 2007
ladiko User

grrrr i'm an idiot...

so again:
message box will be shown with:
##########################
function getValue(query) {
alert("hallo");
return eval(GM_getValue('cache','({})'))[query];
}
##########################
msgbox will not be shown with:
##########################
function getValue(query) {
return eval(GM_getValue('cache','({})'))[query];
alert("hallo");
}
##########################
so it seems like this function fails

 
Oct 10, 2007
ladiko User

aahh vise-versa. the first give no msgbox, but the second =D

 
Oct 10, 2007
ladiko User

this doesnt help me, but i found out, that

function getValue(query) {
alert("hallo");
return eval(GM_getValue('cache','({})'))[query];
}
makes an message box, but
function getValue(query) {
alert("hallo");
return eval(GM_getValue('cache','({})'))[query];
}
does not. so maybe there is a problem?!?

 
Oct 2, 2007
ChronoStriker1 User

After fixing line 89 the script works as its supposed to for me.

 
Sep 10, 2007
Thufir User

hi

i found a typo in line 89 of the latest version of your script ("profe" instead of "profile") this causes the problem reported by "Nyks".

 
Aug 23, 2007
ChronoStriker1 User

Scratch that it keeps trying to install new versions of a script I already removed.

 
Aug 17, 2007
ChronoStriker1 User

I copied my profile to a xp machine to see it worked. about:cache#scriptupdater did what it was supposed to, there were updates to some of my scripts but it didn't automatically update them. I copied the profile back to my vista x86 machine and about:cache#scriptupdater still didn't work but it did automatically update a script, so at least I know its partially working.

 
Aug 7, 2007
georgie Scriptwright

uninstalled all my scripts including Script Updater and then reinstalled them one by one. once again it prompts me to update one script and then tries to update a completely different script.

 
Aug 7, 2007
georgie Scriptwright

buggy. alerts me an update is available for "script A". i click to install the updated version and it prompts me to install "script B". wtf?

 
Aug 7, 2007
Nyks Scriptwright

Hello!

I installed the script (german XP with FF), and I get no errormessages.
But, the script doesnt seem to do anything.

When I call "about:cache#scriptupdater", I get a page with "Memory cache device ... List Cache Entries ... Disk cache device ... List Cache Entries".

But I doesnt figure out, how to let the script autoupdate my scripts?!?!

 
Aug 5, 2007
ChronoStriker1 User

I seem to have the same problem as ladiko in both vista 32 and 64

 
Aug 1, 2007
Gasoline- Scriptwright

any idea why it doesn't find Pagerization as a valid script on userscripts.org despite the fact that it is? other than that, script updater has been working great for me. what parameters does it use to determine if a script exists on this site? i know the problem might have something to do with the manner in which the other script is posted. i hope there's an easy solution.

 
Jul 30, 2007
alex. User

This script just doesn't seem to work for me.

I'm running 2.0.0.5 firefox on Ubuntu

 
Jul 29, 2007
Frederik Van... Scriptwright

Windows XP, Dutch version.
But I'm not using the default Firefox profile directory.
My profile directory is:
G:\Application Data\Firefox\default

 
Jul 29, 2007
ladiko User

tried to run ff with admin rights --> nothing

 
Jul 29, 2007
ladiko User

i doesnt use this extension.
i deactivated all extensions but greasemonkey --> nothing
i created new ff profile with only greasemonkey + 2 scripts and script updater --> nothing

i run firefox 2.0.0.5 german on vista 32bit (installed about one week ago) and only get the normal memory cache page. mail me if you need some help: ladiko [ad] web [dod] de

 
Jul 29, 2007
ironside User

@alien_scum

The firefox extension was "Distrust" that was ca;using the problem for me.

You could comment on this script if you were logged in.