habrAllHub-「すべてのブログ」と「お気に入りのブログ」を切り替える

選択したハブ(ブログ)の読み取りに戻る機能を備えた「すべてのハブの読み取り」ボタンの生まれ変わり。 許可で動作します。 選択設定はJSON経由で移植可能です。



このボタンは「壊れた」ものであり、2012年3月14日のサイトの開発者に「良い」ことを約束しました。 しかし、聖地は空っぽではなく、弱体化したクライアント「スピリット」が現れました。



このスクリプトは、すべてのブログ設定を1つの大きなJSON行に保存します。この行はブラウザーストレージに保存され(停電時に失われません)、他のブラウザーやコンピューターへのエクスポート用に引き出すことができます(「インポート/エクスポート」ボタン) 「他人の目を通して見る」)。 [すべて/所有]ラジオボタンを使用すると、すべてのブログまたはお気に入りから簡単に選択できます。 実際、これはサイトから削除された以前の「すべて読み取り」モードの代替です。 他の既存のソリューションでは、何かを犠牲にする必要があります。「すべて」を手動で選択する(これはお気に入りのブログを失うことを意味します)、 habrahabr.ru / posts / collectiveおよびhabrahabr.ru/posts/collective/newを読む(会社のブログはスキップされます)- ディスカッションQAで



スクリプトページに行きますhabrAllHubスクリプトをすぐにダウンロードします



責任の制限



このスクリプトは、ユーザーフレンドリーな機能を実行するために作成されています。

1)サイトの機能に関係なく、ユーザーが選択したブログをブラウザストレージとJSONテキスト形式で保存します。

2)ブログを読むためのサーバー設定を一時的に書き換えることにより、すべてのブログを表示する機能(「すべて」ボタン)。

3)リポジトリから、または別のブラウザまたは別のユーザーから取得したテキスト形式から設定([所有]ボタン)を復元する機能([エクスポート/インポート]ボタン( ">"))。



製造元と文書化されていない一貫性のないプロトコルを使用した「一時的な書き換え」により、スクリプトが予期せず動作を停止し 、ローカルに保存されたユーザー設定がサーバーによって読み取られなくなる可能性があります。 さらに、ブログの識別子と名前はメーカーによって絶えず(一貫性なく) 変更されているため、長期間保存された設定が将来正しく機能するという保証はありません。 したがって、スクリプトを慎重に使用して、テキスト形式([エクスポート/インポート]ボタン)で設定を保存する(できれば、「すべてのブログ」モードでサイトを表示する各期間の前に)必要があります。 しかし、とにかく、ユーザーは入力されたデータの損失に対して保証されることはありません-「テープ設定」 。 主なことは、「すべてのブログ」モードで表示した後、スクリプトが設定を手動で入力しない多くの機会を与えることです。



設定を変更するプロセスの期間



設定を読み書きするとき、長い(10〜30秒、データ-約20〜30 KB)データがサーバーと交換されます。 したがって、一般に設定を操作することは、サーバーチャネルにとって簡単な機能ではありません。 これを理解する必要があり、サイトの設定を切り替えるプロセスを乱用しないでください。 また、「すべて」に切り替えて戻るプロセスが非常に長い理由と、「読み取り」ボタンがある理由についても理解できます。 これは、設定を切り替えるときに、サーバーから設定を事前に読み取ることが常にないようにするためです。 「すべて」の最初のプレスはコストのかかる操作であり、「読み取り」の各新規プレスもコストの高い操作であり、「テープ設定」セクションの「設定の表示」よりもコストがかかります。 したがって、スクリプトは、最初の読み取り時(リポジトリから設定を取得するとき)または「読み取り」をクリックしたときにのみ設定を読み取ります。



ただし、定期的に「読み取り」が必要です。 ブラウザは、ストレージとサーバーを同期するためにユーザーを信頼するように強制されます。 ユーザーが別のブラウザーで設定変更した場合、現在のブラウザーで[すべて]をクリックすると、サーバー設定が消去されます。 したがって、 ユーザーが「すべて」または「読み取り」をクリックしてから「すべて」をクリックするのは、ユーザーの責任の下のみです。 (ここでは、サーバー上で、保存日のサインや設定のチェックサムが傷つくことはありません。これは、不一致ごとに「読み取り」のソートを開始する場合はさらに良いですが、そうではありません。)



最初に「所有」モードに切り替えずに別のコンピューターでサイトを開くと、サーバーに設定がありません 。 これらは個別に転送してインポートする必要があります(ボタン「>」-Ctrl-V)。 最後に、別のログインで作業した後にHabrに入った場合、新しいログインは保存された設定を独自の、つまり スクリプトは、誰の設定であるかを区別しません 。 ただし、これはユーザー名を設定に追加することを教えることができる最も簡単なことです。



このような不便さは、サイトでサポートされている「すべて」ボタンが消えた後も残っています。 おそらく将来、サーバーインターフェイスは、ユーザーインターフェイスから[読み取り]ボタンを削除するためのチェックサムとオープンプロトコルを受け取ります。



したがって、管理用のTODOには、ローカルブログのチェックサムとサーバー設定を比較するコマンドが必要です。 これにより、サーバー側への変更の監視が非常に簡単になります。 そしてさらに簡単に-サーバー上でこのチェックボックスを「すべて」にすることです:)。



「すべて」のチェックボックスが削除された理由と実行すべき理由



