こんにちは、
私は以下のディスコースフォーラムにアクセスしていました。
そして「mac」という単語を見つける必要がありました。
CTRL+Fを使用すると、画面上にその文字列がある場合にのみ見つけることができ、スクロールすると一致項目が消えてしまいました。
また、スクロールバーのスクロール位置一致インジケーターも乱れます。
これが「メモリを節約する」ためのものだという主張は理解できますが、このシステムには64ギガバイトのメモリがあり、このページは100キロバイト未満のテキストです。したがって、これは実際にはFacebookがスクレイピングを防ぐために使用するような(しかし失敗する)アンチスクレイピング機能だと理解しています。
この奇妙なバグを検索したところ、この非常に迷惑なアンチフィーチャーに関する苦情の絶対的な海を見つけました。
代替手段は何ですか?
クライアント側で無効にできますか?
印刷モードでページを読み込むことについてはどうですか?
ページ全体をテキストのみで完全にダンプして、テキストエディタで表示できるようにする方法はありますか?
メモリからテキストをアンロードして検索できるようにする機能を破壊できるような、Greasemonkeyスクリプトはありますか?
私の唯一の選択肢は、データベースサーバーに侵入し、すべてのディスコースコンテンツを流出させ、その後、これらの混乱なしにコメントスレッドを表示するためのコードを書くことでしょうか?
2014年からの苦情を見ているので、この問題を解決する意図はなく、「バグではなく機能」であり、ユーザーのためではなく所有者のための機能だと想像していますか?
この非常に深刻な問題に関する「メタ」は何ですか?これにより、ディスコースフォーラムをナビゲートしなければならないという不運に見舞われることを恐れるようになりますか?
はい、私は不満を持っています。どうしてわかったのですか?
スロップマシンに印刷バージョンを要求しました
そして、プレビューの処理に約1分かかった後、それは機能しました
Falco
(Falco)
3
ありがとうございます!
raw メソッドで対応できました。
もしかして、すべてのページを自動的に raw で読み込むアドオンはありますか?
別のメッセージを書いていたのですが、すみません、一度に1枚の画像を読み込むのを待つために一日中ここにいることはできません。
はい、試してみましたが、
サーバーサイド検索は使用したくありません。
また、結果が私にとって使いやすいものではありません。
これがその様子です。
申し訳ありません。
OpenWrtで問題を解決しようとしていました。
ブラウザで検索するのと同じように検索できないことに、本当にイライラしていました。
ここに時間を費やさないことが失礼だと感じさせてしまったのなら申し訳ありませんが、私の視点からご理解ください。
ソフトウェアの使用に苦労しており、その問題を乗り越えるための解決策を探し始めました。
そして解決策を見つけられないとき、ソフトウェアの名前を見つけ、そのディスカッションスペースを見つけ、アカウントを作成し、キャプチャを済ませ、メール認証を済ませ、フォーラムで類似の質問を検索し、いくつか見つけますが、それらはクローズされており、他のものを見つけ、新しい投稿をすることに決め、書き始め、多くの画像例を含むコメント全体を書き、
そして返信を押すと、「一度に投稿できる画像は1枚だけです」というエラーメッセージが表示されます。
これにより、スクリーンショットに依存しているメッセージ全体を編集する必要があります。
そのため、投稿ごとに1枚の画像にメッセージを分割しようとしますが、メッセージ間に待機しなければならない不明なタイムアウト期間があり、ただ仕事に戻りたいだけであり、これらの開発者はユーザーの苦労を確実に知っているはずなので、私がどれだけこのことに動揺しているかを伝えることで、彼らに何も付け加えていないだろうと考え始めます。
しかし、そうではありません。パワーユーザーとして、他のユーザーの苦労を開発者に知らせる義務があり、今では、その苦労について伝えるために格闘し始めてから、ちょうど30分が経過しました。
ですから…失礼だとしたら申し訳ありませんが、メッセージを投稿するために必要なアクションを発見し実行するために、さらに何分も費やしたくありません。
しかし、あなたに対して失礼なつもりはないことをお約束します。ただ、とてもイライラしているだけです!
Thefacto
(Thefacto)
9
皆さん、DiscourseでCTRL+Fを使う際に、現在画面に表示されていない投稿が、遅延読み込み/メモリからのアンロードシステムのために検索結果から消えてしまうという、同じ厄介な問題に遭遇しました。64GBのRAMがあっても、ブラウザ内でトピック全体を検索することはできません。私が理解する限り、これはメモリ節約というよりも、アンチスクレイピング機能のようです。以下に、うまくいった方法と、見つけたより安全な代替案を示します。
-
印刷ビューを使用する: トピックURLの末尾に/printを追加します。例: https://forum.example.com/t/topic-name/12345/print。これにより、トピック内のすべての投稿が一度に読み込まれ、ブラウザの検索(CTRL+F)で機能します。レイアウトは簡素化されていますが、全文検索には最適です。
-
すべて読み込まれるまでスクロールする: 遅延読み込みシステムがDOM内のすべての投稿をレンダリングするまでスクロールし続けます。その後、CTRL+Fですべてを検索できます。長いスレッドでは面倒ですが、追加ツールなしで機能します。
-
Discourse APIを使用する: すべてのトピックには、https://forum.example.com/t/{topic_id}.jsonのようなJSONエンドポイントがあります。post_stream.posts配列からすべての投稿を抽出し、テキストエディタで開いて快適に検索できます。安全で公式であり、遅延読み込みに関係なく機能します。
-
Userscript / Greasemonkeyアプローチ: この簡単なユーザースクリプト(Chrome/Firefox用)を使用して、ページ全体の投稿読み込みを自動化できます。トピックが完全にレンダリングされるまで、「さらに投稿を読み込む」ボタンを自動的にクリックします。
// ==UserScript==
// @name Discourse Load All Posts
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Auto-click "load more posts" to fully render topic for search
// @match https://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function loadAll() {
const button = document.querySelector('.load-more[data-more-url]');
if (button) {
button.click();
setTimeout(loadAll, 500); // wait and try again
}
}
window.addEventListener('load', () => {
setTimeout(loadAll, 1000); // start a second after page load
});
})();
完了後、CTRL+Fでスレッド内のすべてを検索できます。
エクスポート/外部検索: 印刷ビューまたはAPI JSONを使用して、投稿をPDF、HTML、またはプレーンテキストにエクスポートします。VSCodeやNotepad++などのエディタで開いて全文検索します。
サーバーハックは試さないでください: データベースへの侵入やサーバー側でのコンテンツのスクレイピングは違法であり、不要です。API / 印刷ビュー / ユーザースクリプトを使用してください。これらはすべて安全で確実に機能します。
要するに: 最も簡単なのは/printビューです。より柔軟なのはAPI JSONまたはユーザースクリプトです。CTRL+Fは、すべての投稿がDOMに読み込まれると機能します。Discourseチームがこれを見て、いつか「完全検索」オプションを検討してくれることを願っています。これは、調査や深いトピック読書を行うすべての人にとって深刻なUXの問題です😅
そのGreasemonkeyスクリプトは動作しますか?
あなたが作成したのですか?
Thefacto
(Thefacto)
11
私が共有したユーザースクリプトについて明確にするために:私はそれが使用していたフォーラムで動作するように特別に書いたので、他のサイトに適応させようとするとHTML構造にいくつかの違いがあるかもしれません。このスクリプトは、「投稿をさらに読み込む」(遅延読み込み)システムを使用する標準のDiscourseトピックで機能し、すべての投稿がDOMに読み込まれるまで、投稿をさらに読み込むボタンを繰り返し自動的にクリックします。すべての投稿が読み込まれたら、ブラウザのCTRL+Fを使用して、通常通り任意のキーワードを検索できます。
実際、多くの人が何年も前からTampermonkey/Greasemonkeyを使用してDiscourseをこのように処理しており、非常に大規模なフォーラムでもうまく機能しています。
注意:一部のフォーラムではボタンのクラスを変更する可能性があるため(例:\.load-more\[data-more-url\])、実際のボタンに合わせてセレクターをわずかに調整する必要がある場合があります。