Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F34259389
smaller_gerritbot_comments.js
No One
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Authored By
JMeybohm
Apr 6 2021, 12:23 PM
2021-04-06 12:23:09 (UTC+0)
Size
2 KB
Referenced Files
None
Subscribers
None
smaller_gerritbot_comments.js
View Options
// ==UserScript==
// @name Smaller gerritbot comments
// @version 2
// @description Changes gerritbot comments into one-liners.
// @match https://phabricator.wikimedia.org/*
// @grant none
// ==/UserScript==
const
majorEvents
=
document
.
querySelectorAll
(
".phui-timeline-major-event"
);
const
uselessMessage
=
"Your browser timezone setting differs from the timezone setting in your profile, click to reconcile."
;
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]
lastIDX
=
content
.
length
-
1
link
=
content
[
lastIDX
].
children
[
0
]
text
=
[]
content
.
forEach
(
function
(
e
,
i
){
if
(
i
<
lastIDX
)
{
text
=
text
.
concat
(
e
.
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"
)
}
});
File Metadata
Details
Attached
Mime Type
text/plain; charset=utf-8
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
8969024
Default Alt Text
smaller_gerritbot_comments.js (2 KB)
Attached To
Mode
P11638 smaller_gerritbot_comments.js
Attached
Detach File
Event Timeline
Log In to Comment