Preview the latest posts on your favorite eUSA Forums board from the Erepublik homepage
// ==UserScript== // @version 0.4 // @name eUSA Forums Feed for Erepublik // @namespace http://eusaforums.com/ // @description Preview the latest posts on your favorite eUSA Forums board from the Erepublik homepage // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js // @grant GM_addStyle // @grant GM_setValue // @grant GM_deleteValue // @grant GM_getValue // @grant GM_xmlhttpRequest // @match *://www.erepublik.com/* // @exclude *://www.erepublik.com/*/* // @copyright 2014+, Mike Ontry // ==/UserScript== jQuery("body").append ( ' \ <div id="gmPopupContainer"> \ <form> \ <h2>eUSA Forums Feed Settings</h2><br /> \ <small>The username and password fields are optional. Use them if you are not already logged in to the forums on this device.</small><br /> \ Username:<br /> \ <input type="text" id="eUSAForums-user" value="'+GM_getValue("user", "Forum Username")+'"><br /> \ Password:<br /> \ <input type="password" id="eUSAForums-pass" value="'+GM_getValue("pass", "")+'"><br /> \ Number of posts to show:<br /> \ <input type="text" id="eUSAForums-posts" value="'+GM_getValue("posts", "5")+'"><br /> \ \ <button id="eUSAForums-submit" type="button">Save</button> \ <button id="eUSAForums-clear" type="button">Clear Settings</button><br /><br /> \ <h2>Add board</h2><br /> \ Board name:<br /> \ <input type="text" id="addboard-name"><br /> \ Board id:<br /> \ <input type="text" id="addboard-id"><br /> \ <button id="addboard-submit" type="button">Add</button><br /><br /> \ <h2>Remove board</h2><br /> \ <div id="removeboard-div"></div><br /> \ <button id="removeboard-submit" type="button">Remove</button><br /> \ <div id="gmCloseDlgBtn" title="Close"><img src="http://ereptools.tk/images/close.png"/></div> \ </form> \ </div> \ ' ); jQuery(document).on("change", "#eUSAForums-board", function (e) { var board = jQuery("#eUSAForums-board").val(); if(GM_getValue("board") != board) { GM_setValue("board", board); waitForFeed(GM_getValue("board"), GM_getValue("posts")); } }); jQuery("#addboard-submit").click ( function () { var addName = jQuery("#addboard-name").val(); var addId = jQuery("#addboard-id").val(); jQuery("#addboard-name").val(""); jQuery("#addboard-id").val(""); if (addName != "" || addId != ""){ if( GM_getValue("boardsList", "") != ""){ var oldBoards = JSON.parse(GM_getValue("boardsList")); oldBoards.push(addName); oldBoards.push(addId); GM_setValue("boardsList", JSON.stringify(oldBoards)); }else{ var boardsList = [addName, addId]; GM_setValue("boardsList", JSON.stringify(boardsList)); } } jQuery("#gmPopupContainer").hide(); loadBoardList(); }); jQuery("#removeboard-submit").click ( function () { var removeName = jQuery("#removeboard-name").val(); if (removeName != ""){ if( GM_getValue("boardsList", "") != ""){ var oldBoards = JSON.parse(GM_getValue("boardsList")); for (i = 0; i < oldBoards.length; i++) { if(oldBoards[i] == removeName){ oldBoards.splice(i-1,2); } } GM_setValue("boardsList", JSON.stringify(oldBoards)); } } jQuery("#gmPopupContainer").hide(); loadBoardList(); }); jQuery("#eUSAForums-submit").click ( function () { var user = jQuery("#eUSAForums-user").val(); var pass = jQuery("#eUSAForums-pass").val(); var posts = jQuery("#eUSAForums-posts").val(); if (GM_getValue("user") != user || GM_getValue("pass") != pass || GM_getValue("posts") != posts ) { GM_setValue("posts", posts); jQuery("#gmPopupContainer").hide(); if(GM_getValue("user") != user || GM_getValue("pass") != pass){ GM_setValue("user", user); GM_setValue("pass", pass); if(GM_getValue("user") != "Forum Username" || GM_getValue("pass") != ""){ loginForums(); } } waitForFeed(GM_getValue("board"), GM_getValue("posts")); }else { jQuery("#gmPopupContainer").hide(); } }); jQuery("#eUSAForums-clear").click ( function () { jQuery("#eUSAForums-user").val(""); jQuery("#eUSAForums-pass").val(""); jQuery("#eUSAForums-posts").val(""); GM_deleteValue("user"); GM_deleteValue("pass"); GM_deleteValue("board"); GM_deleteValue("posts"); waitForFeed("", ""); loadBoardList(); jQuery("#gmPopupContainer").hide(); } ); jQuery("#gmCloseDlgBtn").click ( function () { jQuery("#gmPopupContainer").hide(); } ); jQuery(".column:first").append('<h1 class="noborder eUSAForums-title" style="clear:left;"></h1><div id="eUSAForums-config">Feed Settings</div><div id="eUSAForums-select"></div>'); jQuery(".column:first").append('<div class="media_widget eUSAForums"><div id="eUSAForums-container"><ul></ul></div><a href="http://eusaforums.com/forum/index.php?action=forum" target="_blank" class="visit_eUSAForums" title="Visit Forums">Visit Forum</a></div>'); jQuery("#gmPopupContainer").css({top: jQuery("#eUSAForums-config").offset().top, left: jQuery("#eUSAForums-config").offset().left}); jQuery("#eUSAForums-config").click ( function () { jQuery("#gmPopupContainer").show(); }); jQuery(document).on("mouseleave mouseenter", "li.eUSAForums-list", function (e) { if (e.type === 'mouseenter') { jQuery(this).children('.eUSAForums-items').css('display', 'none'); jQuery(this).children('.eUSAForums-desc').css('display', 'inline-block'); jQuery(this).height(140); jQuery(this).children('.eUSAForums-desc').height(140); } else{ jQuery(this).children('.eUSAForums-items').css('display', 'block'); jQuery(this).children('.eUSAForums-desc').css('display', 'none'); jQuery(this).height(70); jQuery(this).children('.eUSAForums-desc').height(70); } }); function loginForums() { GM_xmlhttpRequest({ method: "POST", url: "http://eusaforums.com/forum/index.php?action=login2", data: "&action=login2&user="+GM_getValue("user")+"&passwrd="+GM_getValue("pass")+"&cookieneverexp=on&hash_passwrd=", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function() { waitForFeed(GM_getValue("board"), GM_getValue("posts")); } }); } function loadBoardList() { var selectMenu = '<select id="eUSAForums-board"><option value="">All Boards</option>'; var selectConfigMenu = '<select id="removeboard-name"><option value="">Select Board</option>'; if( GM_getValue("boardsList", "") != ""){ var oldBoards = JSON.parse(GM_getValue("boardsList")); for (i = 0; i < oldBoards.length; i+=2) { selectMenu += '<option value="'+oldBoards[i+1]+'">'+oldBoards[i]+'</option>'; selectConfigMenu += '<option value="'+oldBoards[i+1]+'">'+oldBoards[i]+'</option>'; } } selectMenu += '</select>'; selectConfigMenu += '</select>'; jQuery("#eUSAForums-select").empty(); jQuery("#eUSAForums-select").append(selectMenu); jQuery("#removeboard-div").empty(); jQuery("#removeboard-div").append(selectConfigMenu); } function waitForFeed(b,p) { b = typeof b !== 'undefined' ? b : GM_getValue("board", ""); p = typeof p !== 'undefined' ? p : GM_getValue("posts", ""); jQuery("#eUSAForums-container").find("ul").empty(); GM_xmlhttpRequest({ method: "GET", url: "http://eusaforums.com/forum/index.php?action=.xml;sa=recent;board="+b+";limit="+p+";type=atom", onload: function(response) { var data = jQuery.parseXML(response.responseText); jQuery(data).find("feed").each(function () { var el = jQuery(this); var title = el.find("title:first").text(); jQuery(".eUSAForums-title").html(title); }); jQuery(data).find("entry").each(function () { var el = jQuery(this); var title = el.find("title").text(); var link = el.find("id").text(); var pubDate = el.find("published").text(); var desc = el.find("summary").text(); var author = el.find("author").find("name").text(); var authorLink = el.find("author").find("uri").text(); jQuery("#eUSAForums-container").find("ul").append('<li class="eUSAForums-list"><div class="eUSAForums-items"><div><a href="'+link+'" target="_blank" class="eUSAForums-link">'+title+'</a><br /><a href="'+authorLink+'" target="_blank">'+author+'</a><br /><br /><small>'+pubDate+'</small></div></div><br /><br /><div class="eUSAForums-desc"><a href="'+link+'" target="_blank" class="eUSAForums-link">'+title+'</a><br /><a href="'+authorLink+'" target="_blank">'+author+'</a><br /><br />'+desc+'<br /><br /><a href="'+link+'" target="_blank" class="eUSAForums-link">Continue Reading...</a></div></li>'); }); } }); } loadBoardList(); //CSS GM_addStyle ( " \ #gmPopupContainer { \ position: absolute; \ width: 278px; \ padding: 2em; \ background: #C1E4F1; \ border: 3px double black; \ border-radius: 1ex; \ z-index: 999; \ display: none; \ } \ #gmPopupContainer button{ \ cursor: pointer; \ margin: 1em 1em 0; \ border: 1px outset buttonface; \ } \ #gmCloseDlgBtn { \ cursor: pointer; \ position: absolute; \ top: 0px; \ right: 0px; \ } \ #eUSAForums-config { \ background-color: #C1E4F1; \ text-align: center; \ cursor: pointer; \ } \ #eUSAForums-select { \ background-color: #C1E4F1; \ text-align: center; \ } \ #eUSAForums-select select { \ background: #C1E4F1; \ border:none; \ outline:none; \ cursor:pointer; \ } \ .eUSAForums-items a { \ float: left; \ color: #333; \ line-height: 15px; \ clear: both; \ font-size: 14px; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums li { \ width: 318px; \ height: 70px; \ top: 0; \ left: 0; \ padding: 7px; \ float: left; \ clear: both; \ border-bottom: 1px solid #efeded; \ position: relative; \ } \ .eUSAForums ul { \ list-style-type: none; \ } \ .visit_eUSAForums { \ float: left; \ width: 100px; \ height: 20px; \ -moz-border-radius-topleft: 5px; \ -moz-border-radius-topright: 5px; \ border-radius: 5px 5px 0 0; \ background-color: #e0ddd0; \ background-image: -webkit-linear-gradient(#f2f0ec 0,#e0ddd0 100%); \ background-image: linear-gradient(#f2f0ec 0,#e0ddd0 100%); \ box-shadow: #d6d1c5 0 1px 2px inset; \ position: absolute; \ bottom: 3px; \ font-size: 11px; \ text-shadow: #fff 0 1px 0; \ color: #726c5f; \ left: 116px; \ text-align: center; \ line-height: 22px; \ } \ .eUSAForums-desc { \ background-color: #E7EAEF; \ display: none; \ z-index: 10; \ width: 318px; \ height: 70px; \ position: absolute; \ top: 0; \ left: 0; \ padding: 7px; \ overflow-y: auto; \ overflow-x: auto; \ color: #333; \ line-height: 15px; \ clear: both; \ font-size: 14px; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums-desc a { \ color: #346; \ text-decoration: underline; \ line-height: 15px; \ clear: both; \ font-size: 14px; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums-desc .bbc_standard_quote { \ background-color: #D7DAEC; \ border-bottom-style: solid; \ border-bottom-color: #9999AA; \ padding: 3px; \ font-size: small; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums-desc .bbc_alternate_quote { \ background-color: #E7EAFC; \ border-bottom-style: solid; \ border-bottom-color: #9999AA; \ border-top-style: solid; \ border-top-color: #9999AA; \ padding: 3px; \ font-size: small; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums-desc .topslice_quote { \ background-color: #D7DAEC; \ border-top-style: solid; \ border-top-color: #9999AA; \ padding: 3px; \ font-size: small; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums-desc .topslice_quote a { \ font-size: x-small; \ font-family: Cambria,Georgia,serif; \ } \ .eUSAForums-desc .bbc_img { \ max-width: 300px; \ max-height: 400px; \ } \ .youtube iframe { \ width: 275px; \ height: 140px; \ } \ " ); window.addEventListener('load', waitForFeed(), false);