태그에서 '첫 게시물 보기'가 기존 주제에 적용되지 않나요?

초기 테스트에서는 이 기능이 작동했던 것 같은데, 내 워크플로우에서 핵심적인 부분이라 확신할 수 있을 정도입니다. 기존 게시물에 태그를 붙이면, 해당 태그의 ‘첫 게시물 관찰(watching_first_post)’ 설정이 있는 사용자에게 알림이 전송되던 방식이었거든요.

하지만 지금은 그렇게 작동하지 않는 것을 확인했습니다(…더 이상?…)

아니면, 해당 주제 아래 이미 답글이 있는 경우 무시되는 건가요?

모두가 ‘첫 게시물 관찰’ 상태인 카테고리로 주제를 이동하면 해결될 것 같은데…

  1. 알림은 주제 생성 시에만 트리거되나요?
  2. 답글의 존재가 ‘첫 게시물’ 트리거를 무시하게 만드는지 확실하지 않습니다.
  3. 관련 주제를 하나의 카테고리에 유지하면서, 일부는 태그를 통해 "확장(escalate)"하고 싶었습니다.

매번 알림을 시작하기 위해 스크립트를 실행하는 것도 괜찮지만, Askbot :robot: 이 제대로 작동하는 스크립트를 만들어 주지 못했습니다.

어떤 의견이나 우회 방법이든 환영합니다..!

image

하지만 이것이 어떻게 작동할까요? 해당 태그가 있는 오래된 게시글이 10,000개나 있다면, 즉시 알림을 받게 되나요?

첫 게시물만 알림은 해당 주제의 가장 첫 번째 게시물에만 알림을 보내는 기능입니다.

이 설명이 꽤 명확하네요. 제가 잘못 기억하고 있었던 것 같습니다. 해당 태그가 있는 테스트 주제들을 만들어 놓았었거든요.

아니요 – 태그를 통해 사용자에게 '첫 번째 게시물만 보기’를 설정했을 때 과거의 게시물까지 영향을 주어야 한다고 제안하는 것이 아닙니다.

하지만 게시된 주제에 나중에 스태프가 태그를 붙이는 경우는 흔합니다. 기존 주제에 ‘첫 번째 게시물만 보기’ 태그가 적용될 때, 이미 해당 태그를 '첫 번째 게시물만 보기’로 설정해 둔 사용자에게 그 주제에 대한 알림이 생성되기를 어렴풋이 상상하고 있었습니다.

이러한 상황을 위해 Askbot과 함께 임시 스크립트를 작성하는 것을 계속 진행 중입니다…

약 60번의 반복 작업을 거친 끝에, Askbot과 함께 Rails 스크립트를 거의 작동하는 상태로 만들었습니다.

아래 스크립트는 – 주제 239와 태그 'tagtest’에 대해 – 올바른 주제 제목을 가진 예상되는 “새 주제” 알림을 생성하고, 관련 이메일을 생성합니다.

일부 요소는 비활성인 것 같습니다(message:와 display_username:이 어떤 출력에도 나타나지 않음) 하지만 거의 작동합니다.

가장 큰 문제는 이메일 헤더에 실제 주제 제목이 표시되지 않는다는 것입니다. " %{topic_title} "로 전송됩니다. topic_title은 Notification 메서드에 대해 유효한 필드가 아닌 것 같아, 이메일에 이를 포함시키는 데 필요한 최소 코드가 무엇인지 확실하지 않습니다. (Askbot은 점점 더 복잡한 이메일 메서드를 추가해 보았지만, 오류는 점점 더 많아졌습니다.)

누군가 그 세부 사항에 대해 도움을 주신다면, 제가 이것을 제대로 정리하는 법을 배울 때까지 버틸 수 있을 것입니다…!


topic_id = 239

Tag.where(name: 'tagtest').each do |tag|
  TagUser.where(tag_id: tag.id, notification_level: TagUser.notification_levels[:watching_first_post]).each do |tag_user|
    user = User.find(tag_user.user_id)
    puts "Username: #{user.username}, ID: #{user.id}"

    # Fetch the topic title
    topic = Topic.find(topic_id)
    topic_title = topic.title

    # Create a notification for the topic
    Notification.create!(
      user_id: user.id,
      notification_type: Notification.types[:watching_first_post],
      topic_id: topic_id,
      post_number: 1, # Assuming you want to notify about the first post of the topic
      data: {
        message: 'You have a new notification for a topic you are watching.',
        display_username: 'system'
      }.to_json
    )

  end
end

태깅 시점에도 위험이 따릅니다. 예를 들어 500개의 주제를 일괄 태그하면 500개의 알림이 생성되어, 알림 기능이 사실상 무용지물이 됩니다.

아니면, 관리자 한 명이 10초 간격으로 100개의 태그를 붙이는 경우도 있을 수 있습니다.

이것은 까다로운 문제입니다. 이러한 방식으로 기능을 수정하려면 알림을 매우 신중하게 통합(롤업)해야 합니다.

주제를 다른 카테고리로 일괄 이동하는 경우와 동일한 것 아닌가요? 주제를 다른 카테고리로 이동하면 첫 번째 게시물에 대한 알림이 트리거됩니다.

