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() {
|
||||
return new EventRefs(this.eventTags())
|
||||
}
|
||||
|
||||
hasAncestor() {
|
||||
return this.eventTags().some(tag => tag.marker !== 'mention')
|
||||
}
|
||||
}
|
||||
|
@ -62,21 +62,45 @@ export default class Note {
|
||||
}
|
||||
|
||||
contentTagRefs() {
|
||||
return Note.contentTagRefs(this)
|
||||
}
|
||||
|
||||
static contentTagRefs(event) {
|
||||
const regex = /#\[([0-9]+)]/g
|
||||
let refs = []
|
||||
let match
|
||||
while ((match = regex.exec(this.content))) {
|
||||
while ((match = regex.exec(event.content))) {
|
||||
refs.push(match[1])
|
||||
}
|
||||
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() {
|
||||
return Note.isRepostOrTag(this)
|
||||
}
|
||||
|
||||
static isRepostOrTag(event) {
|
||||
return /#\[([0-9]+)]/.test(event.content)
|
||||
return /^#\[([0-9]+)]$/.test(event.content)
|
||||
}
|
||||
|
||||
isReaction() {
|
||||
@ -85,7 +109,7 @@ export default class Note {
|
||||
|
||||
static isReaction(event) {
|
||||
return event.kind === EventKind.REACTION
|
||||
|| (!event.eventRefs().isEmpty() && Note.isReactionContent(event.content))
|
||||
|| (event.hasAncestor() && Note.isReactionContent(event.content))
|
||||
}
|
||||
|
||||
static isReactionContent(content) {
|
||||
|
Loading…
Reference in New Issue
Block a user