By Ben Hollis
—
Last update
Sep 9, 2007
—
Installed
343 times.
// ==UserScript==
// @name No Xbox Live Arcade Demos
// @author Ben Hollis
// @namespace http://brh.numbera.com/software/greasemonkeyscripts
// @description Removes the demo XBLA games from your Xbox.com games list, and removes their score from your total score.
// @include http://live.xbox.com/*/profile/Achievements/ViewAchievementSummary.aspx*
// @version 1.0
// ==/UserScript==
function removeDemos() {
var single = true;
if(window.location.href.match(/compareTo/))
single = false;
var games = document.evaluate('//tbody[starts-with(@id,"as_")]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
var numRemoved = 0;
var notPlayed = 0;
for(var i = 0; i < games.snapshotLength; i++) {
var game = games.snapshotItem(i);
// tbody/tr/td<last>/strong/text
var score = game.firstChild.lastChild.firstChild.firstChild.nodeValue;
var score2 = score;
if(!single) {
// tbody/tr/td<last>/<previous>/strong/text
score2 = game.firstChild.lastChild.previousSibling.firstChild.firstChild.nodeValue;
}
if(score.match(/^0 of 200/) && score2.match(/^0 of 200/)) {
game.parentNode.removeChild(game);
numRemoved++;
}
}
if(single) {
var elements = document.evaluate('//p[@class="XbcFloatLeft"]/strong', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for(var i = 0; i < elements.snapshotLength; i++) {
var element = elements.snapshotItem(i);
var elementContents = element.firstChild.nodeValue;
var numGamesResult = /(\d+) Game\(s\) Played/.exec(elementContents);
if(numGamesResult && numGamesResult.length == 2) {
var numGames = numGamesResult[1];
numGames -= numRemoved;
element.innerHTML = elementContents.replace(/(\d+)/, numGames);
}
else {
var scoreResult = /of (\d+) Gamerscore/.exec(elementContents);
if(scoreResult && scoreResult.length == 2) {
var score = scoreResult[1];
score -= 200 * numRemoved;
element.innerHTML = elementContents.replace(/of (\d+) Gamerscore/, "of " + score + " Gamerscore");
}
}
}
}
}
removeDemos();