Helper/CopyScript
From Karteria DWRP Wiki
Jump to navigationJump to search
// ==UserScript== // @name FAQ Copy // @namespace http://tampermonkey.net/ // @version 2025-12-15 // @description Formats comments for the Karteria player wiki https://karteria.blossom.blue // @author icie // @match https://*.dreamwidth.org/*.html* // @icon https://www.google.com/s2/favicons?sz=64&domain=dreamwidth.org // @grant none // ==/UserScript== (function() { //var $=$; function addJQuery(callback) { var script = document.createElement("script"); script.setAttribute("src", "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"); script.addEventListener('load', function() { var script = document.createElement("script"); script.textContent = "window.$=jQuery.noConflict(true);(" + callback.toString() + ")();"; document.body.appendChild(script); }, false); document.body.appendChild(script); } function processAsk(faqText, comment) { var content = $(comment).find(".comment-content"); processContent(content); faqText.answercontent = $(content).html(); faqText.askcontent = $(comment).find(".comment-content").html(); faqText.dateasked = $(comment).find(".header .datetime").text().match(/(\d{4}\-\d{2}\-\d{2})/)[0]; faqText.askedby = $(comment).find(".header .comment-poster").text().trim(); faqText.link = $(comment).find(".header .commentpermalink a").prop("href"); console.log(faqText.link); // console.log(JSON.stringify(faqText)); return faqText; } function processContent(content){ var htm = $(content).html().replace("|", "{{!}}"); content.html(htm); content.find(".ljuser").each(function (){ var x = $(this).text(); $(this).after("{{DWUser|"+x+"}}"); // console.log("x: "+x); $(this).remove(); }); var details = content.find("details"); // console.log("contentjs: " +$(content).html()); details.each(function (){ console.log("details:"+$(this).html()); var summary = $(this).find("summary").first(); console.log("summary:"+$(summary).html()); if(summary.length > 0){ summary.each(function (){ var x = $(this).html(); $(this).after("<div style='font-weight:bold' class='mw-collapsible-header' >"+x+"</div><div class='mw-collapsible-content'>"); console.log("summary: "+x); $(this).remove(); }); var x = $(this).html(); console.log("summary here:" + x); console.log("res: <div class='toccolours mw-collapsible mw-collapsed' style='width:400px; overflow:auto;'>"+x+"</div></div>"); $(this).after("<div class='toccolours mw-collapsible mw-collapsed' style='width:400px; overflow:auto;'>"+x+"</div></div>"); $(this).remove(); } else { var y = $(this).html(); $(this).after("<div class='toccolours mw-collapsible mw-collapsed' style='width:400px; overflow:auto;'>"+y+"</div>"); $(this).remove(); } }); } function processAnswer(faqText, comment) { var content = $(comment).find(".comment-content"); processContent(content); faqText.answercontent = $(content).html(); faqText.dateanswered = $(comment).find(".header .datetime").text().match(/(\d{4}\-\d{2}\-\d{2})/)[0]; return faqText; } function buildText(faqText) { var processedText = `{{Question |QuestionFaqPage=<em>No results</em> |Link=` + faqText.link + ` |Topics= |AskedBy=` + faqText.askedby + ` |DateAsked=` + faqText.dateasked + ` |QuestionText=` + faqText.askcontent + ` |DateAnswered=` + faqText.dateanswered + ` |AnswerText=` + faqText.answercontent + ` }}`; return processedText; } function fillFAQBox() { var comments = $(".comment:has(.faq-input:has(:checked))"); var faqText = {}; var l = document.URL; faqText["faqpageurl"] = l.match(/https:\/\/(?:.+)\.dreamwidth\.org\/(?:\d+).html/)[0]; if ($(comments).length > 1) { faqText = processAsk(faqText, $(comments).eq(0)); faqText = processAnswer(faqText, $(comments).eq(1)); $(comments).find(".faq-input :checked").prop('checked', false); var toAdd = $("<textarea></textarea>").text(buildText(faqText)); $("#floatbox").html("").html(toAdd).find("textarea").select(); } } function main() { var comments = $(".comment-poster"); comments.prepend("<div class='faq-input'><input type='checkbox' class='faq-ask' name=ask /></div>"); // console.log("hereeee"); $(comments).find(".faq-ask").click(fillFAQBox); // console.log("here 2"); var floatDiv = $("<div id='floatbox'></div>").css({ "position": "fixed", "bottom": "0", "right": "0", "border": "3px solid #73AD21" }); $("#comments").append(floatDiv); } if (window.jQuery) { // console.log("jq loaded"); main(); } else { // console.log("jq not loaded"); addJQuery(main); } })(); //console.log("HEREEWRFLS");