Auto-Tagging-Funktion Plugin

Hallo zusammen! Ich erstelle ein System, bei dem Tags automatisch erstellt werden, sodass jede Person Tags erstellen kann!

Zu diesem Thema:

  • Tags werden in Form einer Themenerstellung erstellt
  • Wenn es kein Tag gibt, das die Person erwähnt hat, wird es standardmäßig im Beitrag ignoriert

Mein Ziel war es, eine Möglichkeit für das automatische Tagging zu schaffen. Wenn #test1 also nicht existiert, soll es automatisch erstellt werden, und der aufbereitete Inhalt des Beitrags muss aktualisiert werden, um den Link zu den Tags zu aktualisieren, und so weiter.

Ich habe also einige Wege ausprobiert, um diese Anforderung zu erfüllen, und möchte Ihnen diese zeigen und fragen, ob es einen besseren Weg gibt, mein Ziel zu erreichen.

after_initialize do
   DiscourseEvent.on(:post_created) do |post, _, user|
      # Überprüfen von Kategori-Tags (#test:item1)
      tags= post.raw.split(' ').select{|t| t =~ /#/ && !t.include?(':')}
      tags.each do |t|
        tName= t.gsub('#', '')
        Tag.create_or_find_by(name: tName);
      end

      postAnalyzer= PostAnalyzer.new(post.raw, post.topic_id)
      cookedRaw= postAnalyzer.cook(post.raw)

      post.cooked= cookedRaw
      post.save

      post.publish_change_to_clients!(:revised, reload_topic: true)
   end
end

Ich schätze Ihre Hilfe sehr!

1 „Gefällt mir“