# 投稿番号で囁かれた返信が漏れる

**URL:** https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160
**Category:** Support
**Tags:** whispers
**Created:** [2021 年 1 月 14 日午後 11:06 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160 "2021-01-14T23:06:02Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 14 日午後 11:06 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/1 "2021-01-14T23:06:02Z")

</div>

以前の一部のバグと同様に、投稿のリンクボックスに表示される投稿数を見ると、投稿番号が表示されます。しかし、これは右側のナビゲーションバーに表示される数字と一致しません。

このトピックが問題を明確に示しているかもしれません: [Migrate a phpBB3 forum to Discourse - #580 by gerhard](https://meta.discourse.org/t/importing-from-phpbb3/30810/580?u=talltrees)

 ![image](https://global.discourse-cdn.com/meta/original/3X/0/0/003aac14b71c97cf2cbac825429bf749866ce245.png)

したがって、このトピックの最後の投稿（執筆時点）は「投稿 #580」と呼ばれていますが、スクロールバーでは 256 / 257 と表示されています。このトピックの 2 番目の投稿を見ると、#303 と番号付けられているため、その前にいくつかの「ウィスパー（非公開投稿）」があるのではないかと推測されます。

また、この投稿の後に番号にギャップがあります: [Migrate a phpBB3 forum to Discourse - #307 by Canapin](https://meta.discourse.org/t/importing-from-phpbb3/30810/307?u=talltrees)

ここにもう一度ウィスパーがあるのでしょうか？

---

<div class="post-metadata">

### Author: ![gerhard](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gerhard/32/119479_2.png) [@gerhard](https://meta.discourse.org/u/gerhard)
#### Post date: [2021 年 1 月 14 日午後 11:08 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/2 "2021-01-14T23:08:37Z")

</div>

いいえ、単に削除された投稿の集まりです。バグではありません。

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 15 日午前 12:04 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/3 "2021-01-15T00:04:04Z")

</div>

はい、その話題でその状況が当てはまるなら、囁き（whispers）のある話題を確認するか、ここで囁きを送ってからテスト返信を投稿してみてください。同じ現象が発生するはずです。

残念ながら、このバグは私のフォーラムで、何か恐ろしいことが起きていると勝手に想像している批判的・-paranoidなメンバーに気づかれてしまいました ☹

---

<div class="post-metadata">

### Author: ![Sailsman63](https://avatars.discourse-cdn.com/v4/letter/s/b5ac83/32.png) [@Sailsman63](https://meta.discourse.org/u/Sailsman63)
#### Post date: [2021 年 1 月 15 日午前 12:17 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/4 "2021-01-15T00:17:20Z")

</div>

この仕組みをどのように想定されていますか？

- 投稿番号は投稿が作成された時点で割り当てられ（次に利用可能な番号が割り当てられます）、後から変更することはできません。変更すると、特定の投稿への参照やリンクが壊れてしまうためです。
- 「ウィスパー」は、恒久的な「スタッフのみ」フラグが付いたトピック内の投稿に過ぎません。他の投稿と同様に、作成時に投稿番号が割り当てられます。番号の割り当て方を別の方法にすべきだとお考えですか？

> [@TallTrees](#):
>
> 残念ながら、このバグは私のフォーラムで、何か恐ろしいことが起きていると想像するクリティカル/パラノイアなメンバーによって既に指摘されています。

スタッフを信頼していないことが問題であれば、コミュニティではモデレーションなどのすべての対応をオープンに透明に行う必要があるのではないでしょうか？

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 15 日午前 12:25 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/5 "2021-01-15T00:25:42Z")

</div>

投稿番号は、スクロールバーで計算された投稿番号と一致し、非モデレーター向けの「ささやき」をスキップする必要があります。ささやき投稿へのリンクは引き続きサポート可能ですが、例えば `/topicid/w-postid` のような少し異なる URL 形式を使用し、「w」プレフィックスでその投稿 ID がささやきであることを示すようにするとよいでしょう。

> [@Sailsman63](#):
>
> スタッフを信頼していないことが問題なら、コミュニティはすべてのモデレーションなどをオープンに透明に行うべきなのかもしれませんね？

私たちは非常にオープンですが、それでも一部の人がトピックにどれだけのささやきがあるか指摘し、物事を煽ろうとするのを防ぐことはできません。

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2021 年 1 月 15 日午前 2:00 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/6 "2021-01-15T02:00:09Z")

</div>

> [@TallTrees](#):
>
> 投稿番号はスクロールバーで計算される投稿番号と一致し、非モデレーター向けのウィスパーを「スキップ」する必要があります。ウィスパー投稿へのリンクは引き続きサポート可能ですが、少し異なる URL 形式を使用するかもしれません。例えば `/topicid/w-postid` のように、「w」プレフィックスでその投稿 ID がウィスパーであることを示します。

これは、目に見えるメリットがゼロなのに、あまりにも多くの作業を要するようです。

もしあなたのコミュニティがウィスパーが「使用可能であること」を好まない場合、「ウィスパーを有効にする」設定でそれを無効にすると役立つかもしれません。

---

<div class="post-metadata">

### Author: ![JimPas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jimpas/32/148179_2.png) [@JimPas](https://meta.discourse.org/u/JimPas)
#### Post date: [2021 年 1 月 15 日午前 6:07 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/7 "2021-01-15T06:07:33Z")

</div>

> [@Falco](#):
>
> もしコミュニティが「囁き」が使えること自体を嫌うなら、`enable whispers` 設定でこれを無効にすれば解決するかもしれません。

それでも、トピック内に削除された投稿がある場合、カウントがずれるという事実は変わりません。ユーザーたちはその不一致に対して依然として警戒心や paranoia を抱くでしょうし、不必要に囁き機能を失うことになります。

削除された投稿が数の不一致の原因であることを、ユーザーにシンプルに説明すれば十分です。それ以外については、ユーザー自身が根拠のない不安（あるいは陰謀論）を乗り越える必要があります。

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 18 日午後 5:04 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/8 "2021-01-18T17:04:18Z")

</div>

コミュニティの問題はさておき、最も明らかなカウントの不一致を修正するのは、それほど難しくないと私は考えています。

 ![image](https://global.discourse-cdn.com/meta/original/3X/f/f/ffde11b117255c6362d8d35c97aade741b16d09e.png)

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [2021 年 1 月 18 日午後 6:34 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/9 "2021-01-18T18:34:51Z")

</div>

> [@TallTrees](#):
>
> それでも、修正はそれほど複雑ではないはずだと思います

有名な最期の言葉ですね 🤣

投稿のパーマリンクから「ささやき」を無視した場合、管理者はどのように「ささやき」にリンクすればよいのでしょうか？そうすれば、あなたが提案したように、ささやき用の新しい URL 形式を追加する必要があります。

> [@TallTrees](#):
>
> ささやき投稿へのリンク機能を維持することは可能ですが、少し異なる URL 形式を使用する必要があるかもしれません。例えば、/topicid/w-postid のように、「w」プレフィックスがその投稿 ID がささやきであることを示す形式です。

これに対して私はすでに以下のように返信しました。

> [@Falco](#):
>
> 目に見えるメリットが全くないのに、これだけ多くの作業を強いられるのはひどすぎます。

つまり、私たちは堂々巡りをしているのです。

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 18 日午後 9:37 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/10 "2021-01-18T21:37:08Z")

</div>

前の投稿では、スクリーンショットに示されているように、投稿番号と件数が一致しないという「外見上の」修正のみを求めていました。他の部分は手間がかかるわりに効果が小さいとのご指摘でしたので、それについては見送りました。

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [2021 年 1 月 22 日午前 1:29 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/11 "2021-01-22T01:29:39Z")

</div>

これは長年続いている問題であり、改善を試みる動きもいくつかありましたが、現在に至るまでこの状況が続いています。

私の考えでは、これは必要な透明性と、気づかれないこととの組み合わせです（はい、ある種の矛盾です）。

投稿を時系列順に表示するという方針については、Twitter のような大規模プラットフォームが削除された投稿の問題に対処しているのと同様に、妥協するつもりはありません。このような番号の不一致は、その方針に伴う必要なコストのようです。

---

<div class="post-metadata">

### Author: ![Sailsman63](https://avatars.discourse-cdn.com/v4/letter/s/b5ac83/32.png) [@Sailsman63](https://meta.discourse.org/u/Sailsman63)
#### Post date: [2021 年 1 月 22 日午前 2:19 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/12 "2021-01-22T02:19:05Z")

</div>

> [@riking](#):
>
> 投稿の表示順序（Twitterのような大規模プラットフォームが削除された投稿の問題をどのように扱っているか）について妥協するつもりはありません。

Twitterが何をしているのかについて、詳しく説明するか、参考資料へのリンクを提供していただけますか？私はTwitterを使っていないので、Discourseがここで何をしているかを比較・対照する参照がありません。

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [2021 年 1 月 22 日午前 2:50 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/13 "2021-01-22T02:50:18Z")

</div>

要点を簡潔にまとめると：😊 日付を確認してください

> <https://twitter.com/dril/status/760997832237129729>

返信の表示順序を絶えず入れ替えることで、削除された返信や不要な返信を容易に埋もれさせることができ、これが起きていることを証明する簡単な方法がありません。

さらに、炎上を煽るような反応がトップに優先表示され、炎上を鎮めるのではなく、アルゴリズムによってさらに煽られることになります。

---

<div class="post-metadata">

### Author: ![Sailsman63](https://avatars.discourse-cdn.com/v4/letter/s/b5ac83/32.png) [@Sailsman63](https://meta.discourse.org/u/Sailsman63)
#### Post date: [2021 年 1 月 22 日午前 3:22 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/14 "2021-01-22T03:22:56Z")

</div>

ああ…その「編集された順序」の話ですね。削除された投稿の記録などにどのような影響があるか、考えていませんでした。

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 22 日午前 8:51 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/15 "2021-01-22T08:51:00Z")

</div>

> [@riking](#):
>
> 必要な透明性と、気づかれないことの両方が組み合わさっているという考えです。

はい、その点に完全に同意します。

そのため、同じ画面に表示される2つの「投稿番号」が一致している方がよいと思います（スクリーンショットは上記の私の投稿にあります）。URL内の投稿番号（通常はスクロールが必要）は実際の投稿順序番号を明らかにしてしまいますが、それでも構いません。

ページのスクロール機能は各投稿の「表示されている」番号を知っているため、これを投稿ダイアログで再利用するのは難しいとは考えにくいのですが、私はコードを見ていないので確実なことは言えません！

---

<div class="post-metadata">

### Author: ![lucasbasquerotto](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lucasbasquerotto/32/133376_2.png) [@lucasbasquerotto](https://meta.discourse.org/u/lucasbasquerotto)
#### Post date: [2021 年 1 月 22 日午後 7:46 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/16 "2021-01-22T19:46:19Z")

</div>

> [@TallTrees](#):
>
> ページ内のスクロールが各投稿の「表示されている」番号を知っている以上、これを投稿ダイアログで再利用するのは難しい理由がわかりません。ただし、私はコード自体を見ていないので！

私もコードがどのように処理しているかはわかりませんが、私の推測では、Postgres インデックスを使用して削除された投稿やウィスパー投稿を除外した非削除・非ウィスパー投稿をカウントする集計データベースクエリを行えば、総数の計算は高速に行えるはずです。

一方、 **各** 投稿の **実際の** 番号（ウィスパーや削除された投稿を無視して）を表示することは、ほぼゼロのメリットに対してパフォーマンスに大きな悪影響を与える可能性があります。あるいは、新しい投稿が作成または削除されるたびに投稿の番号付けを更新するバックグラウンドプロセスで実装することもできますが、その間は番号がずれている状態になります。

どちらのオプションも私には好ましくありません。 **ただし、総数がどのように計算されているかはおおよそ推測できます** （もし投稿 ID をまず取得し、その後に総数を計算しているなら、ご要望の機能を実現する際にパフォーマンスへの悪影響を最小限に抑えられる可能性が高いかもしれません）。

_（ここでは URL を変更するのではなく、表示番号の変更のみを考慮しています。URL を変更すると、時間が経つにつれてリンクが誤った投稿を指すようになり、さらに悪影響が及ぶためです）_

この番号付けに関する「問題」については、トレードオフとして捉えています。理想的な状況ではありませんが、他の可能性と比較しても、現在の方式が最善だと考えています。さらに、_実際のところ、理想的なシナリオとはどのようなものでしょうか？_（だからこそ、これをトレードオフと呼んでいるのです）

---

<div class="post-metadata">

### Author: ![JimPas](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jimpas/32/148179_2.png) [@JimPas](https://meta.discourse.org/u/JimPas)
#### Post date: [2021 年 1 月 22 日午後 8:04 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/17 "2021-01-22T20:04:43Z")

</div>

> [@lucasbasquerotto](#):
>
> 新しい投稿が作成または削除されるたびに、バックグラウンドプロセスで投稿の番号付けを更新することも可能です（その間、番号付けが正しくない状態になる可能性があります）。

バックグラウンドで行う必要があるもう一つの作業は、他のトピックで参照されているリンクの URL を変更することです。  
問題が発生し得る点はここでもあります：他のサイトへの共有リンク。  
URL をタイムスライダーに合うように変更すると、以前共有された URL と一致しなくなります。

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 23 日午前 9:22 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/18 "2021-01-23T09:22:30Z")

</div>

> [@lucasbasquerotto](#):
>
> 一方、 **各** 投稿の **実際の** 番号（ウィスパーや削除された投稿は除く）を表示することは、パフォーマンスに大きな負荷がかかる割に、得られる恩恵はほぼゼロになる可能性があります。

それはありそうにないと思います。ページを下にスクロールすると、右側のスクロールバー/ナビゲーションバーに、現在表示されている投稿の実際の番号がすでに示されています。このリクエストは、投稿をリンクする際のポップアップボックスで、この番号を使用するよう求めるものです。

リンクボックス:

 ![image](https://global.discourse-cdn.com/meta/original/3X/5/8/58473359b4d657f484e4f19c822e79fc699303da.png)

スクロールバー:  
 ![image](https://global.discourse-cdn.com/meta/original/3X/9/a/9a646b474bfe6dd3a101969a51457d207d259702.png)

このトピックでは、両者は一致しています（おそらく削除された投稿やウィスパーがないため）。やったー 🙂

---

<div class="post-metadata">

### Author: ![lucasbasquerotto](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lucasbasquerotto/32/133376_2.png) [@lucasbasquerotto](https://meta.discourse.org/u/lucasbasquerotto)
#### Post date: [2021 年 1 月 25 日午後 12:40 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/19 "2021-01-25T12:40:33Z")

</div>

このトピックでは数値が正しいためテストできませんが、タイムラインの現在の数値が正しく、投稿と関連付けられるのであれば、フロントエンド側でわずかな変更だけで対応可能です。つまり、URL ではなく投稿番号のみを変更する限り、ペナルティなしで実現できるでしょう。

---

<div class="post-metadata">

### Author: ![TallTrees](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/talltrees/32/208620_2.png) [@TallTrees](https://meta.discourse.org/u/TallTrees)
#### Post date: [2021 年 1 月 25 日午後 9:37 UTC](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160/20 "2021-01-25T21:37:42Z")

</div>

はい、その通りです。タイムラインが正しく処理しているので、投稿番号（URL 内ではなく）にそのデータやロジックを再利用するだけで十分です。

[次のページ](https://meta.discourse.org/t/whispered-replies-leak-in-the-post-number/176160.md?page=2)
