0

フィードをループして、それらを ActiveRecord オブジェクトとしてデータベースに追加するデーモンを作成することを考えています。

まず、私が直面している問題の 1 つは、feed-normalizer gem を使用してストーリーの作成者/ユーザーを確実に取得できないことです。時々、タグが認識されないようです (他の誰かがこの問題に直面したかどうかはわかりません)。

第二に、RSS フィードをデータベース エントリに変換し直す人を見たことがありません。各エントリは他の ActiveRecord オブジェクトと関連付けられるため、これを行う必要があります。これを具体的に行う宝石は見つかりませんが、acts_as_feedのようなものをハックしてそれを行うことはできますか?

4

3 に答える 3

0

最善の方法は、Superfeedr のようなフィード APIに接続されたRails Engineを使用することです。RSS フィードをポーリングするということは、独自の非同期ワーカーやキュー システムを実行する必要があることを意味します。これは、時間の経過とともに構築および維持するのがかなり複雑になる可能性があります。また、何百もの形式と矛盾を処理する必要があります。これは、Rails アプリケーションで RSS フィードを使用する方法を示すブログ投稿です。

于 2015-04-27T20:29:50.450 に答える
0

SimpleRSS は非常にシンプルな API を公開しており、ほとんどのフィードでうまく機能します。その「パーサー」は正規表現の束であるため(これは非常に多くのレベルで非常に間違っています)、実装を見ないことをお勧めしますが、うまく機能します。

Daemons は、バックグラウンドで実行するのに適した gem です。

アクティブ レコードを使用している場合は、レール外で AR を使用するための手順に従ってから、モデル クラスをインラインで定義する必要があります。これで膨らみが少し減ります。

RSS フィードはかなり一貫性がありません。これが私たちが使用するフォールスルーです

  date = i[:pubDate] || i[:published] || i[:updated]
  body = i[:description] || i[:content] || i[:summary] || ""
  url = i[:guid] || i[:link]

また、経験上、必ずすべてをレスキューするようにしてください (通常のレスキューではタイムアウトが発生しないことに注意してください)。悪いデータを取得する RSS デーモンを常にバウンスしなければならないのはうんざりです。

于 2009-06-25T17:05:50.010 に答える
0

SimpleRSS を使用しないでください。HTML エンティティをデコードすることはなく、フィードの構造を無視することもあります。

XMLSimpleを使用してフィードを XML として解析するのが最も簡単であることがわかりましたが、任意の XML パーサーを使用できます。

于 2009-06-25T19:39:51.877 に答える