Ive come across these can anyone test that they work ?

// ==UserScript==
// @name ktm
// @namespace wurt
// @description kiss the mortog automator
// @include http://www.neopets.com/medieval/kissthemortog.phtml*
// ==/UserScript==

window.addEventListener("load", function(e) {
window.setTimeout(init, 2000);
}, false);

function evaluateXPath(aNode, aExpr) {
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver(aNode.ownerDocument == null ? aNode.documentElement : aNode.ownerDocument.documentElement);
var result = xpe.evaluate(aExpr, aNode, nsResolver, 0, null);
var found = [];
var res;
while (res = result.iterateNext())
found.push(res);
return found;
}


function init() {
var xpath = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/table/tbody/tr/td[2]/a";
var xp = evaluateXPath(document.body, xpath);

if(document.body.innerHTML.indexOf("WRONG ONE!") != -1) {
//* Try again
window.location = "http://www.neopets.com/medieval/kissthemortog.phtml";
}

if(document.body.innerHTML.indexOf("You have won") != -1) {
document.forms[2].submit();
return false;
}

if(xp.length < 1) {
//alert("No frog links found");
window.location = "http://www.neopets.com/medieval/kissthemortog.phtml";
return false;
}

//alert("Found frog link, following...");
window.location = xp[0].attributes.getNamedItem("href").value;
return false;
}




*** I think this is a second hand shop grabber similar to money tree ?

def SecondHand():
global newtimes
while newtimes <= maxGrabs:
request = mechanize.Request("http://www.neopets.com/thriftshoppe/index.phtml")
response = state.open(request)
soup = BeautifulSoup(response.get_data())
for link in soup.findAll('a'):
if link.has_key('href'):
if link['href'].startswith('javascript:take_donation'):
ItemName = BeautifulSoup(''.join(link.contents[1]))
if not ItemName.contents[0] == "Pile of Dung":
Array = link['href'].split("javascript:take_donation(\"")[1].split("\");")[0].split("\", \"")
#print "Items Grab Link: http://www.neopets.com/thriftshoppe/take_donation.phtml?id="+Array[0]+"&ch="+Array[1]
request = mechanize.Request("http://www.neopets.com/thriftshoppe/take_donation.phtml?id="+Array[0]+"&ch="+Array[1])
response = state.open(request)
print newtimes
newtimes +=1

********** This is pyrimads auto player i think

// ==UserScript==
// @name pyramids2
// @namespace http://wonbrilliance.com/
// @description pyramids automator
// @include http://www.neopets.com/games/pyramids/pyramids.phtml*
// ==/UserScript==

/*
* Loops at end of deck, stackCard isn't being found properly
* Create full-circulation of games, no user-input necessary
*/


window.addEventListener("load", function(e) {
init();
}, false);

//* automate pyramids
//* Add DOM elements to control tool and view debug output
//* Use AJAX for more fluid execution of tasks
//* Use setTimeout throttling to prevent server punishment
//* Allow resident execution

function init() {
//window.setTimeout(null, 2000);
//* Ask if the user wants to run this tool
//if(confirm("Want to run?")) {
launchDebugWindow();
//} else {
// return false;
//}

var stackCard;
var activeCards;


var ajaxObject = getAjaxObject();
var index = isIndexPage();
var inProgress = false; //gameInProgress();
var neopoints = currentNeoPoints();

//* Are we on the index page?
if(index) {

//* If so, is there another game already in progress?
if(inProgress) {

//* Ask if the user wants to resume this game
if(confirm("Do you want to resume your current game?")) {
window.location = "http://www.neopets.com/games/pyramids/pyramids.phtml";
return false;
}
//* or ask if they want to start a new game
else {
if(confirm("Do you want to start a new game?")) {
//* Check if there is enough NP to play a game
if(neopoints < 50) {
debug("Not enough NP to play");
return false;
}
else {
debug("Enough NP to play, cancelling existing game and starting new game...");
if(cancelGame(ajaxObject)) {
debug("Cancel successful, reloading index...");
window.location.reload();
}
else {
debug("Problem cancelling game, exiting...");
return false;
}
}
}
else {
//* User does not want to resume game or start new game
debug("Doing nothing...");
return false;
}
}
}
else {
//* We're on the index page but no game has been started
//* Check if there is enough NP to play a game
if(neopoints < 50) {
debug("Not enough NP to play");
return false;
}
else {
debug("Enough NP to play, starting game...");
startGame();
}
}
}

inGame(false, ajaxObject, neopoints);
return false;

//* Use some logic to determine if there is a +1 advantage to using the available active cards
}