네, 일반적으로 재분류는 재태깅보다 훨씬 드물기 때문에 문제의 규모가 어느 정도 완화되었다고 생각합니다. 3개 주제를 우선 시청 대상으로 일괄 재분류했을 때 어떤 일이 일어나는지 빠른 스크린샷을 찍어주실 수 있을까요?

500개 주제를 일괄 태그하는 일은 꿈에도 생각하지 않지만, 호기심에 물어보는데, 모든 사용자가 구독 중인 공지(Announcements) 카테고리에 게시하는 것보다 더 큰 부하를 일으킬까요?
(수정: 아, 작성 중이던 사이에 Moin이 게시물을 올렸네요.)

제 사용 사례는 아마도 매주 한 번 정도 알림 이메일을 통해 "상향 처리(escalate)"하는 정도일 겁니다.

이것은 이전에 재분류된 주제에 대한 논의와 비슷해 보입니다:
(수정: 이미 아시는 내용인데 죄송합니다.)

…이는 FIX: 주제가 재분류될 때 첫 번째 게시물에 대한 구독 알림 누락 · discourse/discourse@147ea37 · GitHub로 해결되었습니다.

저는 비슷한 주제에 대해 두 개의 카테고리를 만드는 대신 태그를 사용하려는 것입니다. (이들은 함께 묶여야 하지만, 게시 후 일부는 조용하고 때로는 이메일만 사용하는 사용자에게 발송할 가치가 있다고 판단됩니다.)

참고/비교를 위해 ‘카테고리에서 첫 게시물 보기’ 동작을 테스트해 보고 있는데, 재분류 시 알림이 되지 않습니다.

제 이메일 시간 창(분)은 10분이며, 단계 사이에 15분을 두고 있습니다.
이미 여러 번 반복해 보았는데요…

  • 감시하지 않는 샌드박스 카테고리에 새 주제를 생성합니다. 15분 대기.
  • 해당 주제를 사용자가 ‘감시(Watching)’ 중인 카테고리로 이동: 즉시 알림이 트리거되고, 10분 후 이메일이 전송됩니다.

  • 감시하지 않는 샌드박스 카테고리에 또 다른 새 주제를 생성합니다. 15분 대기.
  • 해당 주제를 사용자가 ‘첫 게시물 보기(Watching First Post)’ 중인 카테고리로 이동: 아무 일도 일어나지 않습니다. 항상.

(자체 호스팅 표준 설치, 3.4.0.beta2-dev (0c019b2e45), 테스트 통과.)

아마 제 프로세스에 문제가 있는 것일 수 있지만, 어떤 부분인지 상상조차 되지 않습니다. 2018년에 정리가 되었다고 알려진 기능이 다시 어지러워진 것일 수 있을까요?

가능성이 매우 높습니다. 이 앱의 해당 영역은 특히 복잡한 부분이거든요.

재태깅/재분류 시 알림 기능에는 많은 가드레일(안전장치)이 필요합니다.

  • 8년 전 게시글에 대해 알림을 보내야 할까요?
  • 1시간 동안 50개의 알림을 한꺼번에 보내야 할까요?

원하는 동작 방식이 무엇인지, 그리고 가드레일을 어떻게 설정해야 하는지부터 파악해야 합니다.

참고로, 기존 주제에 태그를 추가하면 해당 태그의 첫 번째 게시글을 보고 있는 모든 사용자에게 알림이 전송되어야 합니다.

저는 테스트 사이트(3108e3a6b6)에서 방금 테스트해 보았는데, 여전히 올바르게 작동하는 것으로 보입니다.

확인차 물어보는데, 관리자 설정에서 disable tags edit notifications(태그 편집 알림 비활성화) 설정을 변경해 본 적이 있나요? (카테고리 버전의 경우 disable category edit notifications(카테고리 편집 알림 비활성화) 설정을 확인해 주세요).

O.

M.

G.

이제 바위 밑으로 기어 들어가 숨어버리겠습니다.

그 설정들이 존재했다는 걸 잊고 있었습니다. 제가 그것들을 비활성화했을 때, "관리자가 태그를 추가했거나 토픽의 카테고리를 변경했습니다"와 같은 알림만 생각하고 있었을 것 같아요 — Watching이나 WFP 알림 같은 동작은 고려하지 않았죠.

아직도 일관성 없는 부분이 있는 것 같습니다. 카테고리를 Watching하면 disable category edit modifications 설정이 무시되는 반면, WFP는 그렇지 않았거든요. 속죄로 더 철저하게 테스트해보고, 이 주제에 대해 언급했던 다른 몇 명에게 후속 조치를 하겠습니다.

(또한, @sam이 제 결론을 어느 정도 뒷받침해주었습니다 :sweat_smile:)

하지만 rails 스크립트와 씨름하며 더 많은 시간을 낭비하게 될 뻔한 저를 구해준 @JammyDodger에게 감사드립니다. 다음 단계는 소파를 팔아서 @pfaffman에게 도움을 청할 예정이었거든요.