or
Incantations of E2 Control
There's a powerful interface to Everything2 that you might not be aware of.
Though its secrets seem recondite, you might find that it allows you great power.
When I realized that not
all edevites understood it and its power, I resolved to record some of its secrets here.
Are you ready? Good. Take a look at the URL you are currently on. You will see something like
http://everything2.com/index.pl?node_id=517389&lastnode_id=1105897
or perhaps
http://everything2.com/index.pl?node=007%20373%205963
will be there. (The node being referred to was selected randomly).
In there, you will notice three parameters that you will see over and over again. They are:
- node_id - The numeric identifier for the node you're looking at. Note that by node I am
referring to users, superdocs, e2nodes, and writeups -- in everything, everything is a node. node_ids are unique, and will never bring you to Duplicates Found. Of course, if you try to view a nuked writeup, you will see Nothing Found...
- node - The node's actual title. If not qualified with a type, it will default to the e2node (should one exist) and offer links to any conflicting users or superdocs. If there is a conflict not involving an e2node, you will find yourself at Duplicates Found. If it is blank, it'll take you rather happily to the front page. Due to the magic of a 404 redirect, typing http://www.everything2.com/something will take you to http://www.everything2.com/?node=something.
- lastnode_id - The previous node you visited's numeric identifier.
Used to create softlinks and place the previous node's title in the search box. If not
present, you don't create a softlink -- useful for those 'no-softlink' searches where you don't want anyone to know
that My Little Pony caused you to think of anal sex. (For those inexperienced with CGI, you'd enter http://everything2.com/index.pl?node=anal%20sex)
There are, of course, others. Some of the most useful include:
- type - Allows you to select which nodetype you see. Let's say I wanted to go to
dem bones' homenode. Typing http://everything2.com/index.pl?node=dem%20bones brings me to the e2node dem bones with a note that there is also a user by that name,
but http://everything2.com/index.pl?node=dem%20bones&type=user (or http://everything2.com/dem%20bones&type=user) will take me right to his homenode. If I wanted
the e2node, I'd simply use type=e2node. This allows me to jump right to the things I want. More than one
type= allows one to select multiple types to present. Note that type=writeup will cause weirdness.
- displaytype - Allows you to select the displaytype.
- displaytype=null - A "lite" version of display to prevent database strain when writing scripts. Just displays "1". Works anywhere.
- displaytype=printable - Removes the header and sidebar in an attempt to make things more printer-friendly.
Works anywhere.
- displaytype=xmltrue - Displays a writeup in XML format. Documentation available at clientdev: new XML ticker output.
- displaytype=xml - Old XML output type. Deprecated.
- displaytype=viewcode - Allows edevites to view superdoc source.
- displaytype=raw - Allows anyone to look at rawdata type nodes without any formatting.
- displaytype=edit - Allows one to edit their homenode and the superdocs they own.
op - The access to opcodes with the Everything core. Don't think that using an opcode like
kill will work if you're not an editor -- it won't. Opcodes include message, vote, kill, cool, and others. This one is less
likely to be useful to you, but if you want to decrease database lag it would undoubtedly be possible
for you to combine some of them with displaytype=null. Some, but not all, of the opcodes can be viewed by edevites and gods by the use of List Nodes of Type. (The ones that aren't listed are inherent to the raw source code of the database.) Here are a handful that are likely to be useful (higher mysteries can be explored at http://www.everydevel.com/?node=The%20External%20API)
- op=vote will have to be combined with vote__writeup_id=vote, where writeup_id is the
node_id of the writeup, and vote is 1 or -1. Yes, you can vote on LOTS of writeups at once, though I would bet money that
if you abused this it would be really, really obvious. So obvious that I bet a simple regular expression would find out who was responsible.
- op=cool requires a cool_id=writeup_id so that it knows what gets the C!.
- op=message expects the message text to follow a message=. Note that it sends stuff right to the chatterbox
if you forget your /msg!
- op=bookmark allows you to bookmark the current node_id.
- op=logout will log you out.
- op=login, along with required user=username and passwd=passwd will log you in — this is useful for homebrew clients.
soundex=1 - Activate Near Matches searching.
match_all=1 - Activate Ignore Exact searching.
searchy - Apparently used by the searchbox and apparently nothing more than syntactic sugar.
Other techniques:
Of course, you can just do http://www.everything2.com/?node=The%20Cow, allowing you to skip putting in index.pl. Also, in place of %20 for a space, you can use a +, and some browsers (IE and Opera are two) will auto-translate a space in an entered URL to the appropriate form.
Naturally, there are undoubtedly ways to play I haven't explored/thought of yet. If you've found some neat way
to use the Everything2 URL, please /msg me.