Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F31941974
raw.txt
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
JMeybohm
Jul 20 2020, 1:23 PM
2020-07-20 13:23:16 (UTC+0)
Size
2 KB
Referenced Files
None
Subscribers
None
raw.txt
View Options
// ==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)
}
// Remove the "Your browser timezone" alert
const uselessMessage = "Your browser timezone setting differs from the timezone setting in your profile, click to reconcile."
document.querySelectorAll(".jx-notification-alert").forEach(alert => {
if (alert.textContent == uselessMessage) {
alert.remove()
}
});
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")
}
});
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
8478783
Default Alt Text
raw.txt (2 KB)
Attached To
Mode
P11638 smaller_gerritbot_comments.js
Attached
Detach File
Event Timeline
Log In to Comment