added raid message support
This commit is contained in:
Vendored
+18
-4
@@ -224,10 +224,7 @@ function loadChatMessage(chatboxMessage) {
|
|||||||
function loadReplyLine(chatboxMessage) {
|
function loadReplyLine(chatboxMessage) {
|
||||||
const replyline = chatboxMessage.querySelector('.ffz--fix-reply-line')
|
const replyline = chatboxMessage.querySelector('.ffz--fix-reply-line')
|
||||||
const replyUsername = replyline?.querySelector('p > span:nth-child(1)')
|
const replyUsername = replyline?.querySelector('p > span:nth-child(1)')
|
||||||
if (!replyUsername) {
|
if (!replyUsername || replyUsername.querySelector('.obf-name')) {
|
||||||
return
|
|
||||||
}
|
|
||||||
if (replyUsername.querySelector('.obf-name')) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const chatMessage = {
|
const chatMessage = {
|
||||||
@@ -260,6 +257,22 @@ function loadMessageMentions(chatboxMessage) {
|
|||||||
eachMention(messageMention)
|
eachMention(messageMention)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
function loadRaidMessage(chatboxMessage) {
|
||||||
|
const usernamebox = chatboxMessage.querySelector(
|
||||||
|
'[data-test-selector="user-notice-line"] div > strong:nth-child(1)'
|
||||||
|
)
|
||||||
|
if (!usernamebox || usernamebox.querySelector('.obf-name')) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const chatMessage = {
|
||||||
|
username: usernamebox.textContent,
|
||||||
|
isMod: false,
|
||||||
|
}
|
||||||
|
const newChatMessage = obfuscator(chatMessage)
|
||||||
|
if (newChatMessage !== null) {
|
||||||
|
setUsernameDetails(newChatMessage, usernamebox)
|
||||||
|
}
|
||||||
|
}
|
||||||
function loadAdditionalUserNames(chatboxMessage) {
|
function loadAdditionalUserNames(chatboxMessage) {
|
||||||
const chatterNames = chatboxMessage.querySelectorAll('.chatter-name')
|
const chatterNames = chatboxMessage.querySelectorAll('.chatter-name')
|
||||||
for (const chatterName of chatterNames) {
|
for (const chatterName of chatterNames) {
|
||||||
@@ -337,6 +350,7 @@ function eachMutationTarget(record, target) {
|
|||||||
}
|
}
|
||||||
loadChatMessage(chatboxMessage)
|
loadChatMessage(chatboxMessage)
|
||||||
loadAdditionalUserNames(chatboxMessage)
|
loadAdditionalUserNames(chatboxMessage)
|
||||||
|
loadRaidMessage(chatboxMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
nameImages,
|
nameImages,
|
||||||
usernameExtraSuffix,
|
usernameExtraSuffix,
|
||||||
} from './options'
|
} from './options'
|
||||||
import { ChatMessage, elementTreeFind, innermostElement } from './util'
|
import { NameDetails, elementTreeFind, innermostElement } from './util'
|
||||||
|
|
||||||
function loadChatMessage(chatboxMessage: Element) {
|
function loadChatMessage(chatboxMessage: Element) {
|
||||||
// only chat messages
|
// only chat messages
|
||||||
@@ -58,7 +58,7 @@ function loadChatMessage(chatboxMessage: Element) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// combine details into object
|
// combine details into object
|
||||||
const chatMessage: ChatMessage = {
|
const chatMessage: NameDetails = {
|
||||||
username: chatboxUserInner.textContent,
|
username: chatboxUserInner.textContent,
|
||||||
isMod,
|
isMod,
|
||||||
}
|
}
|
||||||
@@ -80,16 +80,12 @@ function loadReplyLine(chatboxMessage: Element) {
|
|||||||
'p > span:nth-child(1)'
|
'p > span:nth-child(1)'
|
||||||
)
|
)
|
||||||
|
|
||||||
if (!replyUsername) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// already applied username
|
// already applied username
|
||||||
if (replyUsername.querySelector('.obf-name')) {
|
if (!replyUsername || replyUsername.querySelector('.obf-name')) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const chatMessage: ChatMessage = {
|
const chatMessage: NameDetails = {
|
||||||
username: replyUsername.textContent.replace(/^@/, ''),
|
username: replyUsername.textContent.replace(/^@/, ''),
|
||||||
isMod: false,
|
isMod: false,
|
||||||
}
|
}
|
||||||
@@ -109,7 +105,7 @@ function loadMessageMentions(chatboxMessage: Element) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const chatMessage: ChatMessage = {
|
const chatMessage: NameDetails = {
|
||||||
username: messageMention.textContent.replace(/^@/, ''),
|
username: messageMention.textContent.replace(/^@/, ''),
|
||||||
isMod: false,
|
isMod: false,
|
||||||
}
|
}
|
||||||
@@ -131,6 +127,29 @@ function loadMessageMentions(chatboxMessage: Element) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadRaidMessage(chatboxMessage: Element) {
|
||||||
|
const usernamebox = chatboxMessage.querySelector<HTMLElement>(
|
||||||
|
'[data-test-selector="user-notice-line"] div > strong:nth-child(1)'
|
||||||
|
)
|
||||||
|
|
||||||
|
// already applied username
|
||||||
|
if (!usernamebox || usernamebox.querySelector('.obf-name')) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const chatMessage: NameDetails = {
|
||||||
|
username: usernamebox.textContent,
|
||||||
|
isMod: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
// run main script (process chatMessage), return new ChatMessage
|
||||||
|
const newChatMessage = obfuscator(chatMessage)
|
||||||
|
|
||||||
|
if (newChatMessage !== null) {
|
||||||
|
setUsernameDetails(newChatMessage, usernamebox)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function loadAdditionalUserNames(chatboxMessage: Element) {
|
function loadAdditionalUserNames(chatboxMessage: Element) {
|
||||||
// look for additional chat member names
|
// look for additional chat member names
|
||||||
const chatterNames =
|
const chatterNames =
|
||||||
@@ -152,7 +171,7 @@ function loadAdditionalUserNames(chatboxMessage: Element) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// combine details into object
|
// combine details into object
|
||||||
const chatMessage: ChatMessage = {
|
const chatMessage: NameDetails = {
|
||||||
username,
|
username,
|
||||||
isMod: false,
|
isMod: false,
|
||||||
}
|
}
|
||||||
@@ -234,5 +253,6 @@ function eachMutationTarget(record: MutationRecord, target: HTMLElement) {
|
|||||||
}
|
}
|
||||||
loadChatMessage(chatboxMessage)
|
loadChatMessage(chatboxMessage)
|
||||||
loadAdditionalUserNames(chatboxMessage)
|
loadAdditionalUserNames(chatboxMessage)
|
||||||
|
loadRaidMessage(chatboxMessage)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { DEBUG, NameConfigInstance, ignoreMod } from './options'
|
import { DEBUG, NameConfigInstance, ignoreMod } from './options'
|
||||||
import { getRandomName, getStoredUser, setStoredUser } from './storage'
|
import { getRandomName, getStoredUser, setStoredUser } from './storage'
|
||||||
import { ChatMessage } from './util'
|
import { NameDetails } from './util'
|
||||||
|
|
||||||
export function obfuscator(
|
export function obfuscator(
|
||||||
chatMessage: ChatMessage
|
chatMessage: NameDetails
|
||||||
): NameConfigInstance | null {
|
): NameConfigInstance | null {
|
||||||
if (ignoreMod && chatMessage.isMod) {
|
if (ignoreMod && chatMessage.isMod) {
|
||||||
return null
|
return null
|
||||||
|
|||||||
@@ -44,24 +44,3 @@ watch streaks
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
```
|
```
|
||||||
|
|
||||||
raid message
|
|
||||||
|
|
||||||
```html
|
|
||||||
<div class="Layout-sc-1xcs6mc-0">
|
|
||||||
<div class="Layout-sc-1xcs6mc-0">
|
|
||||||
<div class="Layout-sc-1xcs6mc-0 ikqKEy">
|
|
||||||
<div style="background: rgb(100, 65, 165);" class="Layout-sc-1xcs6mc-0 ijxYla"></div>
|
|
||||||
<div style="overflow-wrap: break-word;" data-test-selector="user-notice-line"
|
|
||||||
class="Layout-sc-1xcs6mc-0 cglxbn">
|
|
||||||
<div class="Layout-sc-1xcs6mc-0 fHdBNk">
|
|
||||||
<div class="Layout-sc-1xcs6mc-0 hgZmyJ">
|
|
||||||
<div class="Layout-sc-1xcs6mc-0 jfyitl"><strong>thezomo</strong> is raiding with a party of
|
|
||||||
<strong>12</strong>.</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
export interface ChatMessage {
|
export interface NameDetails {
|
||||||
username: string
|
username: string
|
||||||
isMod: boolean
|
isMod: boolean
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user