NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name PokemonForAll Reference Generator // @namespace about:blank // @description For QRCoders : generate the line to copy/paste in your references at the end of comment area // @include https://www.reddit.com/r/PokemonForAll/comments/* // @version 1 // @icon https://cdn0.iconfinder.com/data/icons/activities-1/24/233-48.png // @grant none // ==/UserScript== // ==OpenUserJS== // @author Askolei // ==/OpenUserJS== // If found returns the date of the post mentionning your name in the comment area function searchCompletionDate(qrcoder) { var comments = document.querySelectorAll("div[data-type=comment]"); for(var i = 0 ; i < comments.length ; ++i) { var pars = comments[i].querySelectorAll("div.md p"); for(var j = 0 ; j < pars.length ; ++j) { var anchors = pars[j].querySelectorAll("a"); for(var k = 0 ; k < anchors.length ; ++k) { if(anchors[k].href.endsWith(qrcoder)) { var time = comments[i].querySelector("p.tagline time"); var jpdate = time.dateTime.slice(0, 10); // Japan Format : YYYY-MM-DD var frdate = jpdate.slice(8, 10) + "/" + jpdate.slice(5, 7) + "/" + jpdate.slice(2, 4); // Fre format : DD/MM/YY return frdate; } } } } return ""; } // Parsing some important elements var sitetable = document.querySelector("div#siteTable"); var title = sitetable.querySelector("p.title"); var tagline = sitetable.querySelector("p.tagline"); var author = tagline.querySelector("a.author"); var postname = title.querySelector("a.title").innerHTML; var posthref = document.querySelector("input#shortlink-text").value; var authname = author ? "/u/" + author.innerHTML : "???"; var firstline = sitetable.querySelector("div.entry div.usertext-body div.md *").innerHTML; var typematch = firstline.match(/\[(\w+)\]/) || []; // [gen] ? [event] ? var posttype = (typematch.length > 1) ? typematch[1] : "gen"; var username = document.querySelector("span.user a").innerHTML; // It's you ! var completed = searchCompletionDate("/u/" + username); // Create the reference line and gloriously attach it at the end of comment area, ready for copy pasta if(completed) { var refline = "|[" + postname + "](" + posthref + ")|" + posttype + "|" + completed + "|" + authname + "|"; var element = document.createElement("div"); element.id = "refline"; element.innerHTML = refline; element.style = "font-size: 11pt; color: #0f0;"; document.querySelector("div.commentarea").appendChild(element); } else { console.log("Reference Generator Script is working but didn't find your name in the comment area."); }