mirror of
https://github.com/styppo/hamstr.git
synced 2024-10-18 05:23:28 +00:00
Fix repost detection
This commit is contained in:
parent
28ea16298d
commit
289c37f91e
@ -114,4 +114,8 @@ export default class Event {
|
|||||||
eventRefs() {
|
eventRefs() {
|
||||||
return new EventRefs(this.eventTags())
|
return new EventRefs(this.eventTags())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hasAncestor() {
|
||||||
|
return this.eventTags().some(tag => tag.marker !== 'mention')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,21 +62,45 @@ export default class Note {
|
|||||||
}
|
}
|
||||||
|
|
||||||
contentTagRefs() {
|
contentTagRefs() {
|
||||||
|
return Note.contentTagRefs(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
static contentTagRefs(event) {
|
||||||
const regex = /#\[([0-9]+)]/g
|
const regex = /#\[([0-9]+)]/g
|
||||||
let refs = []
|
let refs = []
|
||||||
let match
|
let match
|
||||||
while ((match = regex.exec(this.content))) {
|
while ((match = regex.exec(event.content))) {
|
||||||
refs.push(match[1])
|
refs.push(match[1])
|
||||||
}
|
}
|
||||||
return refs
|
return refs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isRepost() {
|
||||||
|
return Note.isRepost(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
static isRepost(event) {
|
||||||
|
if (!/^#\[([0-9]+)]$/.test(event.content)) return false
|
||||||
|
return event.tags[Note.contentTagRefs(event)[0]]?.type === TagType.EVENT
|
||||||
|
}
|
||||||
|
|
||||||
|
static mentionsPubkey(event, pubkey) {
|
||||||
|
if (event.tags.some(tag => tag.type === TagType.PUBKEY
|
||||||
|
&& tag.ref === pubkey
|
||||||
|
&& tag.marker === 'mention'
|
||||||
|
)) return true
|
||||||
|
|
||||||
|
return Note.contentTagRefs(event)
|
||||||
|
.map(idx => event.tags[idx])
|
||||||
|
.some(tag => tag.type === TagType.PUBKEY && tag.ref === pubkey)
|
||||||
|
}
|
||||||
|
|
||||||
isRepostOrTag() {
|
isRepostOrTag() {
|
||||||
return Note.isRepostOrTag(this)
|
return Note.isRepostOrTag(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
static isRepostOrTag(event) {
|
static isRepostOrTag(event) {
|
||||||
return /#\[([0-9]+)]/.test(event.content)
|
return /^#\[([0-9]+)]$/.test(event.content)
|
||||||
}
|
}
|
||||||
|
|
||||||
isReaction() {
|
isReaction() {
|
||||||
@ -85,7 +109,7 @@ export default class Note {
|
|||||||
|
|
||||||
static isReaction(event) {
|
static isReaction(event) {
|
||||||
return event.kind === EventKind.REACTION
|
return event.kind === EventKind.REACTION
|
||||||
|| (!event.eventRefs().isEmpty() && Note.isReactionContent(event.content))
|
|| (event.hasAncestor() && Note.isReactionContent(event.content))
|
||||||
}
|
}
|
||||||
|
|
||||||
static isReactionContent(content) {
|
static isReactionContent(content) {
|
||||||
|
Loading…
Reference in New Issue
Block a user