OpenFastladder にクローラー向け API が出来ました。
若干むちゃくちゃな仕様だが無理矢理通したというものです。
自分の好きな言語でクローラーを開発し、 Fastladder で使用することが出来ます。
以上です。
という感じで POST しても大丈夫です。
複数の記事を一括で更新したい場合は
/rpc/update_feeds という API に対して
みたいな感じで POST してください。 feeds は JSON 。
重複を Fastladder とクローラーで連携して確認し、無駄なものを POST しないようにするということも出来ます。 check_digest というのがそれです。その辺説明めんどくさいのでソース自分で読んで考えてください。
上記の方法では、実はフィードしか送りつけることが出来ません。ですがこういう仕組みが用意されている以上、フィードでないものも Fastladder に送りつけて購読することはまさに醍醐味と言えるでしょう。以下のようにすることでフィードでないものも購読出来ます。
上記で POST しているパラメーターに更に以下を加える
JSON の場合も複数登録の場合も同様です。 feedtitle は必須ですが feeddescripiton は必須ではありません。
フィードではないものを Fastladder で購読する実例を以下に示します。
require 'user-stream-receiver'
require 'json'
require 'rest_client'
HOST = ''
API_KEY = ''
UserStreamReceiver.new.run{|chunk|
begin
chunk = JSON.parse(chunk)
next unless chunk['text']
hash = {
feedlink: "https://twitter.com/#{chunk['user']['screen_name']}",
feedtitle: "Twitter #{chunk['user']['screen_name']}",
link: "https://twitter.com/#{chunk['user']['screen_name']}/status/#{chunk['id']}",
title: "Twitter #{chunk['user']['screen_name']}",
body: chunk['text'],
author: chunk['user']['screen_name'],
category: 'Twitter',
published_date: chunk['created_at']
}
RestClient.post "http://#{HOST}/rpc/update_feed", json: hash.to_json, api_key: API_KEY
rescue
p 'error'
end
}
これは Twitter の UserStreams を読み込んでガンガン Fastladder に送りつけていくというものです。全く便利ではありません。
結構便利に遊べる API なのではないかと思います。どうぞ、ご利用ください。