Bilibili-Evolved/registry/lib/components/utils/comments/content-replace/handlers/emoticon-to-text.ts
2024-10-20 11:15:14 +08:00

22 lines
548 B
TypeScript

import { NodeContentReplacer } from './node-content-replacer'
export class EmoticonToTextReplacer extends NodeContentReplacer {
isKeywordMatch(node: Node, keyword: string) {
if (node instanceof HTMLImageElement) {
return node.alt === keyword
}
return false
}
replaceContent(node: Node, keyword: string, target: string): Node[] {
if (!(node instanceof HTMLImageElement)) {
return []
}
if (target === '') {
node.remove()
} else {
node.replaceWith(new Text(target))
}
return []
}
}