2019-01-06 18:59:07 +00:00
|
|
|
// ==UserScript==
|
|
|
|
// @name Moderator History - Show Flag Responses
|
|
|
|
// @namespace https://github.com/Glorfindel83/
|
|
|
|
// @description Loads flag responses (decline reasons and custom messages) into the Moderator History page.
|
|
|
|
// @author Glorfindel
|
|
|
|
// @updateURL https://raw.githubusercontent.com/Glorfindel83/SE-Userscripts/master/show-flag-responses/show-flag-responses.user.js
|
|
|
|
// @downloadURL https://raw.githubusercontent.com/Glorfindel83/SE-Userscripts/master/show-flag-responses/show-flag-responses.user.js
|
2019-01-06 19:41:54 +00:00
|
|
|
// @version 0.1.3
|
2019-01-06 18:59:07 +00:00
|
|
|
// @match *://*.stackexchange.com/admin/history/*
|
|
|
|
// @match *://*.stackoverflow.com/admin/history/*
|
|
|
|
// @match *://stackoverflow.com/admin/history/*
|
|
|
|
// @match *://superuser.com/admin/history/*
|
|
|
|
// @match *://serverfault.com/admin/history/*
|
|
|
|
// @match *://askubuntu.com/admin/history/*
|
|
|
|
// @match *://stackapps.com/admin/history/*
|
|
|
|
// @match *://mathoverflow.net/admin/history/*
|
|
|
|
// @grant none
|
|
|
|
// ==/UserScript==
|
|
|
|
|
|
|
|
(function () {
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
$("ul#mod-user-history > li").each(function() {
|
|
|
|
let post = $(this);
|
|
|
|
|
|
|
|
// Find time of handling (important to separate multiple flags on a single post)
|
|
|
|
let time = post.find("span.relativetime").attr("title");
|
|
|
|
|
|
|
|
// Find post ID
|
|
|
|
let link = post.find("a");
|
|
|
|
if (link.length == 0)
|
|
|
|
// e.g. tag merges
|
|
|
|
return;
|
|
|
|
let href = link.attr("href");
|
2019-01-06 19:28:59 +00:00
|
|
|
let hrefRegex = (link.hasClass("question-hyperlink") ? /\/questions\/(\d+)\//g :
|
|
|
|
link.hasClass("answer-hyperlink") ? /#(\d+)/g : null);
|
|
|
|
if (hrefRegex == null)
|
|
|
|
// e.g. moderator message
|
|
|
|
return;
|
|
|
|
let matches = hrefRegex.exec(href);
|
2019-01-06 18:59:07 +00:00
|
|
|
let postID = parseInt(matches[1]);
|
|
|
|
|
|
|
|
// Load Post Flag History page
|
2019-01-06 19:17:05 +00:00
|
|
|
$.get("https://" + document.location.host + "/admin/posts/" + postID + "/show-flags", function(data) {
|
2019-01-06 18:59:07 +00:00
|
|
|
// Search for rows corresponding to the time of handling
|
|
|
|
let deletionDate = $(data).find("span[title='" + time + "']");
|
|
|
|
if (deletionDate.length == 0)
|
|
|
|
return;
|
|
|
|
|
|
|
|
// Find last cell in the row, it contains the feedback (if any)
|
|
|
|
let cells = deletionDate[0].parentElement.parentElement.children;
|
|
|
|
let lastCell = cells[cells.length - 1];
|
|
|
|
let feedback = lastCell.getAttribute("title");
|
|
|
|
if (feedback == null || feedback.length == 0)
|
|
|
|
return;
|
2019-01-06 19:41:54 +00:00
|
|
|
let decodedFeedback = new DOMParser().parseFromString(feedback, "text/html").documentElement.textContent;
|
2019-01-06 18:59:07 +00:00
|
|
|
|
|
|
|
// Add feedback to each "Flag processed" entry
|
|
|
|
post.find("li").each(function() {
|
|
|
|
if (!this.innerText.startsWith("Flag processed"))
|
|
|
|
return;
|
|
|
|
let index = this.innerText.indexOf(") -");
|
2019-01-06 19:41:54 +00:00
|
|
|
this.innerText = this.innerText.substring(0, index) + ", " + decodedFeedback + this.innerText.substring(index);
|
2019-01-06 18:59:07 +00:00
|
|
|
})
|
|
|
|
});
|
|
|
|
});
|
|
|
|
})();
|