Page MenuHomePhabricator
Paste P11638

smaller_gerritbot_comments.js
ActivePublic

Authored by JMeybohm on Tue, Jun 23, 7:55 AM.
// ==UserScript==
// @name Smaller gerritbot comments
// @version 1
// @description Changes gerritbot comments into one-liners.
// @match https://phabricator.wikimedia.org/*
// @grant none
// ==/UserScript==
const majorEvents = document.querySelectorAll(".phui-timeline-major-event");
function getCleanTitle(me) {
// Remove the text node: "added a comment."
title = me.querySelector(".phui-timeline-title")
title.childNodes.forEach(n => {
if (n.nodeType == 3) {
n.remove()
}
});
return title
}
function handleGerritbot(me) {
content = me.querySelectorAll(".phabricator-remarkup p")
link = content[1].children[0]
text = content[0].textContent.split('\n')
textContent = text[0].trim()
textTooltip = text[1].trim()
changeId = textContent.match(/^Change (\d+)/)[1]
newText = textContent.replace(/^Change \d+ (.*):$/, '$1')
link.text = changeId
// Add repo name and commit message as title for the changeId link
link.setAttribute('title', textTooltip)
title = getCleanTitle(me)
title.append(": Change ", link, " ", newText)
}
function handleStashbot(me) {
content = me.querySelector(".phabricator-remarkup p")
salSpan = content.querySelector("span")
ircChannel = salSpan.textContent.match(/.*\((#\S+)\)/)[1]
salURL = salSpan.querySelector("a").href
salSpan.remove()
salLink = document.createElement("a")
salLink.setAttribute("href", salURL)
salLink.setAttribute("target", "_blank")
salLink.text = ircChannel
title = getCleanTitle(me)
title.append(" ", salLink, ": ")
// remove the timestamp from text node
content.childNodes.forEach(n => {
if (n.nodeType == 3) {
n.textContent = n.textContent.trimLeft().replace(/\[[\d-TZ:]+\] /, '')
}
})
title.append(...content.childNodes)
}
majorEvents.forEach(me => {
modified = false
if (me.querySelector(".phui-handle").text == 'gerritbot') {
handleGerritbot(me)
modified = true
}
if (me.querySelector(".phui-handle").text == 'Stashbot') {
handleStashbot(me)
modified = true
}
if (modified) {
// remove the "quote" menu on the right
me.querySelector(".phui-timeline-menu").remove()
// remove the original comment content
me.querySelector(".phui-timeline-core-content").remove()
// make this event minor (one-liner)
me.classList.replace("phui-timeline-major-event", "phui-timeline-minor-event")
}
});

Event Timeline

JMeybohm created this paste.Tue, Jun 23, 7:55 AM
JMeybohm edited the content of this paste. (Show Details)

I seem unable to screenshot the tooltip, but it contains the repo name and the commit message.

CDanis added a subscriber: CDanis.Wed, Jun 24, 11:32 AM
JMeybohm edited the content of this paste. (Show Details)Wed, Jun 24, 12:40 PM