function inGame(skipStack, ajaxObject, neopoints) {
//* We're in the game
//* Get stack card
if(!skipStack) {
stackCard = getStackCard();
if(!stackCard) {
debug("<b>stackCard is false, getting last card...</b>");
stackCard = getLastCard();
if(!stackCard) {
debug("getLastCard failed...");
//return false;
}
}
else {
debug("<b>stackCard returned non-false, value is: " + stackCard + "</b>");
if(stackCard !== parseInt(stackCard,10)) {
debug("<b>stackCard is a usable number</b>");
}
else {
debug("<b>stackCard was not a usable number, exiting...</b>");
return false;
}
}
} else {
//stackCard = getLastCard();
}

//* Get active cards
activeCards = getActiveCards();

//* Create array of active cards that are 1 higher or lower than the current stack card
usableCards = getUsableActiveCards(activeCards, stackCard, 1);
if(usableCards != false) {
//* Are there any usable cards?
if(usableCards.length > 0) {
//debug(usableCards.length + " usable cards.");

//* We have usable cards. take first usable card and submit action...
//debug("Performing action on card " + usableCards[0]);
window.location = usableCards[0];

//* Card has been played, detect card score, total score, restart

//* We have usable cards, detect which of the available have + 1 chain advantages


return false;
}
}
else {
debug("<b>No usable cards detected!</b>");
debug("<b>Checking if game is over...</b>");
//* Check if game is over
var g = gameIsOver();
if(g) {
debug("Game is over, collect winnings...");
var winnings = collectWinnings(ajaxObject);
if(winnings == false) {
debug("<br /><br /><br /><font size='16'>DANGER WILL ROBINSON DANGER! YOU DID NOT GET YOUR MEASLEY WINNINGS!<br /><br /><br />");
}
else {
debug("<b>Winnings collected...</b>");

var bank = depositNP(neopoints);
if(!bank) {
debug("<b>Problem depositing neopoints...</b>");
}
else {
debug("<b>"+neopoints+"</b> deposited");
}
//window.location = "http://www.neopets.com/games/pyramids/index.phtml";
}
return false;
}
//* Check if on last card
debug("<b>Checking if on last card...</b>");
var lastCard = isLastCard();
if(!lastCard) {
debug("<b>Not on the last card, setting current stackCard '"+stackCard+"' as last card...</b>");
var set = setLastCard(stackCard);
if(!set) {
debug("<b>Failed to set stackCard. exiting...</b>");
}
//* No usable cards. attempt to draw...
debug("No usable cards, attempting draw...");
window.location = "http://www.neopets.com/games/pyramids/pyramids.phtml?action=draw";
}
debug("<b>On last card, ...</b>");
if(skipStack == true) {
stackCard = getLastCard();
debug("<b>skipStack true, exiting...</b>");
return false;
}
else {
inGame(true, ajaxObject);
return false;
}
}
}

/********************************************/
// http://www.chipchapin.com/WebTools/J...ample3-02.html
var childW = null;
function launchDebugWindow() {

return true;

if (childW != null) childW.window.close();

wopts = 'width=500,height=500,resizable=1,alwaysRaised=1,s crollbars=1';
childW = window.open('', 'childW', wopts);

if (childW != null) {
childW.document.open()
childW.document.bgColor = "ccffcc";
childW.document.write('<br>');
if (childW.opener == null) {
childW.opener = self;
}
} else {
alert("Failed to open child window");
}
}

function debug(txt) {
return true;
if (childW == null) {
//launchChildW();
return false;
}
childW.document.writeln(txt + "<br />");
}
/*********************************************/

function getAjaxObject() {
var obj = new XMLHttpRequest();

return obj;
}

