====== ii-nutritional-value ====== ===== Version 2 ===== [[http://enquirer.improbableisland.com/forum/viewtopic.php?forum=18&showtopic=33763|Version 2.0 Discussion Link]]\\ [[https://gist.github.com/anonymous/2f32643b500f00775546|Version 2.0 Source Code]] >I wanted to change fledermaus' meat script, so that it automatically loaded all of the known values of meat for each NPC. // ==UserScript== // @name ii-nutritional-value // @namespace http://users.pepperfish.net/vivek/ii/ // @description Improbable Island Butchery Guide (remembers nutritional values - Updated by Nader) // @include http://www.improbableisland.com/* // @include http://improbableisland.com/* // ==/UserScript== var done = false; var sieve = '//div[@class=\'maincolumn\']/h2/parent::*' + '|' + '//td[@class=\'content\']/h2/parent::*' + '|' + '//fieldset/legend/parent::*/div[@class=\'block\']'; var filter = '//div[@class=\'navbox\']/a[@class=\'nav\']' + '|' + '//td[@class=\'navigation\']/a[@class=\'nav\']' + '|' + '//td[@class=\'nav\']/a[@class=\'nav\']'; var nodes = document.evaluate(filter, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); var corpse = null; if (corpse = sessionStorage.getItem('ii/food/last-carcass')) { var a = 0; var b = 0; var c = 0; var label = ''; var butchery = document.evaluate(sieve, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); sessionStorage.removeItem('ii/food/last-carcass'); for (var i = 0; i < butchery.snapshotLength; i++) { var raw = butchery.snapshotItem(i).textContent; var got = null; // GM_log( "processing raw text: " + // butchery.snapshotItem(i) + " : " + raw ); if (got = raw.match('You tear off enough to make ([0-9]+) rough bite')) { a += got[1] * 1; } if (got = raw.match('the fattier muscle, and before too long ' + 'you have ([0-9]+) rough bite')) { b += got[1] * 1; } if (got = raw.match('slide easily from the bone, and you ' + 'wind up with ([0-9]+) rough bite')) { c += got[1] * 1; } } // only log the value if we successfully parsed at least one category: if ((a > 0) || (b > 0) || (c > 0)) { label = '(' + a + ', ' + b + ', ' + c + ')'; localStorage.setItem(corpse, label); // GM_log( "storing " + corpse + " value : " + label ); done = true; } } for (var x = 0; x < nodes.snapshotLength; x++) { var node = nodes.snapshotItem(x); var text = node.textContent; var what = null; if (what = text.match('Clean\\s+the\\s+carcass\\s+of\\s+(.*?)\\s+\\(')) { label = '(0, 0, 80)'; corpse = 'ii/food/FakeFake'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/40\'s Glam Rocker'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/A G-nother G-nu'; localStorage.setItem(corpse, label); label = '(0, 2, 0)'; corpse = 'ii/food/Admiral Flufferson'; localStorage.setItem(corpse, label); label = '(0, 1, 6)'; corpse = 'ii/food/Adult Mouldywarp'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Albert'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/Ambush Hamster'; localStorage.setItem(corpse, label); label = '(2, 1, 0)'; corpse = 'ii/food/Angry squat'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Animated Aubergine'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Another Goddamn Monster'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Anthropomorphosized Circular Saw Philosopher'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Anti-Busker'; localStorage.setItem(corpse, label); label = '(0, 0, 5)'; corpse = 'ii/food/Araneafelis Gigantea'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Archaeopteryx'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Armoured Housefly'; localStorage.setItem(corpse, label); label = '(0, 0, 4)'; corpse = 'ii/food/Army of Hippopotami'; localStorage.setItem(corpse, label); label = '(0, 0, 3)'; corpse = 'ii/food/Atinlay Igpay'; localStorage.setItem(corpse, label); label = '(2, 1, 0)'; corpse = 'ii/food/Bar Fly'; localStorage.setItem(corpse, label); label = '(0, 0, 8)'; corpse = 'ii/food/Bear Strapped to the Back of Another Bear'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Bees and Ants'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Beholder of the Behinder'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Berserk Gardener'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Bert & Ernie'; localStorage.setItem(corpse, label); label = '(0, 0, 5)'; corpse = 'ii/food/Betentacled Horror'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Bettie the Amazing Kung-Fu Butterfly'; localStorage.setItem(corpse, label); label = '(2, 0, 1)'; corpse = 'ii/food/Bicyclops'; localStorage.setItem(corpse, label); label = '(7, 0, 0)'; corpse = 'ii/food/Blair Hippo'; localStorage.setItem(corpse, label); label = '(4, 2, 0)'; corpse = 'ii/food/Blonde Heiress'; localStorage.setItem(corpse, label); label = '(1, 1, 0)'; corpse = 'ii/food/Bluebird of Happiness'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Bookface'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Broadway Extra'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Bumbling Ally'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Cafeteria Lady'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Canadian Mosquito'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Canned Leeches'; localStorage.setItem(corpse, label); label = '(7, 0, 0)'; corpse = 'ii/food/Cattywampus'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Cereal Killer'; localStorage.setItem(corpse, label); label = '(0, 3, 0)'; corpse = 'ii/food/Cloned Diehard Harry Potter Fan'; localStorage.setItem(corpse, label); label = '(0, 10, 0)'; corpse = 'ii/food/Cloud of Reporters'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Completely Rational Monster'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Concerned Parent'; localStorage.setItem(corpse, label); label = '(20, 0, 0)'; corpse = 'ii/food/Conglomeration of Probable Creatures'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Conservative Party Advocate'; localStorage.setItem(corpse, label); label = '(0, 2, 2)'; corpse = 'ii/food/Copy Cat'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Count of Monte Python'; localStorage.setItem(corpse, label); label = '(0, 0, 5)'; corpse = 'ii/food/Crab Herdism'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Crafty Joker'; localStorage.setItem(corpse, label); label = '(5, 1, 4)'; corpse = 'ii/food/Crap Meat'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Crazed Tech Support Rep'; localStorage.setItem(corpse, label); label = '(25, 0, 0)'; corpse = 'ii/food/Creature from a Dodgy Anime'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Creepy Looking Guy in a Trenchcoat'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Cryptic Questions Joker'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Custodian of the Slushpile of Doom'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Cyrano DeBergerac'; localStorage.setItem(corpse, label); label = '(0, 0, 3)'; corpse = 'ii/food/Dali the Four-Clawed Lobster'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Dan'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/David Attenborough'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Death or Cake Man'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/Delicious Soup'; localStorage.setItem(corpse, label); label = '(0, 1, 0)'; corpse = 'ii/food/Delusional Lunatic'; localStorage.setItem(corpse, label); label = '(1, 0, 1)'; corpse = 'ii/food/Delusional, Blue-Spandex-Wearing Lunatic'; localStorage.setItem(corpse, label); label = '(0, 1, 1)'; corpse = 'ii/food/Delusional, Green-Spandex-Wearing Lunatic'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Devil'; localStorage.setItem(corpse, label); label = '(2, 1, 2)'; corpse = 'ii/food/Dick'; localStorage.setItem(corpse, label); label = '(0, 0, 2)'; corpse = 'ii/food/Dingo-Eating Baby'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Diplomat'; localStorage.setItem(corpse, label); label = '(5, 0, 0)'; corpse = 'ii/food/Dirty Chippy'; localStorage.setItem(corpse, label); label = '(6, 0, 0)'; corpse = 'ii/food/Diseased Lung'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Disney Historical Accuracy Department'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Disney Historical Fallacy Department'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Doggymorph'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Don of the Dead'; localStorage.setItem(corpse, label); label = '(0, 2, 4)'; corpse = 'ii/food/Draughtsbeast'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Drunken Nudist'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Duck & Penguin in Spats'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Dump Truck Operator'; localStorage.setItem(corpse, label); label = '(3, 0, 0)'; corpse = 'ii/food/Earwigs'; localStorage.setItem(corpse, label); label = '(1, 2, 0)'; corpse = 'ii/food/Elrod Gulch'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Emily the Buxom Barmaid'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Emo Boy'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Emu'; localStorage.setItem(corpse, label); label = '(5, 2, 0)'; corpse = 'ii/food/Enchanted Stewpot'; localStorage.setItem(corpse, label); label = '(2, 2, 3)'; corpse = 'ii/food/Evolution\'s Greatest Failure'; localStorage.setItem(corpse, label); label = '(2, 1, 2)'; corpse = 'ii/food/Fat Butcher'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Father Time'; localStorage.setItem(corpse, label); label = '(3, 0, 0)'; corpse = 'ii/food/Felonious Skunk'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Feral Budget Horse'; localStorage.setItem(corpse, label); label = '(3, 3, 3)'; corpse = 'ii/food/Feral Kittybikes'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Filthy Thieving Squats'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Fire Alarm'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Fire-Breathing Kangaroo'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Flesh-Eating Virus'; localStorage.setItem(corpse, label); label = '(4, 2, 2)'; corpse = 'ii/food/Flock of Fanboys'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Flock of Migratory Teakettles'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Flock of Swallows'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Flying Helper Monkey'; localStorage.setItem(corpse, label); label = '(0, 1, 4)'; corpse = 'ii/food/Flying Hipster Pig'; localStorage.setItem(corpse, label); label = '(4, 1, 0)'; corpse = 'ii/food/Flying Sea Serpent'; localStorage.setItem(corpse, label); label = '(5, 2, 0)'; corpse = 'ii/food/Flying Spaghetti Monster'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Foilwench'; localStorage.setItem(corpse, label); label = '(1, 0, 2)'; corpse = 'ii/food/Foreign Meatloaf Dinner'; localStorage.setItem(corpse, label); label = '(1, 0, 2)'; corpse = 'ii/food/Foreign Traveler'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Gary Gygax'; localStorage.setItem(corpse, label); label = '(2, 2, 1)'; corpse = 'ii/food/Gary Larson'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Generic Monster'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Giant Squat'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Giant Teddy Bear'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Goddamn Aye-aye'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Gordon the Cheese Eater'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Gothic Romantic Heroine'; localStorage.setItem(corpse, label); label = '(2, 2, 1)'; corpse = 'ii/food/Grammar Police'; localStorage.setItem(corpse, label); label = '(3, 2, 1)'; corpse = 'ii/food/Great-Aunt Alice'; localStorage.setItem(corpse, label); label = '(0, 5, 1)'; corpse = 'ii/food/Grue'; localStorage.setItem(corpse, label); label = '(3, 3, 0)'; corpse = 'ii/food/Guerilla Gorilla'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Guy Who Keeps Running Behind You'; localStorage.setItem(corpse, label); label = '(0, 0, 3)'; corpse = 'ii/food/Ham Bush'; localStorage.setItem(corpse, label); label = '(0, 2, 4)'; corpse = 'ii/food/Hannibal Lecture'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Harry Potter Reenactor'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Health and Safety Inspector'; localStorage.setItem(corpse, label); label = '(0, 2, 2)'; corpse = 'ii/food/Hiker'; localStorage.setItem(corpse, label); label = '(0, 0, 4)'; corpse = 'ii/food/Hippopotamus'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Hover Leech (Canned Leeches)'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Humanmorph'; localStorage.setItem(corpse, label); label = '(0, 0, 6)'; corpse = 'ii/food/Humongous Giant Clam'; localStorage.setItem(corpse, label); label = '(3, 2, 2)'; corpse = 'ii/food/Immortal Slasher Villain'; localStorage.setItem(corpse, label); label = '(1, 1, 3)'; corpse = 'ii/food/Insurance Salesman'; localStorage.setItem(corpse, label); label = '(0, 2, 5)'; corpse = 'ii/food/Interrupting Cow'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Jokosquabotantmorph'; localStorage.setItem(corpse, label); label = '(6, 0, 0)'; corpse = 'ii/food/Kentucky Fried Zombie'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Kierkegaard'; localStorage.setItem(corpse, label); label = '(3, 2, 1)'; corpse = 'ii/food/Lame Ass'; localStorage.setItem(corpse, label); label = '(0, 1, 4)'; corpse = 'ii/food/Land Shark'; localStorage.setItem(corpse, label); label = '(0, 1, 0)'; corpse = 'ii/food/Lemming'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Little Old Lady'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Lolrus'; localStorage.setItem(corpse, label); label = '(2, 2, 1)'; corpse = 'ii/food/Loud Hecklers'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Mad Scrabble Player'; localStorage.setItem(corpse, label); label = '(2, 3, 0)'; corpse = 'ii/food/Madness Duck'; localStorage.setItem(corpse, label); label = '(2, 3, 0)'; corpse = 'ii/food/Madness Duck'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Man from the Ministry'; localStorage.setItem(corpse, label); label = '(2, 1, 0)'; corpse = 'ii/food/Master of Disguise'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Mathematician'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Member of Doktor Improbable Lovers Anonymous'; localStorage.setItem(corpse, label); label = '(0, 3, 0)'; corpse = 'ii/food/Mephistopheles, Duck of Hell'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/Metamorphic Mess'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Meter Maid'; localStorage.setItem(corpse, label); label = '(3, 3, 0)'; corpse = 'ii/food/Militant Pacifist'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Milk Beast'; localStorage.setItem(corpse, label); label = '(0, 1, 2)'; corpse = 'ii/food/Mini-Minotaur'; localStorage.setItem(corpse, label); label = '(0, 2, 2)'; corpse = 'ii/food/Mongol Hordette'; localStorage.setItem(corpse, label); label = '(1, 2, 4)'; corpse = 'ii/food/Monkey Ghostwriter Franchise'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Monster At The End of This Path'; localStorage.setItem(corpse, label); label = '(1, 2, 4)'; corpse = 'ii/food/Moose'; localStorage.setItem(corpse, label); label = '(1, 2, 0)'; corpse = 'ii/food/Motorcycle Daredevil'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Mouldywarp'; localStorage.setItem(corpse, label); label = '(1, 2, 0)'; corpse = 'ii/food/NASCAR Fan'; localStorage.setItem(corpse, label); label = '(1, 2, 0)'; corpse = 'ii/food/Network Sponsor'; localStorage.setItem(corpse, label); label = '(0, 0, 4)'; corpse = 'ii/food/Ninjas'; localStorage.setItem(corpse, label); label = '(0, 3, 0)'; corpse = 'ii/food/Nitro Bunny'; localStorage.setItem(corpse, label); label = '(3, 2, 1)'; corpse = 'ii/food/Occam\'s Razorback'; localStorage.setItem(corpse, label); label = '(1, 6, 1)'; corpse = 'ii/food/Octophant'; localStorage.setItem(corpse, label); label = '(1, 1, 0)'; corpse = 'ii/food/Old Crippled Beggar'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Ooze'; localStorage.setItem(corpse, label); label = '(7, 2, 0)'; corpse = 'ii/food/Orc'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Oronte'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Pacifist'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Pack of Chewing Gum'; localStorage.setItem(corpse, label); label = '(0, 0, 10)'; corpse = 'ii/food/Panthzer'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Passive-Aggressive Co-worker'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/People on Streets'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Phony Psychic'; localStorage.setItem(corpse, label); label = '(0, 0, 5)'; corpse = 'ii/food/Pile of Uncooked Meat'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Pinball Wizard'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Pizza That Time Forgot'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Play on Words'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Poisonous Strangler Vines of Doom'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Pope'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Potato News Caster'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Poultrygeist'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Predatory Petitioner'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Pretentious Jerks'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Professional Romance Writer'; localStorage.setItem(corpse, label); label = '(0, 1, 4)'; corpse = 'ii/food/Puppies of a Minor Diplomatic Incident'; localStorage.setItem(corpse, label); label = '(4, 2, 0)'; corpse = 'ii/food/Purple People Eater'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Quivering Flesh Heap'; localStorage.setItem(corpse, label); label = '(12, 0, 0)'; corpse = 'ii/food/Rabid Suburban Squirrel Hive'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Rat Pack'; localStorage.setItem(corpse, label); label = '(3, 4, 5)'; corpse = 'ii/food/Ravening Bugblatter Beast of Aaaaaaaaarrrgh'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/Red Herring'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Reginald, Your Paper Boy'; localStorage.setItem(corpse, label); label = '(20, 0, 0)'; corpse = 'ii/food/Rejected Monsters'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Religious Zombie'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Reluctant Cannibal'; localStorage.setItem(corpse, label); label = '(2, 4, 2)'; corpse = 'ii/food/Reluctant Rabbits'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Rind Flayer'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Robert Catesby'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Rodent Of Unusual Size'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Rogue Orrery'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Rude Duplicate Creature'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Rush Hour Driver'; localStorage.setItem(corpse, label); label = '(5, 1, 0)'; corpse = 'ii/food/Santa'; localStorage.setItem(corpse, label); label = '(3, 0, 0)'; corpse = 'ii/food/Schrodinger\'s Other Cat'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Scotsman Clad in Kilt'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Scrabble Players Anonymous'; localStorage.setItem(corpse, label); label = '(20, 0, 0)'; corpse = 'ii/food/Season Three Test Monster'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Self-Conscious Dwarf'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Seth the Handsome Bard'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Seven Filthy Thieving Squats'; localStorage.setItem(corpse, label); label = '(50, 0, 0)'; corpse = 'ii/food/Seventy-Headed Hellhound'; localStorage.setItem(corpse, label); label = '(0, 4, 0)'; corpse = 'ii/food/Shaggy Dog'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Sigmund Freud'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Sinister Dexter'; localStorage.setItem(corpse, label); label = '(4, 2, 4)'; corpse = 'ii/food/Smog'; localStorage.setItem(corpse, label); label = '(4, 4, 0)'; corpse = 'ii/food/Snake Oil Salesman'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Society of British Bedstead Men'; localStorage.setItem(corpse, label); label = '(8, 0, 0)'; corpse = 'ii/food/Socktopus'; localStorage.setItem(corpse, label); label = '(3, 2, 1)'; corpse = 'ii/food/Someone Else\'s Quest Monster'; localStorage.setItem(corpse, label); label = '(1, 3, 1)'; corpse = 'ii/food/Someone With Caterpillars in Their Vagina'; localStorage.setItem(corpse, label); label = '(1, 2, 2)'; corpse = 'ii/food/Son of Budget Cow'; localStorage.setItem(corpse, label); label = '(1, 2, 2)'; corpse = 'ii/food/Son of Budget Horse'; localStorage.setItem(corpse, label); label = '(1, 2, 2)'; corpse = 'ii/food/Sorority Girl in Nightie'; localStorage.setItem(corpse, label); label = '(2, 0, 1)'; corpse = 'ii/food/SpiderKitty'; localStorage.setItem(corpse, label); label = '(7, 3, 0)'; corpse = 'ii/food/SpiderMorph'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Squat Paladin'; localStorage.setItem(corpse, label); label = '(3, 1, 0)'; corpse = 'ii/food/Squat Plumber'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Squat with Fungal Infection'; localStorage.setItem(corpse, label); label = '(7, 1, 0)'; corpse = 'ii/food/Squat Zombie Mutant'; localStorage.setItem(corpse, label); label = '(12, 0, 0)'; corpse = 'ii/food/Squats from the Train Station'; localStorage.setItem(corpse, label); label = '(12, 0, 0)'; corpse = 'ii/food/Squats from the Travel Agency'; localStorage.setItem(corpse, label); label = '(2, 2, 1)'; corpse = 'ii/food/Squats with Matching Factory Uniforms'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/Squicky the Bunny'; localStorage.setItem(corpse, label); label = '(2, 2, 0)'; corpse = 'ii/food/Star Wars Nerd'; localStorage.setItem(corpse, label); label = '(2, 1, 2)'; corpse = 'ii/food/Stereotypical Severe Nun'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Storm Snail'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Strict Non-Smoker'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/S-Trumpet'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Tall Squat'; localStorage.setItem(corpse, label); label = '(5, 0, 0)'; corpse = 'ii/food/Team Awesome'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/That Cutie from Work'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/The Angler'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/The Eggman'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/The Guy Who Couldn\'t Beat Tom Carney'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/The Tooth Fairy'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/The Unreality of Time'; localStorage.setItem(corpse, label); label = '(0, 2, 3)'; corpse = 'ii/food/The Walrus'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Thesaurus Rex'; localStorage.setItem(corpse, label); label = '(2, 0, 0)'; corpse = 'ii/food/Thing from the Back Of The Fridge'; localStorage.setItem(corpse, label); label = '(0, 1, 0)'; corpse = 'ii/food/Thing in the Attic'; localStorage.setItem(corpse, label); label = '(2, 3, 1)'; corpse = 'ii/food/This Guy'; localStorage.setItem(corpse, label); label = '(3, 3, 0)'; corpse = 'ii/food/Three Droogs'; localStorage.setItem(corpse, label); label = '(0, 0, 5)'; corpse = 'ii/food/Three French Hens'; localStorage.setItem(corpse, label); label = '(3, 0, 0)'; corpse = 'ii/food/Three-Toed Sloth'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Tom Cruise'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Totally Baffling Reference'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Tour Guide'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Towel-less Hitchhiker'; localStorage.setItem(corpse, label); label = '(1, 2, 3)'; corpse = 'ii/food/Turkey'; localStorage.setItem(corpse, label); label = '(0, 5, 0)'; corpse = 'ii/food/Typical Squaresoft Hero'; localStorage.setItem(corpse, label); label = '(7, 0, 0)'; corpse = 'ii/food/Typo Gremlin'; localStorage.setItem(corpse, label); label = '(0, 0, 4)'; corpse = 'ii/food/Unbeatable Monster'; localStorage.setItem(corpse, label); label = '(0, 0, 4)'; corpse = 'ii/food/Undead Dreaming Catfish God'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Unicycle Entertainer'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Union Member With Seniority'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Unlicensed Plastic Surgeon'; localStorage.setItem(corpse, label); label = '(1, 1, 1)'; corpse = 'ii/food/Unlucky Bastard'; localStorage.setItem(corpse, label); label = '(10, 0, 0)'; corpse = 'ii/food/Uranium Man'; localStorage.setItem(corpse, label); label = '(4, 2, 1)'; corpse = 'ii/food/Urbane Antagonist'; localStorage.setItem(corpse, label); label = '(4, 3, 0)'; corpse = 'ii/food/Vampire-Bat Prince'; localStorage.setItem(corpse, label); label = '(6, 0, 0)'; corpse = 'ii/food/Vegan Zombie'; localStorage.setItem(corpse, label); label = '(1, 3, 0)'; corpse = 'ii/food/Velociraptor'; localStorage.setItem(corpse, label); label = '(0, 2, 2)'; corpse = 'ii/food/Veteran Player'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Vigilante'; localStorage.setItem(corpse, label); label = '(0, 2, 4)'; corpse = 'ii/food/Violin Suspense'; localStorage.setItem(corpse, label); label = '(3, 2, 3)'; corpse = 'ii/food/Walrus'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Washed-Up Celebrity'; localStorage.setItem(corpse, label); label = '(1, 2, 0)'; corpse = 'ii/food/Weatherman'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Well-Meaning Moron'; localStorage.setItem(corpse, label); label = '(10, 0, 5)'; corpse = 'ii/food/Whale'; localStorage.setItem(corpse, label); label = '(2, 1, 1)'; corpse = 'ii/food/Whining Old-School Gamer'; localStorage.setItem(corpse, label); label = '(3, 0, 0)'; corpse = 'ii/food/Whopper with Cheese'; localStorage.setItem(corpse, label); label = '(0, 4, 4)'; corpse = 'ii/food/Wild Horses'; localStorage.setItem(corpse, label); label = '(0, 6, 0)'; corpse = 'ii/food/Wild Monkeys'; localStorage.setItem(corpse, label); label = '(1, 2, 2)'; corpse = 'ii/food/Wizard of Yendor'; localStorage.setItem(corpse, label); label = '(4, 4, 0)'; corpse = 'ii/food/Wolpertinger'; localStorage.setItem(corpse, label); label = '(2, 1, 0)'; corpse = 'ii/food/Work Experience Lads'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Yesterday\'s Salad'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Your Future Self'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Your In-Laws'; localStorage.setItem(corpse, label); label = '(0, 0, 1)'; corpse = 'ii/food/Your Own Tongue'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Your Past Self'; localStorage.setItem(corpse, label); label = '(2, 1, 0)'; corpse = 'ii/food/Your Pasta Self'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Your Present Self'; localStorage.setItem(corpse, label); label = '(1, 1, 2)'; corpse = 'ii/food/Zen Master'; localStorage.setItem(corpse, label); label = '(5, 0, 0)'; corpse = 'ii/food/Zombie Kitten'; localStorage.setItem(corpse, label); label = '(4, 0, 0)'; corpse = 'ii/food/Zombie Puppy'; localStorage.setItem(corpse, label); label = '(1, 0, 0)'; corpse = 'ii/food/Zombie Worm'; localStorage.setItem(corpse, label); label = '(1, 2, 1)'; corpse = 'ii/food/Zombified Luciano Pavarotti'; localStorage.setItem(corpse, label); var target = what[1]; var key = 'ii/food/' + target; var value = localStorage.getItem(key); // GM_log( "cached value(s) for '" + target + "'" ); // duff stored value if (value == '(0, 0, 0)') { done = false; value = null; localStorage.removeItem(key); } if (!done) { sessionStorage.setItem('ii/food/last-carcass', key); } // GM_log( "looking up '" + key + "'"); if (value) { // GM_log( target + " == " + value ); node.setAttribute('title', value); } else { // GM_log( key + " == null" ); node.setAttribute('title', '(?, ?, ?)'); } } } ===== Version 1 ===== [[http://userscripts-mirror.org/scripts/show/117083|Version 1.2]] // ==UserScript== // @name ii-nutritional-value // @namespace http://users.pepperfish.net/vivek/ii/ // @description Improbable Island Butchery Guide (remembers nutritional values) // @include http://www.improbableisland.com/* // @include http://improbableisland.com/* // ==/UserScript== var done = false; var sieve = "//div[@class='maincolumn']/h2/parent::*" + "|" + "//td[@class='content']/h2/parent::*" + "|" + "//fieldset/legend/parent::*/div[@class='block']"; var filter = "//div[@class='navbox']/a[@class='nav']" + "|" + "//td[@class='navigation']/a[@class='nav']" + "|" + "//td[@class='nav']/a[@class='nav']"; var nodes = document.evaluate( filter, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); var corpse = null; if( corpse = sessionStorage.getItem('ii/food/last-carcass') ) { var a = 0; var b = 0; var c = 0; var label = ""; var butchery = document.evaluate( sieve, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null ); sessionStorage.removeItem('ii/food/last-carcass'); for( var i = 0; i < butchery.snapshotLength; i++ ) { var raw = butchery.snapshotItem(i).textContent; var got = null; // GM_log( "processing raw text: " + // butchery.snapshotItem(i) + " : " + raw ); if( got = raw.match("You tear off enough to make ([0-9]+) rough bite") ) { a += got[1] * 1; } if( got = raw.match("the fattier muscle, and before too long "+ "you have ([0-9]+) rough bite") ) { b += got[1] * 1; } if( got = raw.match("slide easily from the bone, and you " + "wind up with ([0-9]+) rough bite") ) { c += got[1] * 1; } } // only log the value if we successfully parsed at least one category: if( (a > 0) || (b > 0) || (c > 0) ) { label = "(" + a + ", " + b + ", " + c + ")"; localStorage.setItem( corpse, label ); // GM_log( "storing " + corpse + " value : " + label ); done = true; } } for( var x = 0; x < nodes.snapshotLength; x++ ) { var node = nodes.snapshotItem(x); var text = node.textContent; var what = null; if( what = text.match("Clean\\s+the\\s+carcass\\s+of\\s+(.*?)\\s+\\(") ) { var target = what[1]; var key = 'ii/food/' + target; var value = localStorage.getItem(key); // GM_log( "cached value(s) for '" + target + "'" ); // duff stored value if( value == "(0, 0, 0)" ) { done = false; value = null; localStorage.removeItem( key ); } if( !done ) { sessionStorage.setItem('ii/food/last-carcass', key); } // GM_log( "looking up '" + key + "'"); if( value ) { // GM_log( target + " == " + value ); node.setAttribute( "title", value ); } else { // GM_log( key + " == null" ); node.setAttribute( "title", "(?, ?, ?)" ); } } }