// ==UserScript== // @name Gamefaqs Quick Edit // @namespace N-eil // @version 0.9.1 // @description Edit from within topic in gamefaqs // @include *.gamefaqs.com/boards/* // @grant none // @downloadURL https://update.greasyfork.cloud/scripts/591/Gamefaqs%20Quick%20Edit.user.js // @updateURL https://update.greasyfork.cloud/scripts/591/Gamefaqs%20Quick%20Edit.meta.js // ==/UserScript== var reg = /\/(\d+)/g //Makes a regex to get board and message ID from the url , boardID = reg.exec(location.href)[1] , topicID = reg.exec(location.href)[1]; var key; //Gfaqs has a hidden field called "key" that is required to be filled with a certain code(different for each user) in order to post/edit/pm if(document.getElementsByName('key').length) //Look for the key on the page: quickposting is enabled { key = document.getElementsByName('key')[0].value; addLinks(); } else { $.post("/boards/post.php?board=" + boardID + "&topic=" + topicID, {}).done(function(response){ //Otherwise, look for the key requesting a separate post message page key = response.match(/key" value="([^"]*)"/)[1]; addLinks(); }); } //If neither method can find the key, don't bother adding the quick PM and edit links since they cannot function properly function addLinks(){ var username = $(".board_nav a:first").html(); username = username.substring(0,username.indexOf('(')-1); var $details = $(".msg_stats_left") , displayLeft = true; if (!$details.length){ //If nothing was found, they must have user details displayed above the message $details = $(".msg_stats"); displayLeft = false; } $details.each(function(index, el) { var $el = $(el); if ($el.html().match(username)) { //Ones with your username in them are your posts, and can be edited // $.post($el.find("a[title='Detail']").attr("href"), {}).done(function(response){ //Makes a request to the message detail page // if(response.match(/name="YES" value="Edit/)) //Looks in the response for the edit button, this could be tricked if you wrote the regex in the post but I don't think anyone would do that ever //{ var editLink = $(" Edit "); editLink.click(function() { if (displayLeft) showEditWindow($(el).closest(".msg").find(".msg_body").clone()); else showEditWindow($(el).closest(".top").next().find(".msg_body").clone()); }); $el.append(editLink); //} //}); } }); } function replaceButtons(){} //Placeholder function, modified when the edit window appears to replace the buttons in the relevant place function createPopup(text){ replaceButtons(); $("#popup-window").remove(); var $window = $("