RuTracker.orgから有益なRSSフィードを追加する

はじめに



最初のトピックでは、ニュースを読むことに気を取られることなく、お気に入りのトレントトラッカーから選択したディストリビューションのダウンロードを整理する方法を書きました。 このトピックでは、 過剰な方法について説明します。これは、RSSフィードの形式で私たちに届いた特定の各分布に関する情報を取得するプロセスをさらに簡素化します。 ご存じのように、RuTracker.org自体は、対応するフォーラムスレッドへのリンクのみをRSSフィードで公開しています。 テープ要素には配布の説明は含まれていませんが、別の方法でお願いします。



「車輪の再発明をやめ、既成のRSSを取得する方がよいという精神で異議を予想します。 たとえば、 xpoft.ruから( ヒントはegor_bulychevに感謝しますが、皮肉はありませんが、感謝します)、次のように言います。ツールは興味深く、軽快で、マウスを数回クリックするだけで目的のコンテンツのテープが作成されます。 しかし、残念なことに、彼によって生成されたRSSフィードは、要素のコンテンツの恒常性を奨励していません。その場合、配信に関する包括的な情報、または名前とポスターのみが表示されます。 さらに、テープの内容がRuTracker.orgの配布の実際の記述に依存していることは確認されていません。 この配置は私には不向きです。説明を読み、スクリーンショット付きのメディア情報を、そして元の説明ページに移動しなくても見たいです。



即時タスク



トレントトラッカーの投稿の本文から配信の説明を取得し、RSSフィードの対応する要素に追加します。 結果のフィードはRSS形式である必要があります。 入り口には、かなり鈍くて情報のないテープがあります。



ソーステープ



ツール



ツールの構成は、トレントクライアントを除き、前の記事とほぼ同じです。

解決策



合計で、問題を解決するには、3つのパイプが必要です。

それらを手動で作成し、Yahoo Pipesを使用するスキルを非常にうまく活用できます。迅速かつ無痛で私のものをクローンして自分用に仕上げることができます。私が作成したパイプを変更せずに使用できます 最初のオプションが好きな人を除き、誰でも次の3つの点を安全にスキップして、使用手順とリンクをすぐに読むことができます。 簡単な方法の非素人は、順番にすべてを教えてくれます。



パイプ#1:投稿コンバーターへのURL


キリル文字セットで動作するYahoo Pipesの機能の1つでない場合、このpaypがなくても可能です。 私はすべてのことを話すわけではありませんが、RuTracker.org RSSフィードは処理中にまったく読めない意味不明なものに変わります。 ディストリビューションの通常名を取得するには、このパイプが必要です。 Yahoo Pipesには直接エンコードツールがないため、回避策を回避する必要があります。



URL2NameConvernter



ここではすべてが簡単です。URL入力を使用して要求します(サプライズ!)トピックのURLをブロックし、Fetch Pageブロックでタグから配布の名前を引き出します
  <title> </ title> 
正規表現ブロックとテンプレートを使用して、不要なものをすべて削除します
  <タイトル>(。+)::。+ 


完成したパイプへのリンク-http://pipes.yahoo.com/ivopupkin/url2nameconv



パイプ#2:Ripperをパイプする


ディストリビューションのトピック記述から有用な情報を抽出する主な仕事をします。



リッパーをパイプする



最も難しいのは、有用な情報の境界を選択し、余分なものを破棄することです。 それ以外の場合は、すべてが同じように簡単です。トピックURLを入力するためのブロックで、それをFetch Pageブロックに渡します。 私にとって有用な情報の境界線、私は次を特定しました:
  <div class = "post_body" id = " 
そして
  <legend>ダウンロード</ legend> 
それぞれ、始まりと終わり。 これらは、フォーラムトピックの最初のメッセージの境界にほぼ対応しています。



この時点で、次の段階に進みますが、 トピックのマークアップは非常に具体的で、この形式ではほとんど価値がありません。ブラウザはテキストのみを表示します。 最後のRegexブロックは、RuTracker.orgのマークアップに代わって、図面を通常表示します。
  <var class = "postImg" title = "([^"] +) "> 
タンバリンとの追加のダンスなしでブラウザに明確
  <img src = "$ 1"> 
画像の大部分と
  <var class = "postImg。+" title = "([^"] +) "> 
  <img src = "$ 1"> 
タイトル画像用。



完成したパイプへのリンク-http://pipes.yahoo.com/ivopupkin/pipetheripper



パイプ番号3:メイン


彼は私たちのためにすべての汚い仕事をするでしょう。 つまり、ソーステープのURLを要求し、その要素のリストを取得し、子パイプを実行し、最後に要素の名前を形成して、結果のテープを作成します。



URL入力とフェッチフィード

最初の2つのブロックでは、すべてが明確で説明なしです。URL入力はユーザーにRSSフィードのURLを要求し、Fetch Feedはフィード自体をロードします。



名前を変更

それらに続く名前変更ブロックは、配布用の「更新済み」記号の予備的な形成と、配布のサイズを持つ別のフィールドに役立ちます。 これは、上記の元のRSSフィードのエンコードの問題を回避するために必要です。



正規表現

次に、Regexブロックを使用して、いくつかのアクションを一度に実行します(置換が行われるフィールドに注意してください)。 ループ1および2

ループブロックと対応する子パイプ( item.linkの値を伝える入力パラメーターとして)は、テープ全体のタイトルとコンテンツを更新します。 結果はそれぞれフィールドitem.titleおよびitem.descriptionに保存されます。



ループ3

次のLoop + String Builderブロックでは、最終的に、配信の更新とそのサイズに関する情報を含むフィード要素のタイトルを作成します。 いくつかのフィールドに保存します。 たとえば、 item.title.contentで



RSSを作成

最後に、この時点で蓄積されたデータのヒープから、Create RSSブロックを使用して整形式のRSSフィードを形成し、その出力はパイプ出力に接続されます。



完成したパイプへのリンク-http://pipes.yahoo.com/ivopupkin/rutrackerrssexpander



使用説明書



すべてが2倍の2つの単純です。

完成したテープ



もちろん、コンテンツは少し乱れていますが、分布の評価にはまだ適しています。 おそらく既にご存知のように、どのRSSリーダーでも読むことができます。

必要に応じて、十分な器用さで、RuTracker.orgからの複数のRSSフィードを1つの結果フィードに一度にパックできます。 これを行うには、各入力フィードのメインパイプで独自のURL InputブロックとFetch Feedブロックのペアを作成し、その結果をUnionブロックと結合するだけで十分です。 これ以上の変更は必要ありません。



結論の代わりに



簡単な操作を使用して、興味深いRSSフィードを変換する方法を示しましたが、これは私たちに合わないものです。 同様に、既存のRSSフィードを編集するか、任意のページのデータに基づいて独自のRSSフィードを作成できます。 さらに、Yahoo Pipesの助けを借りて、任意のページにある要素をRSSフィードの要素に変えることができます(たとえば、この方法でフォーラムの新しいトピックの出現を追跡したり、それらを更新したりできます)。 このため、本格的なプログラミングスキルが必要でなく、必要なインフラストラクチャを構成および維持する必要がないことは注目に値します。



参照資料

。







All Articles