function collectWinnings(ajaxObject) {
debug("Collect winnings called");
var xpath = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/p/font/b/a";
var xpath2 = "/html/body/div[4]/div[3]/table/tbody/tr/td[2]/div[2]/div/p/font/b/a";
var wHref = evaluateXPath(document.body, xpath);
if(wHref.length < 1) {
wHref = evaluateXPath(document.body, xpath2);
}
var won;

if(wHref.length > 0) {
//debug("Winnings link: " + wHref[0].attributes.getNamedItem("href").value);
debug("Collecting winnings and going back home...");
window.location = "http://www.neopets.com/games/pyramids/" + wHref[0].attributes.getNamedItem("href").value;
won = true;
}
else {
debug("Could not find winnings link");
won = false;
}

return won;
}

function cancelGame(ajaxObject) {
ajaxObject.open('GET', 'http://www.neopets.com/games/pyramids/index.phtml?action=cancel', false);

ajaxObject.onreadystatechange = function(aEvt) {
if(ajaxObject.readyState = 4) {
if(ajaxObject.status == 200) {
// cancel successful
}
else {
// problem cancelling the game
return false;
}
}
};
ajaxObject.send();
return true;
}

function depositNP(amount) {
ajaxObject.open('GET', 'http://www.neopets.com/process_bank.phtml?type=deposit&amount=' + amount, false);

ajaxObject.onreadystatechange = function(aEvt) {
if(ajaxObject.readyState = 4) {
if(ajaxObject.status == 200) {
// deposit successful
}
else {
// problem depositing NP
return false;
}
}
};
ajaxObject.send();
return true;
}

function currentNeoPoints() {
var d = document;
var z = d.getElementById('npanchor').innerHTML;

return z;
}

function isIndexPage() {
var d = document;
var u = d.location.href;

if(u.indexOf('index.phtml') != -1) {
//debug("home");
return true;
}
else {
//debug("not home");
return false;
}
}

function gameInProgress() {
var d = document;
var h = d.body.innerHTML;
var t = "You have an unfinished Pyramids game running!";

if(h.indexOf(t) != -1) {
return true;
}
else {
return false;
}
}

function gameIsOver() {
var d = document;
var h = d.body.innerHTML;
var t = "There are no more available moves!";

if(h.indexOf(t) != -1) {
return true;
}
else {
return false;
}
}

function isLastCard() {
//debug("<b>Checking for empty.gif...</b>");
var t = "empty.gif";
var d = document.body.innerHTML;

if(d.indexOf(t) != -1) {
debug("<b>empty.gif was found in document.body.innerHTML");
return true;
}
else {
debug("<b>emtpy.gif was NOT found in document.body.innerHTML");
return false;
}
}



function startGame() {
//debug("Starting game...");
var d = document;
var f = d.forms;
var z = f[1];

z.submit();
}

function evaluateXPath(aNode, aExpr) {
var xpe = new XPathEvaluator();
var nsResolver = xpe.createNSResolver(aNode.ownerDocument == null ? aNode.documentElement : aNode.ownerDocument.documentElement);
var result = xpe.evaluate(aExpr, aNode, nsResolver, 0, null);
var found = [];
var res;
while (res = result.iterateNext())
found.push(res);
return found;
}

function getStackCard() {
debug("getStackCard called");
var xpath4 = "/html/body/div[4]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr/td/img";
var xpath = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr/td/img";
var xpath5 = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr/td/img[2]";
var xpath2 = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr/td/img[2]";
var xpath3 = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr/td/img";

var stackCard = evaluateXPath(document.body, xpath);
if(stackCard.length < 1) {
stackCard = evaluateXPath(document.body, xpath2);
if(stackCard.length < 1) {
stackCard = evaluateXPath(document.body, xpath3);
if(stackCard.length < 1) {
stackCard = evaluateXPath(document.body, xpath4);
if(stackCard.length < 1) {
debug("There's something wrong with the xpath");
return false;
}
}
}
}
//debug("Nodes found in xpath: " + stackCard.length);
//debug("Node info: " + stackCard[0].attributes.getNamedItem("src").value);

var url = stackCard[0].attributes.getNamedItem("src").value;

if(url == null) {
url = stackCard[1].attributes.getNamedItem("src").value;
if(url == null) {
debug("URL WAS FALSE");
return false;
}
}
//debug("Stack card URL: " + url);

var stackValue = parseCardValue(url);
//debug("Stack card value: " + stackValue);

if(stackValue == "http://images.neopets.com/games/mcards/") {
return false;
}
return stackValue;
}

