diff --git a/packages/app/src/Const.ts b/packages/app/src/Const.ts index af41055d..4778b455 100644 --- a/packages/app/src/Const.ts +++ b/packages/app/src/Const.ts @@ -131,7 +131,7 @@ export const TweetUrlRegex = /https?:\/\/twitter\.com\/(?:#!\/)?(\w+)\/status(?: * Hashtag regex */ // eslint-disable-next-line no-useless-escape -export const HashtagRegex = /(#[^\s!@#$%^&*()=+.\/,\[{\]};:'"?><]+)/; +export const HashtagRegex = /(#[^\s!@#$%^&*()=+.\/,\[{\]};:'"?><]+)/g; /** * Tidal share link regex diff --git a/packages/app/src/System/EventBuilder.ts b/packages/app/src/System/EventBuilder.ts index 1efd4b5f..b2168432 100644 --- a/packages/app/src/System/EventBuilder.ts +++ b/packages/app/src/System/EventBuilder.ts @@ -42,9 +42,14 @@ export class EventBuilder { */ processContent() { if (this.#content) { - this.#content = this.#content - .replace(/@n(pub|profile|event|ote|addr|)1[acdefghjklmnpqrstuvwxyz023456789]+/g, m => this.#replaceMention(m)) - .replace(HashtagRegex, m => this.#replaceHashtag(m)); + this.#content = this.#content.replace(/@n(pub|profile|event|ote|addr|)1[acdefghjklmnpqrstuvwxyz023456789]+/g, m => + this.#replaceMention(m) + ); + + const hashTags = [...this.#content.matchAll(HashtagRegex)]; + hashTags.map(hashTag => { + this.#addHashtag(hashTag[0]); + }); } return this; } @@ -95,9 +100,8 @@ export class EventBuilder { } } - #replaceHashtag(match: string) { + #addHashtag(match: string) { const tag = match.slice(1); this.tag(["t", tag.toLowerCase()]); - return match; } }