EDIT (by Calvin):
Note to self. Since I keep having to dig to find those instructions.
(In which I try and completely fail to be dramatic.)Ok, now go put that on top of the - ah cr-4p, they're here.
Ok, ok. Ladies and Gentlemen, children of all ages! The System of the World brings to you...
orchestral surgeSkycust!sourceYour Handy Dandy Custom Avatar System!
Quick links:
If you have Kathy's alpha
- it was a beta? if you say so - beta script, then uninstall it first, including associated preferences (there's a checkbox for that).
What is it and Why should I care?(In which I endeavour to answer that question in a dry and technical manner.)Skycust is a system that replaces the default avatars of this forum with custom ones. It works with lists of names and images ("providers"), and substitutes in the new avatar for the one provided by skyrates.net if one is suggested. Anyone can create a provider, and users can specify which providers they prefer in a reasonably rich way.
Usage(In which I make much of the ease of use.)Two steps to set up for firefox users:
1. Install greasemonkey
2. Install the skycust script posted above
One simple step for chrome users:
1. Install the extension posted above
Refrosh, and gaze in wonder at the new avatars! Also at the spiffy little icon on your top-left (end of url bar for chrome users), which you don't touc- I said
don't touch. Not yet. We'll get to that.
That's all you need to do to see custom avatars. If you like, you can go home now. Really!
However, there's some additional stuff you can do as well...
Kinda Advanced Usage(In which I explain local overrides and blacklists, and hint about avatar providers.)Hm. Sluor's avatar is absolutely horrible. It's just a colour-flipped version of the standard ferret avatar, and it doesn't fit
at all.
I wonder who said Sluor should have this image... let's hover the mouse over it to find out. "tSotW Alternate Style Portraits". Eh. Those guys usually provide pretty good images, but this one... I don't want to see this.
Let's do as the tooltip suggests and click on it. Hi new window! What options can you give me?
Well, I haven't set Sluor to something else before, so there's no override to clear. I
could go and search for something else for her, ...or I could
not. Let's override it with the original art.
Aaah. Much more pleasing. And hey, the tooltip tells me that it's from my overrides. Hey, Eskay, don't you like the new -
- wha
- what do you mean you don't see it? Ooooh, right, because this is a
local override. It's for if
I don't like any one particular image even after many many providers have thought about it.
It's good to be king^W^W know I always have a veto.
But wait, there's more!Wait a cotton-pickin' second! Doesn't that mean that if there is another avatar for Sluor available then I'll never get to see it? That's not fun! And there was that last option...
Let's see. Click Sluor, clear override. Ew, ugly image is back. But, now I know what to do - Click Sluor, add to blacklist. There. That means that if
anyone wants to use that ugly image, it'll be blocked, and if Sluor switches to another image, I'll see it. Since I hate the image, and don't have any particular interest in forcing Sluor to the normal ferret, everyone wins!
Advanced Usage(In which I explain just what exactly is an avatar provider anyway.)Hm. Let's finally click the funny little picture of someone drawing on a walrus. Whoa - this seems to be a place I can see my image providers! Awesome. It looks the script checks "tSotW Skyrates Style Portraits" first, then "tSotW Alternate Style Portraits". So the Skyrates Style has priority, I see. I assume the up and down buttons let me change that priority.
I wonder what happens if I click one of these providers...
AAH! That looks like... code... in that box! Ok, ok, deep breaths. It's not that scary - it just looks like it's saying that it's a spreadsheet, and that weird looking thing must be the code. I wonder what happens if I type in one of the boxes and hit <Enter>...

. I think I broke it; it apparently changes the selected provider directly. Let's a) not hit Save and b) refresh, then, to get our old list back.
Ok. So I can, theoretically, add providers to this. I wonder what providers are around... oh look! There's a handy list coming right up!
tSotW Skyrates Style Portraits (default): Code:
txW-R89lun35ZOhZGM8N50g
tSotW Alternate Style Portraits (default): Code:
tSOPONq3I1v4-Amk0INakgg
tSotW Exotic Avatars: Code:
t2ca48dp0y2Q9W9t6IM_hgQ
Unmoderated Avatars*: Code:
t4RN96-5hLgXnQWznnMV6bA
*this is not the same as Kathy's earlier spreadsheet, because a) hers reads "Skyrates Avatars", which is stunningly unuseful, b) she's not around to rename it and c) I have OCD
.
To add yourself to, or do anything else with, this unmoderated list, use this spiffy link.These are all spreadsheets, so to add one, I click the Add button, paste the funky lookin' code into the spreadsheet box, and hit Enter. Oh - look, it finds the name of the spreadsheet. Neat, I can use that to check if I put the right code in.
So I suppose the idea of a provider is that it's a maintained collection of links between people and avatars. The System of the World, say, promises to keep their three providers up to date
(including adding avatars to it when people request them), and to keep the content in them accurate and in the style mentioned. So if I didn't like the idea of seeing the Alternate Style images as I browse the fora, I'd remove that provider. If I'm happy with Exotic images, I'd go ahead and add the provider.
The order matters! Because Moros can have, say, both a Skyrates Style avatar and an Alternate Style avatar, the order says which one I'd prefer to see over the other.
So I guess
that's what the default list means - "I'd prefer Skyrates style avatars over Alternate style avatars, I don't want to see any other kinds of avatars, and I trust The System of the World to keep this up to date and not full of shock images."
Really Advanced Usage(In which I lose most of the readers and explain how a provider is born. Also, in which I drop the annoying stream-of-consciousness device.)So what if you
don't like tSotW's taste? Maybe you're ok with a bit of language, or a racy avatar or two, or just think we're unreasonably strict? Or maybe it's the other way around - you think we're too liberal with what we allow. Whatever it may be, you also think other people share the same taste - even if the "other people" are just you at your office.
What do you do? You create a provider!
The system supports two types of providers natively: the so-called "Simple" system and the "Spreadsheet" system.
With a Simple provider, you supply a URL/ to the script. It then requests exactly 'URL/person name'. If this exists (natively, via an HTTP redirect, whatever), it will assume that that is the avatar and link to it. If it doesn't exist (404; any status code in the 400s, etc.), then it'll assume that you don't have it and move on to the next provider.
The Simple type is significantly less tested, so there probably are still some bugs. If you're testing it and don't see this behaviour, it's a bug.
With a Spreadsheet provider, you create a Google Spreadsheet
exactly of the form showcased in the Unmoderated provider. You then publish it, and the text between "key=" and the next "&" in the link Google provides is the key you supply to the script. And that's it - it's definitely simpler to make.
If neither of these serve your needs, then there is the Custom box. Basically, you write a javascript function of the form of the functions simple and spreadsheet return. You probably will want to poke at the code to figure out exactly how to that, so I'll just mention here that there's a nifty utility function available to help -
Code:
check_existence_of(url, success_continuation, failure_continuation)
You may be able to generate a display name for it as well, and attach it to the name_checkers object, but there probably are some assumptions hiding in the code that don't need to be there that'll break that.
Postscript(In which I preemptively absolve myself of all responsibility for everything upto and including the heat death of the universe due to you installing this.)It's code. It has bugs. We've tested it pretty extensively, but there probably are bugs. If you find a bug, or have a feature request, or something, you can either
add it here, or contribute directly by sending a patch, or forking the project, or suchlike.
There are a few security issues, yes. The Chrome extension specifically needs to request permission to be able to access all webpages, (
http://*/), because a provider could be anywhere. I use and abuse eval quite a bit, though always in what look like to me safe places. If someone creates a weird looking custom provider, don't install it unless it's been vetted by someone you trust.
Updates. The Chrome extension updates automagically, and simply clicking the Greasemonkey script updates it to the latest version. I'll do my best to not break the build (i.e., you can be assured of a working script when you update). Updates will be documented - I should probably start a Version Log, but as is the commit messages serve that role.
And... that's it. Questions? Comments?
-- brought to you by The System of the World