Skip to content

Commit 4261c30

Browse files
committed
Specific replies
1 parent e167e9d commit 4261c30

4 files changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"repliedTo": "replied to a comment from ${commenter} on"
3+
}

features/features.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
[
2+
{
3+
"version": 2,
4+
"id": "specific-replies",
5+
"versionAdded": "v3.4.0"
6+
},
27
{
38
"version": 2,
49
"id": "anti-generic",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"title": "Specific Reply Messages",
3+
"description": "In messages related to comments, specifies who a comment was replying to.",
4+
"credits": [
5+
{
6+
"username": "MaterArc",
7+
"url": "https://scratch.mit.edu/users/MaterArc/"
8+
},
9+
{ "username": "rgantzos", "url": "https://scratch.mit.edu/users/rgantzos/" }
10+
],
11+
"type": ["Website"],
12+
"tags": ["New"],
13+
"scripts": [{ "file": "script.js", "runOn": "/messages*" }]
14+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
export default async function ({ feature, console }) {
2+
let updatedReplies = [];
3+
4+
ScratchTools.waitForElements(
5+
"ul.messages-social-list > li.social-message",
6+
updateReplies
7+
);
8+
9+
function updateReplies() {
10+
let messages = feature.redux.getState().messages.messages.social;
11+
document
12+
.querySelectorAll("ul.messages-social-list > li.social-message")
13+
.forEach(function (msg, i) {
14+
if (updatedReplies.includes(msg)) return;
15+
if (
16+
messages[i].commentee_username &&
17+
messages[i].commentee_username !==
18+
feature.redux.getState().session.session.user.username
19+
) {
20+
let info = msg.querySelector("p.comment-message-info > span");
21+
let span = document.createElement("span");
22+
let text = info.childNodes[1];
23+
info.insertBefore(span, text);
24+
text.remove();
25+
span.innerHTML =
26+
" " +
27+
feature.msg("repliedTo").replace("${commenter}", "<a></a>") +
28+
" ";
29+
span.querySelector("a").textContent = messages[i].commentee_username;
30+
span.querySelector(
31+
"a"
32+
).href = `/users/${messages[i].commentee_username}/`;
33+
updatedReplies.push(msg);
34+
}
35+
});
36+
}
37+
}

0 commit comments

Comments
 (0)