Newzbin Nfo Getter
By Akin Altas
—
Last update Jul 14, 2006
—
Installed
512 times.
// ==UserScript==
// @name Newzbin Nfo Getter
// @namespace http://mywebsite.com/myscripts
// @description Display Source NFO on listings
// @include http://www.newzbin.com/*
// ==/UserScript==
//
//
// Orginal script by CrewOne
// Adapated to disply Games by Roman
// Adapted to display NFO by Akin
// Make sure you display NFOs in text in your newzbin settings
(function()
{
function getIGNScore( IGN_url, node )
{
GM_xmlhttpRequest({
method: 'GET',
url: IGN_url,
headers: { 'User-agent': 'Mozilla/4.0 (compatible)' },
onload: function(responseDetails)
{
var re_scoreIGN = /<div id="scoresBoxIgn">\n<div><a href=\"[^\"]*\">([0-9]{1}\.[0-9]{1})<\/a>/i;
var re_scoreRDR = /<div id="scoresBoxReaderAvgNum"><a href=\"[^\"]*\">([0-9]{1}\.[0-9]{1})<\/a>/i;
var re_votesRDR = /<div id="scoresBoxReaderAvgNfo"><strong>([0-9,]+)<\/strong> ratings/i;
var re_scorePR = /<div id="scoresBoxPressAvgNum"><a href=\"[^\"]*\">([0-9]{1}\.[0-9]{1})<\/a>/i;
var re_votesPR = /<div id="scoresBoxPressAvgNfo"><a href=\"[^\"]*\"><strong>([0-9,]+)<\/strong> press ratings/i;
var IGN_result = responseDetails.responseText;
try
{
var arr = re_scoreIGN.exec( IGN_result );
var scoreIGN = arr[ 1 ];
var arr = re_scoreRDR.exec( IGN_result );
var scoreRDR = arr[ 1 ];
var arr = re_votesRDR.exec( IGN_result );
var votesRDR = arr[ 1 ];
var arr = re_scorePR.exec( IGN_result );
var scorePR = arr[ 1 ];
var arr = re_votesPR.exec( IGN_result );
var votesPR = arr[ 1 ];
}
catch( e )
{
}
AddIGNScore( scoreIGN, scoreRDR, votesRDR, scorePR, votesPR, node );
}
});
}
function AddIGNScore( scoreIGN, scoreRDR, votesRDR, scorePR, votesPR, node )
{
if( window.location.href.indexOf( "/post/" ) != -1 )
{
newElement = document.createElement('div');
newElement.appendChild( document.createTextNode( "IGN:" + scoreIGN + "/10, Reader:" + scoreRDR + "/10 (" + votesRDR + "), Press:" + scorePR + "/10 (" + votesPR + ")") );
node.parentNode.insertBefore(newElement, node.nextSibling);
}
else
{
node.parentNode.parentNode.cells[ 9 ].innerHTML = node.parentNode.parentNode.cells[ 9 ].innerHTML + "<DIV>IGN: " + scoreIGN + "</DIV>";
}
}
function getGRScore( GR_url, node )
{
GM_xmlhttpRequest({
method: 'GET',
url: GR_url,
headers: { 'User-agent': 'Mozilla/4.0 (compatible)' },
onload: function(responseDetails)
{
var re_score = /<b>([0-9]{1}\.[0-9]{1})<\/b>/i;
var re_votes = /([0-9,]+) Votes/i;
var GR_result = responseDetails.responseText;
try
{
var arr = re_score.exec( GR_result );
var score = arr[ 1 ];
var arr = re_votes.exec( GR_result );
var votes = arr[ 1 ];
}
catch( e )
{
}
AddGRScore( score, votes, node );
}
});
}
function AddGRScore( score, votes, node )
{
if( window.location.href.indexOf( "/post/" ) != -1 )
{
newElement = document.createElement('div');
newElement.appendChild( document.createTextNode( "GameRankings: " + score + "/10 (" + votes + ")") );
node.parentNode.insertBefore(newElement, node.nextSibling);
}
else
{
node.parentNode.parentNode.cells[ 9 ].innerHTML = node.parentNode.parentNode.cells[ 9 ].innerHTML + "<DIV>GR: " + score + "</DIV>";
}
}
function getGSScore( GS_url, node )
{
GM_xmlhttpRequest({
method: 'GET',
url: GS_url,
headers: { 'User-agent': 'Mozilla/4.0 (compatible)' },
onload: function(responseDetails)
{
var scoreGSold = "";
var scoreGS = "";
var scoreRDR = "";
var votesRDR = "";
var scorePR = "";
var votesPR = "";
var re_scoreGSold = /<div class="number">\n\s*<a href=\"[^\"]*\">\n\s*([0-9]{1}\.[0-9]{1})\n\s*<\/a>/i;
var re_scoreGS = /We Say<\/a><br \/>\n\s*<span class=\"f18 fwb txt1\">([0-9]{1}\.[0-9]{1})<\/span>/i;
var re_scoreRDR = /You Say<\/a><br \/>\n\s*<span class=\"f18 fwb txt1\">([0-9]{1}\.[0-9]{1})<\/span>/i;
var re_votesRDR = /You Say<\/a><br \/>\n\s*<span class=\"f18 fwb txt1\">[0-9]{1}\.[0-9]{1}<\/span><br \/>\n\s*\(([0-9,]+) votes\)/i;
var re_scorePR = /They Say<\/a><br \/>\n\s*<span class=\"f18 fwb txt1\">([0-9]{1}\.[0-9]{1})<\/span>/i;
var re_votesPR = /They Say<\/a><br \/>\n\s*<span class=\"f18 fwb txt1\">[0-9]{1}\.[0-9]{1}<\/span><br \/>\n\s*\(([0-9,]+) reviews\)/i;
var GS_result = responseDetails.responseText;
try
{
var arr = re_scoreGSold.exec( GS_result );
if (arr != undefined)
scoreGSold = arr[ 1 ];
var arr = re_scoreGS.exec( GS_result );
if (arr != undefined)
scoreGS = arr[ 1 ];
var arr = re_scoreRDR.exec( GS_result );
if (arr != undefined)
scoreRDR = arr[ 1 ];
var arr = re_votesRDR.exec( GS_result );
if (arr != undefined)
votesRDR = arr[ 1 ];
var arr = re_scorePR.exec( GS_result );
if (arr != undefined)
scorePR = arr[ 1 ];
var arr = re_votesPR.exec( GS_result );
if (arr != undefined)
votesPR = arr[ 1 ];
}
catch( e )
{
}
AddGSScore( scoreGSold, scoreGS, scoreRDR, votesRDR, scorePR, votesPR, node );
}
});
}
function AddGSScore(scoreGSold, scoreGS, scoreRDR, votesRDR, scorePR, votesPR, node)
{
if( window.location.href.indexOf( "/post/" ) != -1 )
{
newElement = document.createElement('div');
if(scoreGSold == "") {
newElement.appendChild( document.createTextNode( "GameSpot:" + scoreGS + "/10, Reader:" + scoreRDR + "/10 (" + votesRDR + "), Press:" + scorePR + "/10 (" + votesPR + ")") );
} else {
newElement.appendChild( document.createTextNode( "GameSpot:" + scoreGSold + "/10") );
}
node.parentNode.insertBefore(newElement, node.nextSibling);
}
else
{
if(scoreGSold == "") {
node.parentNode.parentNode.cells[ 9 ].innerHTML = node.parentNode.parentNode.cells[ 9 ].innerHTML + "<DIV>GS: " + scoreGS + "</DIV>";
} else {
node.parentNode.parentNode.cells[ 9 ].innerHTML = node.parentNode.parentNode.cells[ 9 ].innerHTML + "<DIV>GS: " + scoreGSold + "</DIV>";
}
}
}
function getIMDBScore( imdb_url, node )
{
GM_xmlhttpRequest({
method: 'GET',
url: imdb_url,
headers: { 'User-agent': 'Mozilla/4.0 (compatible)' },
onload: function(responseDetails)
{
var re_score = /([0-9]{1}\.[0-9]{1})\/10/i;
var re_votes = /\(([0-9,]+) votes\)/i;
var imdb_result = responseDetails.responseText;
try
{
var arr = re_score.exec( imdb_result );
var score = arr[ 1 ];
var arr = re_votes.exec( imdb_result );
var votes = arr[ 1 ];
}
catch( e )
{
}
AddIMDBScore( score, votes, node );
}
});
}
function getnfo( imdb_url, node )
{
GM_xmlhttpRequest({
method: 'GET',
url: imdb_url,
headers: { 'User-agent': 'Mozilla/4.0 (compatible)' },
onload: function(responseDetails)
{
var re_score = /source.*:(.*)/i;
var re_votes = /\(([0-9,]+) votes\)/i;
var imdb_result = responseDetails.responseText;
try
{
var arr = re_score.exec( imdb_result );
var score = arr[ 1 ];
var arr = re_votes.exec( imdb_result );
var votes = arr[ 1 ];
}
catch( e )
{
}
Addnfo( score, votes, node );
}
});
}
function AddIMDBScore( score, votes, node )
{
if( window.location.href.indexOf( "/post/" ) != -1 )
{
newElement = document.createElement('div');
newElement.appendChild( document.createTextNode( "IMDB: " + score + "/10 (" + votes + ")") );
node.parentNode.insertBefore(newElement, node.nextSibling);
}
else
{
node.parentNode.parentNode.cells[ 9 ].innerHTML = node.parentNode.parentNode.cells[ 9 ].innerHTML + "<DIV>IMDB: " + score + "</DIV>";
}
}
function Addnfo( score, votes, node )
{
if( window.location.href.indexOf( "/post/" ) != -1 )
{
newElement = document.createElement('div');
newElement.appendChild( document.createTextNode( "IMDB: " + score + "/10 (" + votes + ")") );
node.parentNode.insertBefore(newElement, node.nextSibling);
}
else
{
node.parentNode.parentNode.cells[ 9 ].innerHTML = node.parentNode.parentNode.cells[ 9 ].innerHTML + "<DIV>NFO: " + score + "</DIV>";
}
}
var anchors = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++)
{
var anchor = anchors[i];
var url = anchor.href;
var exist = url.indexOf( "nfo" );
if (exist != -1 )
{
getnfo( url, anchor );
}
var exist = url.indexOf( "imdb.com" );
if (exist != -1 )
{
getIMDBScore( url, anchor );
}
var exist = url.indexOf( "ign.com" );
if (exist != -1 )
{
getIGNScore( url, anchor );
}
var exist = url.indexOf( "gamerankings.com" );
if (exist != -1 )
{
getGRScore( url, anchor );
}
var exist = url.indexOf( "gamespot.com" );
if (exist != -1 )
{
getGSScore( url, anchor );
}
}
})();