// ==UserScript==
// @name GameFAQs-Avatars
// @namespace Kraust
// @description Avatars for GameFAQs
// @include *.gamefaqs.com/boards/*
// @version 2.5.0
// @grant none
// @downloadURL none
// ==/UserScript==
/****************************************************************************
* Disclaimer: This product is given as is, and anyone who many want to use *
* It is free to with my permission. If you need to contact me for any *
* reason please send me a message over on GameFAQs. I've tried to make it *
* so that in later versions of the script that people with a jQuery *
* background can understand what's going on here. *
****************************************************************************/
// cookie stuff
var cookie = getCookie("avatar");
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); + "; domain=.gamefaqs.com/; path=/";
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name) {
var i, x, y, ARRcookies = document.cookie.split(";");
for (i = 0; i < ARRcookies.length; i++) {
x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
x = x.replace(/^\s+|\s+$/g, "");
if (x == c_name) {
return unescape(y);
}
}
}
//This goes on ever page and sends you to the avatar settings
$(".masthead_user").prepend("Avatar Settings ");
// If we're on user.php we have to do a bit of preparation.
if((decodeURIComponent((new RegExp('[?|&]' + "upload" + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20')) == "1") && (location.pathname == "/boards/user.php")) {
console.log("This worked");
var user = $("html.js body.wf-active div.wrapper div#mantle_skin div#content.container div.main_content div.span8 div.body table.board tbody tr td").eq(0).text();
// GameWeasel Fix
if( user == "") {
var user = $("#content > div > div > div.body > table > tbody > tr:nth-child(1) > td").text();
}
console.log(user);
var upload_user = user + " ";
$(".page-title").html("GameFAQs Avatars");
$(".userinfo").css("border", "none");
$("tbody").empty();
if( user ) {
$("tbody").append("

" );
$("tbody").append("");
$("tbody").append("Version 2.5.0
+ New Imagehost as Dropbox no longer works properly.");
$("tbody").append("GameFAQs Avatars created by
Judgmenl - 2014.
");
$("tbody").append("A listing of Avatars can be located
Here (wip).
");
}
/* error checking when handling the upload */
$("#file").change(function() {
var file = this.files[0];
var size = file.size;
var type = file.type;
if( !type.match(/image.*/) ) {
$("#submit_btn").css("display", "none");
$("#server_message").html("Invalid File Type");
return;
}
if( size > 102400 ) {
$("#submit_btn").css("display", "none");
$("#server_message").html("Image is too big (" + size/1024 + "KB). 100KB maximum.");
return;
}
if( !user ) {
$("#submit_btn").css("display", "none");
$("#server_message").html("Log in to upload avatars.");
}
$("#submit_btn").css("display", "inline");
$("#server_message").html("OK");
});
/* ajax request to handle the upload */
$("#submit_btn").click( function() {
var formData = new FormData($('#submit')[0]);
$("#server_message").html("Uploading...");
$.ajax( {
//url: "http://weblab.cs.uml.edu/~rdupuis/gamefaqs-avatars/upload.php",
url: "http://weblab.cs.uml.edu/~rdupuis/gamefaqs-avatars/upload-v2.php",
dataType: "html",
type: "POST",
data: formData,
processData: false,
contentType: false
}).done(function( data ) {
$("#server_message").html(data);
if( data == 'Upload Successful! Refreshing to apply changes...') {
location.reload(true);
}
});
});
/* Cookie setters */
$("#av_left").click( function() {
setCookie("avatar", "left", 90);
});
$("#av_right").click( function() {
setCookie("avatar", "right", 90);
});
$("#av_no").click( function() {
setCookie("avatar", "no", 90);
});
} else {
/* Edit Avatar Display on a board basis */
$(".paginate, .user").eq(0).append(" Avatar Display Settings");
$(".pod, .board_wrap").eq(0).append("");
/* The toggle for the settings */
$("#avatar_settings").toggle( function() {
$("#settings").css("display", "block");
}, function() {
$("#settings").css("display", "none");
});
/* This part of the script tells the browser where to place the avatars */
if( cookie == "left" ) {
if($('span.author_data:nth-child(2)').length != 0) {
for( var i = 0; i < 50; i++) {
$('span.author_data:nth-child(2)').eq(i).after("
" );
}
} else {
/* Please note this is for users who have Message Poster Display "Above Message" */
for( var i = 0; i < 50; i++) {
$("td.msg").eq(i).prepend("" );
$(".msg_body").eq(i).css("padding-left", "110px");
$(".msg_body").eq(i).css("min-height", "100px");
$('img').error(function() {
$(this).parent().next().css("padding-left", "0px");
$(this).parent().next().css("min-height", "0px");
$(this).remove();
});
}
}
$('img').error(function() {
$(this).remove();
});
} else if (cookie == "right" ) {
for( var i = 0; i < 50; i++) {
$("table.board").eq(i).css("position", "relative");
$("td.msg").eq(i).prepend("" );
$(".msg_body").eq(i).css("padding-right", "110px");
$(".msg_body").eq(i).css("min-height", "100px");
}
$('img').error(function() {
$(this).parent().next().css("padding-right", "0px");
$(this).parent().next().css("min-height", "0px");
$(this).remove();
});
} else if ( cookie == "no" ) {
} else {
/* Comment this out if you want no avatars as your default */
if($('span.author_data:nth-child(2)').length != 0) {
for( var i = 0; i < 50; i++) {
$('span.author_data:nth-child(2)').eq(i).after("
" );
}
} else {
for( var i = 0; i < 50; i++) {
$("td.msg").eq(i).prepend("" );
$(".msg_body").eq(i).css("padding-right", "110px");
$(".msg_body").eq(i).css("min-height", "100px");
}
}
$('img').error(function() {
$(this).remove();
});
/* Comment this out if you want no avatars as your default */
}
/* Cookie setters */
$("#av_left").click( function() {
setCookie("avatar", "left", 90);
});
$("#av_right").click( function() {
setCookie("avatar", "right", 90);
});
$("#av_no").click( function() {
setCookie("avatar", "no", 90);
});
}