안녕하세요, 제가 잘못하고 있거나 카테고리를 잘못 선택했다면 죄송합니다. 첫 게시글입니다. 저는 이 소프트웨어를 사용하는 사이트의 관리자로, 특정 사용자를 '무시’로 설정해도 해당 사용자의 게시글이 여전히 제 피드(즉, 홈페이지)에 표시되는 것을 발견했습니다. 게시글을 클릭하면 실제 내용이 '무시된 내용’으로 표시됩니다. 무시된 사용자의 게시글이 사람들의 피드에서 완전히 필터링되도록 수정될 수 있을까요?
현재 이것은 의도된 동작인 것 같습니다. @david 님이 확인해 주실 수 있습니다.
추측컨대, 무시한 사용자의 토픽이 최신 목록에서 제외되도록 변경해야 할 것 같습니다.
네, 맞아요. 현재 사용자 음소거는 게시글 내용만 숨길 뿐, 전체 주제를 숨기지는 않습니다.
음소거된 사용자가 생성한 주제에도 적용할 수는 있겠지만, 그러면 그 과정에서 음소거되지 않은 사용자들의 모든 답변도 놓치게 되겠죠…
@sam @david 이 글을 읽다가 문득 이런 생각이 들었습니다.
음소거/무시된 사용자의 게시물을 스레드에서 추출해서, 차단/무시된 사용자만 볼 수 있는 특정 TLX 플래그 아래 TL3 스타일의 카테고리에 배치할 수 있을까요?
최근에 사용자로 TL3까지 올랐는데, 거의 사용하지 않는 이 보이지 않는 카테고리가 꽤 독특해서, 이를 일종의 타임아웃/방 쿨다운 기능으로 repurposing하는 것이 효과적일 수 있을 것 같습니다.
단순한 아이디어일 뿐입니다.
안녕하세요, 이 문제에 대해 더 생각해 보셨나요? 저희 사이트에서는 아직 문제가 지속되고 있습니다.
현재로써는 계획에 없습니다.
좋아요! 결국 우회 방법을 찾아냈어요 (:
Hi @BeBe, 어떤 우회 방법을 찾으셨나요?
다른 사용자의 토픽에서 내 게시물을 보는 것은 괜찮은 사용자가 있는데, 그 사용자가 만든 토픽은 숨기고 싶습니다.
그 사용자의 토픽은 항상 같은 (지루한) 주제에 대해 다루고 있습니다. ![]()
토픽 안의 사용자 게시물을 숨기는 CSS 방법이 있습니다:
하지만 불행히도 토픽 목록에는 생성자의 사용자 ID가 포함되어 있지 않아, 특정 사용자가 만든 토픽을 숨기는 방법이 없습니다.
사용자 이름이 abc이고 ID가 123이라고 가정해 보겠습니다.
사용자 CSS로 이를 수행할 수 있는지 확인하기 위해 소스 코드를 살펴봤습니다.
현재 토픽 태그는 다음과 같습니다:
<tr data-topic-id="123" id="ember123" class="topic-list-item … ember-view">
그 안에서는 게시자 셀을 쿼리할 수 있지만, 부모 요소를 숨기고 싶으므로 JavaScript가 필요합니다:
tr > td.posters > a:first-child[data-user-card='abc']
이제, 토픽 tr 태그에 추가 속성인 data-op-user-id="123"가 직접 붙어 있다면:
<tr data-topic-id="123" id="ember123" data-op-user-id="123" class="topic-list-item … ember-view">
단순한 사용자 CSS를 사용하여 토픽을 보고 싶지 않은 사용자 ID에 대해 훌륭한 필터링을 할 수 있습니다:
tr.topic-list-item[data-op-user-id='123']
토픽 항목인 tr.topic-list-item 태그에 이러한 새로운 data-op-user-id 속성을 추가하는 것이 가능할까요?
데스크톱 모드에서만 작동합니다. 하단을 참조하세요.
관심 있는 분들을 위해, 저는 community.metabainz.org를 위해 작은 userscript를 작성했습니다.
처음에는 조언대로 MutationObserver를 시도했지만 너무 복잡해져서, 결국 단순한 setInterval을 사용했습니다.
동적으로 작동하도록 하거나 사용자 설정 등을 포함하지 않았습니다.
각 업데이트 시 블랙리스트와 @include(나중에 설명)가 지워집니다.
정식 Discourse에서 토픽에 새로운 data-op-user-id 속성이 추가되기를 희망하므로, 더 이상 이 userscript가 필요하지 않을 것입니다.
@include를 본인의 URL로 변경하여(유일한 특정 라인) 다른 Discourse 포럼에도 적용할 수 있습니다.
모바일 뷰에서는 작동하지 않습니다. (불행히도) 디자인상, Discourse는 모바일 뷰에서 OP의 아바타를 표시하지 않기 때문입니다.
따라서 제안된 tr.topic-list-item[data-op-user-id='123'] 속성을 가지는 것이 여전히 스팸 방지 측면에서 매우 편리할 것입니다.
이제 업데이트 시 블랙리스트가 초기화되지 않습니다. 기본 블랙리스트 편집기를 추가했고, 목록은 로컬에 저장됩니다.
하지만 Discourse가 모든 토픽 <TR data-op-user-id="123"> 행에 OP 사용자 ID를 포함해 주었으면 정말로, 정말로, 정말로 좋겠습니다. 그러면 무시된 사용자의 토픽을 숨기기에 매우 간단한 사용자 스타일시트가 충분할 테니까요:
tr.topic-list-item[data-op-user-id='123'] { display: none; }
아니면, Discourse가 무시된 사용자의 토픽을 스스로 숨겨 주었으면 더더욱, 정말로, 정말로, 정말로, 정말로 좋겠습니다.
그들의 토픽이 제 브라우징을 오염시키는데, 무시된 사용자의 목적을 이해할 수 없습니다.
<script type="text/x-handlebars" data-template-name="components/latest-topic-list-item">
<div class="topic-poster" data-user-card="{{topic.creator.username}}">
latest-topic-list-item 템플릿을 오버라이드하여 토픽 작성자 div에 username/userid 속성을 추가해 보세요. 그러면 사용자 스타일시트를 통해 이를 숨길 수 있습니다.
또한, 무시한 사용자를 자동으로 숨기는 컴포넌트가 있으니 관심 있으시면 참고해 주세요.
저는 관리자而不是 일반 Discourse 사용자입니다.
제가 사용하는 모든 Discourse 사이트에서 플러그인을 설치할 수 없습니다.
다른 웹사이트와 마찬가지로 사용자 스크립트와 스타일시트를 실행할 수는 있지만, 토픽 태그에 운영자 정보(op-user info)가 없어서 기능이 제한됩니다.
그래서 이 기능을 소프트웨어 자체에 반영해 주셨으면 합니다. ![]()
구현하기 비교적 쉬운 우회 방법을 제안합니다: 무시된 사용자의 게시글은 "숨겨진 게시글 보기"를 클릭하면 표시되는데, 첫 번째 게시글(즉, 무시된 사용자가 생성한 스레드)에도 이 기능이 적용될 수 없나요?
그걸 구현할 수 있는 방법이 있을까요? 이건 버그로 간주되어야 한다고 생각합니다. 특정 사용자의 메시지/채팅을 차단하고 싶다면, 그 사용자의 주제도 보고 싶지 않을 텐데… 그렇지 않나요?
마지막 게시글이 무시된 사용자가 작성한 경우에만 최신 목록에서 해당 주제를 숨기도록 할 수는 없을까요? 이렇게 하면 무시된 사용자의 모든 새 주제는 숨겨지지만, 다른 사용자들의 답변은 여전히 최신 목록에 표시될 것입니다.
최근 메타에서 이것이 실제로 큰 문제가 되고 있습니다.
호기심에 묻는데, 왜 다른 사람들의 답변을 보고 싶은가요? 주제를 완전히 음소거하는 것보다는? 일부 대화만 보는 것은 따라가기 어렵지 않을까요?
저한테 물어보시는 건지 데이비드한테 물어보시는 건지 모르겠는데, 이건 데이비드의 주장이었거든요? 어느 쪽이든 상관없지만, 각 사용자가 설정할 수 있도록 하는 게 가장 좋겠습니다.
제 생각엔 다른 사용자들은 주로 해당 사용자의 전반적인 “태도” 때문에 무시하는 것 같아요. 이걸 정확히 정량화하기는 어렵지만, 게시글의 내용에만 부분적으로 기반을 두고 있는 거죠.
즉, 그들의 '기여’를 기반으로 한 추가적인 토론은 때로는 꽤 유용할 수 있습니다.
제가 정말 문제가 있다고 생각하는 부분은, 일부 사용자가 먼저 시간을 들여 배우려는 노력 없이 오점만 찾으며 그것도 목소리 높여서 주장하고, 게다가 여러 주제를 동시에 스팸으로 범벅을 만들어 ‘최근 활동’ 탭을 완전히 압도한다는 점입니다.
그들의 마지막 게시글을 무시하는 것(즉, 그들이 게시글을 쓸 때 해당 주제가 '최근 활동’에 올라오지 않도록 하는 것)만으로도 해결될 수 있습니다. 현재 구현 방식은 깨져 있는 것처럼 느껴집니다.
제 생각에는 음소거된 사용자가 만든 주제는 항상 숨겨져야 합니다.
다른 음소거되지 않은 사람들이 참여하더라도 그들의 주제에는 관심이 없습니다.
추가 블록 설정이 있으면 좋겠습니다. 주요 소셜 미디어 플랫폼들은 모두 이 기능을 제공하고 있습니다.
여기서 누군가가 '사용자 블록’은 포럼에 문제가 있다는 뜻이라서 쓸모없고 문제를 실제로 해결하지 못한다고 말한 적이 기억납니다. 하지만 저는 누군가를 숨기는 것이 단순히 개인의 선택이라고 생각합니다. 그 사용자를 싫어하는 사람은 저 말고 다른 사람일 수도 있겠죠.
그리고 만약 그 사용자가 많은 사람들을 모욕했다면, 이미 신고가 들어갔을 가능성이 높습니다.
사실, 누군가를 무시하는 이유는 대개 그 사람이 귀찮거나 논쟁으로 끌어들이기 때문이죠. 그래서 그런 사람이 /latest 등에 표시되면 무시하는 목적 자체가 무색해집니다.
다행히도 아래 플러그인은 사용 가능하며 잘 작동하는 것 같습니다:
하지만 이는 적어도 옵션으로, 이상적으로는 기본적으로 Discourse의 핵심 기능이 되어야 한다고 생각합니다.
정말 멋져 보이는데, 외부에서 사용해야 하고 관리자 권한이 필요하긴 하죠.
스마트폰으로 접속했을 때도 잘 동작하는지 아세요?
네, 맞습니다