春の更新の説明で、著者はフィード設定から「すべて」ボタンを削除する理由を明確に説明しました。 ここでそれらをもう一度言います。



「Everything」フィードを選択したユーザーは、ブログの内容があまり知られていないブログを、管理されているブログと見なし始めます。 その結果、馴染みのないトピックからの記事の価値に対する主観的な理解に基づいて、評価のマークを付けます。 そのようなユーザーからの「ネガティブ」を避けるために、「すべて」ボタンを削除すると同時に、すべての記事を連続して表示するためのその他の抜け穴を削除することにしました。 ただし、すべてのカテゴリを単純に「愚かに」選択する機能は残しておきます。



ソリューションIMHOには、より柔軟なソリューションが必要です。すべてのブログを選択した人のスコアリングの責任を、手動または自動で変更します。 たとえば、「すべて」が選択されている場合、スコアの重みをゼロに減らします。 ただし、これも解決策ではありません。最初の評価者は「すべて」を見るだけの人であるため、最初の「プラス」を得る場所はありません。



または、「評価プロファイル」を入力する必要があります-「すべて」または多くを選択したユーザーが評価する権利のサブセットを選択する必要があり、これはコメント、記事、「いいね」の件名行と一致します(これらは選択したブログです)。 それ以外の場合、彼の成績は考慮されません(または重量が少ない場合は考慮されません)。 そのような柔軟な定式化メカニズムは、まさにその必要なメカニズムを提供します。 ユーザーが特定のトピックで著者または尊敬されるコメンテーターとしての地位を確立するまで、ユーザーは基本的な重みをほとんど持たず、すべてのブログに吹き付けられた場合、それはさらに少なくなります。 そして、重みのある著者は、評価能力を拡張するか、選択した狭い範囲のトピックで高い評価の重みを持ちます。



作成された理由、「すべて」ボタン



私は、他の皆と同じように、ブログの設定を失い、すべてのカテゴリーを手動で選択して上書きしたくありませんでした。 いつか役に立つと思います。 結局のところ、これは「どのブログを好むのですか?」という質問に対する私の答えです。



今すぐコンピューター間で設定を転送する方法は?



はい、設定の選択を上書きするため、別の場所にある別のコンピューターでサイトを開く可能性があり、そこですべてが選択されます。 そして、これはあなた次第です:)(政治を除く)。 不快な立場に陥らないようにするために-あなたと一緒に持ち歩くか、Web上(メールなど)に保存してください-サイズが10〜30 KBのテキストファイル。 これにより、以前のブログ設定をインポートできます。 確かに、形式が時代遅れにならず、読み取れないという保証はありません。 しかし、これは何百ものブログを手動でリセットするよりも優れています。 しかし、ちなみに、これらはすべて重要ではありません...ミツバチを除きます。



面白くて無駄なチップ



1.コンソールでカテゴリを読むことで、カテゴリ、ブログ、選択したブログの総数を監視できます-行が表示されます:



'== allBlog' Object {cat = 15、blog = 133、allBlog = 326} ...

(データを収集するとき、会社のブログのカテゴリは機能しませんでした-MySQLエラー、そうでない場合はさらにブログがあります。)



2. FireBallのサーバーから受信したすべてのコンテンツを含むallBlogオブジェクトを表示するには、コンソールで「allBlog」+ Enterと入力します。



3. JSONですべてのブログのリストを取得するには、FAST = 0に設定します。 スクリプトで。



5. HabrAjaxとの互換性-バージョン0.816以降(今日から)。 (つまり、HabrAjaxバージョンをアップグレードします。そうしないと、ブログ切り替えボタンが表示されません。)



6.フォトギャラリー。 単一のスクリプト。 HabrAjaxを使用。 C HabrAjax + ZenComment(常に画面上)。





7.結果を表示するには、ページをリロードする必要があります。



8.サイトのページは、別のページの設定を変更する場合にリポジトリを監視し、ページとサーバー間の不一致を時間内に表示します-「リロード」と表示されます。



9.スクリプトは、意味のない有用なデータを消去しないようにします。 選択したすべてのブログに「読み取り」コマンドを指定すると、スクリプトはそのようなデータを記憶することを拒否し、サインで認識します。 ただし、念のため、設定のテキストコピーを用意しておくと便利です。



10.念のため、スクリプトは、「すべて」または詳細をインストールしたかどうかを推測するために、サーバーに送信したバイト数を示します。 「サーバー452にインストールされています」などのように表示される場合、これは「すべて」です。 さらに多くの場合、たとえば、「サーバー5876にインストール」-これらは設定です。



そして再び湿気について



繰り返しますが、それは重要です。 使用されるソフトウェアは、サーバーとユーザースクリプトの両方で生です。 サーバーは、たとえば企業のブログでエラーを表示するなど、簡単にエラーを表示できます。 したがって、スクリプトはそれよりも柔軟になります。 通常の状況では必要なかった「読み取り」ボタンが追加され、アクティブなボタンのクリックは残されました。 緊急事態は簡単だからです。 したがって、まず、 エクスポートによって設定の行を保存します (「>」ボタン、Ctrl-C、Ctrl-Vを押します)。



印象



必要なものが判明しました-ワンクリックで、数百の設定が約5秒で復元されます。 ブラウザの外部に設定を保存すると、「すべてを読む」モードに安全に飛び込むことができ、設定されたフレームよりも世界がどれほど広いか驚かれることでしょう。



All Articles