function getActiveCards() {
debug("getActiveCards called");

var currentCard;
var activeCardArray = new Array();
var currentCardArray;
var currentActiveCardValue;
var xpath = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr[2]/td/center/table/tbody/tr";
for(var z = 7; z >= 1; z--) {
var xp = xpath + "["+z+"]/td/a/img";
var activeCards = evaluateXPath(document.body, xp);

// debug(xp);
//debug("Nodes found in xpath: " + activeCards.length);
for (var i = 0; i < activeCards.length; i++) {
currentCard = activeCards[i];

currentCardArray = [];

currentActiveCardValue = parseCardValue(currentCard.attributes.getNamedItem ("src").value);
//debug("Active card value: " + currentActiveCardValue);
currentActiveCardAct = getActiveCardLink(currentCard);
//debug("Active card link: " + currentActiveCardAct);

currentCardArray.push(currentActiveCardValue);
currentCardArray.push(currentActiveCardAct);

//debug("Added values to current active card array");

activeCardArray.push(currentCardArray);

//debug("Added array pair to main active card array");
}
}

//debug("<br /><br />Array of value/link pairs created, printing...");
for(var n = 0; n < activeCardArray.length; n++) {
//debug("Current pair: " + activeCardArray[n][0] + " : " + activeCardArray[n][1]);
}

return activeCardArray;

}

function setLastCard(stackCard) {
var c_name = "lastCard";
var value = stackCard;
var expiredays = 3;
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toUTCString());

if(getLastCard() != stackCard) {
return false;
}
return true;
}

function getLastCard()
{
var xpath = "/html/body/div[3]/div[3]/table/tbody/tr/td[2]/div[2]/div/div[2]/center/table/tbody/tr[2]/td/table/tbody/tr/td/img[2]";
var nodes = evaluateXPath(document.body, xpath);

if(nodes.length < 1) {
debug("<b>Could not locate last card!</b>");
return false;
}
else {
debug("Last card: " + nodes[0].attributes.getNamedItem('src').value);
return parseCardValue(nodes[0].attributes.getNamedItem('src').value);
}

var c_name = "lastCard";
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1)
{
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end)) ;
}
}
return false;
}

function parseCardValue(cardURL) {
//debug("URL: " + cardURL);
var i = cardURL.lastIndexOf('/');
var n = cardURL.lastIndexOf('_');
var s = cardURL.substring(i+1,n);

return s;
}

function parseLinkPosition(linkURL) {
var i = linkURL.lastIndexOf('&position=');
var n = linkURL.substring(i);

return n;
}

function getActiveCardLink(cardNode) {
var linkURL = cardNode.parentNode.toString();
return linkURL;
}

function getUsableActiveCards(activeCards, stackCard, amount) {
try {
debug("getUsableActiveCards called");

var u = new Array();
var t = 0;

for(var i = 0; i < activeCards.length; i++) {
t = stackCard * 1;
var activeCardValue = activeCards[i][0];
debug("Current comparison: " + stackCard + " vs " + activeCardValue + "(+1 = "+(t+1)+" ; -1 = "+(t-1));
var activeCardURL = activeCards[i][1];

if(activeCardValue == (t + amount) || activeCardValue == (t - amount)) {
debug("Active card '"+ activeCardValue +"' is usable with stack card " + stackCard);
u.push(activeCardURL);
}
else {
if(activeCardValue == 14) {
if(stackCard == 2) {
debug("Active card '"+ activeCardValue +"' is an ace and can be used with a two");
u.push(activeCardURL);
}
}
else {
if(activeCardValue == 2) {
if(stackCard == 14) {
debug("Active card '"+ activeCardValue +"' is a two and can be used with an ace");
u.push(activeCardURL);
}
}
}
}
}

if(u.length < 1) {
//debug("<b>No usable cards detected!</b>");
return false;
}
//debug("<br /><br />Array of usable links created, printing...<br />");
for(var n = 0; n < u.length; n++) {
debug(u[n]);
}

} catch(e) {
debug("ERROR: " + e.message);
}
return u;
}