ラベル RSS の投稿を表示しています。 すべての投稿を表示
ラベル RSS の投稿を表示しています。 すべての投稿を表示

2013年6月22日土曜日

Firefox でフィード(Atom, RSS)の登録先を設定する - Feedly Cloud へ追加したい場合

1. 「購読」ボタンの設定

Firefox でサイトのフィードを登録したい場合、フィードの「購読」ボタンを押す。

購読」ボタンの配置は、「ツールバーのカスタマイズ」で行う。

  • メニューより、表示 > ツールバー > カスタマイズ…

SnapCrab_No-0294

「購読」ボタンを押すと、フィードのプレビューが表示され、登録先を選択する画面が表示される。「この購読に使用するフィードリーダー」をカスタマイズしたい。

SnapCrab_No-0296

 

2. 購読に使用するフィードリーダーを追加

a. 設定名と値

登録先を追加するには、about:config の設定より、以下の設定名に準じた値を設定する。

  • browser.contentHandlers.types.0.title
  • browser.contentHandlers.types.0.type
  • browser.contentHandlers.types.0.uri

ただし、上記に含まれる数字(ここでは 0)は、「他の登録先で使われている数字」と重複しないこと。

(cf. Browser.contentHandlers.types.*.uri - MozillaZine Knowledge Base)

手順としては、最初にブラウザのロケーションバーに about:config と入力する。

その後、検索フィールドに

browser.contentHandlers.

と入力して、設定名を絞り込み、既に設定してある値を表示。

設定名に含まれる数字を確認し、「これまでに使われている数字」を控えておく。

 

b. Feedly Cloud の場合

SnapCrab_No-0298例えば、フィードの追加先として、Feedly Cloud を追加したいとする。

自分の環境では、「これまでに使われている数字」の中で最も大きい数は 5 だった。そこで、新しく追加する設定名には、重複しないように 6 を使うことにした。

設定名を追加するには、設定値が表示されている部分で、

  • 右クリック > 新規作成 > 文字列

を選択し、下記の値を入力する。

設定名

browser.contentHandlers.types.6.title

feedly

browser.contentHandlers.types.6.type

application/vnd.mozilla.maybe.feed

browser.contentHandlers.types.6.uri

http://cloud.feedly.com/#subscription/feed/%s

※ 値の末尾に空白がないことを確認すること。

一度、Firefox を再起動する。これにより、上記の …. title で設定した値がフィードリーダーの候補として、ダイアログに表示されるようになる。

SnapCrab_No-0297

 

関連記事

2013年5月6日月曜日

Twitter のフィードを取得する - TwitterGoodRSS または Twilog に乗り換えた

1. Twitter の API version 1 でフィードを取得できなくなる

SnapCrab_No-0851これまで Twitter のフィードを取得するには、以下のように API を利用していた。

How to find twitter RSS feed URL によると、

http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=accountName

例えば、Twitterサポート (@TwitterHelpJP) のフィードを取得するには、

この方法は API version 1 に基づいている。

残念ながら、この API version 1 は使えなくなる。

 

2. API version 1 の代替サービス

API version 1 を用いたフィードの取得の代替方法にはいくつかある。

a. TwitterGoodRSS

SnapCrab_No-0852TwitterGoodRSS サービスは、Twitter API 1.1 に対応している。

気に入っている点は、画像をインライン展開してくれること。大きな画像で表示してくれるので見やすい。

Twitterの(公式よりまともな)RSSを生成するサービス TwitterGoodRSS をつくったよ! - yayuguのにっき によると、

URL、#ハッシュタグ、@リプライに対応。さらに公式の画像サービスpic.twitter.comの画像をインライン展開できます。

さらに、リストからRSSを生成する機能もつけました。

2013/03/05 追記: Twitter API 1.1に対応しました

利用するには、

  1. http://twittergoodrss.herokuapp.com/ に登録。
  2. Twitter で「連携アプリを認証」する。
  3. 提示されるブックマークレット「TwitterGoodRSS 」を登録。

これで、フィードリーダーに登録したいユーザーの Twitter ページで、ブックマークレットをクリックすると、フィードが表示される。

このサービスが一番使いやすそうだ。

 

b. Twilog

SnapCrab_No-0853 Twilog は1日単位でツイートをまとめて表示してくれる。フィードの配信もしている。

ただし、登録ユーザ以外のフィードは配信してないようだ。(昔はしてたような気がするけれど。)

 

c. Twitter RSS

ツイッターの更新情報をRSSで受け取れる『Twitter RSS』 | 100SHIKI

Twitter RSSを使えば、気になる人のつぶやきを、フォローせずにチェックすることができますな。

なんらかの理由でフォローをしたくない、もしくはRSSリーダーで見たい、という人におすすめだろう。

Twitter RSS で配信されるフィードを確認したところ、画像の展開は行われなかった。表示が見にくい。

 

d. Topsy

SnapCrab_No-0854 Topsy を利用していたこともあるが、最近、配信されなくなってしまった。

 

3. API vesroin 1.1 の制約

SnapCrab_No-0855API version 1 は、後少しで使えなくなる。次期バージョンである API versoin 1.1 が控えているが、使いづらいらしい。理由は RSS を返さないことと、「認証」を必要とすること。

本の虫: Twitter API 1.1により、Twitterは終了する によると、

Twitter API Version 1.1の登場により、Version 1はdeprecatedとなった。1.1では、RSSがサポートされていない。これでTwitterは完全に終了した。終わりの始まりだ。

API v1 Retirement Date Extended to June 11, 2013 | Twitter Developers によると、

We're extending the API v1 retirement date from May 7, 2013 to June 11, 2013, in order to accommodate additional blackout testing.

Twitter APIと開発者規約変更のインパクトまとめ:結局、Twitter API 1.1で何が変わる? 5つのポイント - @IT によると、

多くのAPIはエンドポイントURLが変わるだけですが、一部廃止・変更もあるので、注意が必要です。公式ドキュメントに廃止・変更になるAPIのリストがないので、以下にまとめました。

なお、廃止対象に挙げているAPIでもAPI 1.1のエンドポイントで実際呼び出せてしまうものがいくつかありますが、ドキュメントには記載されておらず、今後呼び出せなくなる可能性がありますので使うべきではないでしょう。

また、これまで一部のAPIはOAuth認可なしで呼び出せましたが、Twitter API 1.1では全てOAuthが必須となります。

ただし、ウェブサイトに埋め込むタイムラインは認証は必要ない。

Following up on API housekeeping | Twitter Developers  によると、

It's possible you may be able to use an Embedded Timelines widget to display these tweets on your internal site as an alternative without OAuth.

Otherwise, you'll need to register an application to dev.twitter.com/apps, learn about OAuth, and use it to fetch a JSON-based feed (instead of RSS) from https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=DeptVetAffairs -- Single-user OAuth with Examples gives some tips on how to perform these kind of requests for a use case like yours.

 

関連記事

2012年6月29日金曜日

Yahoo! Pipes の XPath Fetch Page でフィードを出力してないサイトからRSS を配信する

1. Fetch Page から XPATH Fetch Page モジュールへ

http://pipes.yahoo.com/pipes/

Pipes via kwout

Yahoo! Pipes で、フィードを出力してないサイトから RSS を配信するために、Fetch Page モジュールを利用してきた。Fetch Page モジュールは、指定した URL のウェブページを取得するためのモジュール。

現在では、Fetch Page モジュールは、非推奨 (deprecated) となり、代わりに

が登場した。

Fetch Page モジュールは、文字列によりフィードにしたいウェブページの対象を指定した。これに対して、XPATH Fetch Page モジュールは、XPath を利用して指定する。

New Module: XPATH Fetch Page | Yahoo! Pipes Blog によると、

To use the XPATH Fetch Page module, first enter the URL of the site you want. By default, the module will output the DOM elements as items in the preview pane. You can optionally use the “Emit items as string” checkbox if you need the html as a string.

 

2. XPath について

XPathの使い方は、以下を参照

 

3. パイプの例

例えば、Yahoo!モバゲーの日記一覧から、RSS を配信させたいとする。

SnapCrab_NoName_2012-6-27_23-31-48_No-00

作成したパイプは、

全体の構成は下図のとおり。

SnapCrab_NoName_2012-6-29_12-1-22_No-00

以下、作成手順を述べる。

 

4. XPath Fetch Page モジュール

Pipes: Rewire the web にアクセして、Create Pipe ボタンを押す。

最初に、Source > XPath Fetch Page モジュールを配置する。

  1. URL フィールドには、対象となるウェブページの URL を入力する。
  2. Extract using XPath フィールドには、各記事の URL を含んだ記事タイトルを指定する XPath を入力する。
    • //li[@class="lv2-lay"]/a

SnapCrab_NoName_2012-6-27_23-34-25_No-00

 

5. Rename モジュール

作成した XPath Fetch Page モジュールをクリックして選択すると、以下のような出力がされる。

SnapCrab_NoName_2012-6-28_14-45-9_No-00

href は、記事の URL を表す。 content は、記事のタイトルを表す。

この出力を RSS に変換するには、

  • href ⇒ link
  • content ⇒ title

のように変更したい。

RSS(RDF Site Summary)によるサイト情報の要約と公開 によると、

SS 1.0はサイトの情報を簡便に伝えられるよう、次のような簡単な基本構造を持ちます。

http://www.kanzaki.com/docs/sw/rss.html#construct

RSS(RDF Site Summary)によるサイト情報の要約と公開 via kwout

出力を変換するために、Operator > Rename モジュールを配置し、XPath Fetch Page の出力を入力とする。

Rename モジュールのフィールドには、以下のように設定する。

  • item.href ⇒ Rename, link
  • item.content ⇒ Rename, title

SnapCrab_NoName_2012-6-29_1-56-4_No-00

item.href, item.content という値は、Rename モジュールへ入力する前の XPath Fetch Page の出力を見て判断する。(フィールドには、href, content を入力すると、自動的に item. が付けられる。)

Rename モジュールを通すことにより、以下のような出力となる。

SnapCrab_NoName_2012-6-29_2-4-23_No-00

 

6. Loop モジュール

ここまでの操作により、各記事の URL が取得できた。次に、この情報を利用して、記事の内容を取得する。

方法は、Oprator > Loop モジュールを使い、取得した各 URL ごとに、再び Source > XPath Fetch Page モジュールで内容を取得する。

パイプの配置は、Loop モジュールの中に XPath Fetch Page モジュールを置く。

XPath Fetch Page モジュールに設定する値は、

  • URL: item.link
  • Extract using XPath: //li[@class="blk4-lay"]
  • Emit item as String にチェックをつける。

Loop モジュールの出力は、RSS の構造に沿うために、

  • assgin all results to item.description

と設定した。

SnapCrab_NoName_2012-6-29_2-6-57_No-00

これにより、Loop モジュールの出力が以下のようになる。

SnapCrab_NoName_2012-6-29_2-19-18_No-00

後は、このパイプを保存し、実行する。

Yahoo! Pipes の XPath Fetch Page でフィードを出力してないサイトからRSS を配信する (2) つづく…

2011年9月12日月曜日

Google Bookmarks を RSS で取得

XML で取得

Google Bookmarks を XML で取得するには、

特定の単語を検索したい場合は、以下を追加。

&q=単語

例えば、`hoge’ を対象にしたい場合、

( cf. Google ブックマークを XML で取得 )

 

問題点

上記のデータ取得方法は、公式なやり方ではない。そのためか、単語を検索した結果が、以前とは変わってしまったようだ。

以前は、以下に示す内容だった。

<xml_api_reply version="1">
	<bookmarks>
		<bookmark>
			<title></title>
			<url></url>
			<timestamp></timestamp>
			<id></id>
			<labels>
				<label></label>
			</labels>
		</bookmark>

これが次のようになった。

<xml_api_reply version="1">
	<bookmarks>
		<title></title>
		<url></url>
		<timestamp></timestamp>
		<id></id>
		<labels>
			<label></label>
		</labels>

比較するとわかるように、<bookmark> タグがなくなった。これにより、各ブックマークの境界が不明となった。

 

RSS で取得

これでは困るので、XML での取得をやめ、RSS で取得することに変更。

ソースを見たい場合は、Firefox ボタン > Web 開発 > ページのソースを表示。

特定の単語を検索したい場合は、

この結果は、ブックマークの境界として <item> が使われている。

<?xml version="1.0" encoding="UTF-8"?>
	<rss version="2.0" xmlns:smh="http://www.google.com/history/" xmlns:recommend="http://www.google.com/history/items">
		<channel>
			<title>Google ブックマーク</title>
			<link>http://www.google.com/bookmarks/</link>
			<description>Google - ブックマーク RSS フィード</description>
			<smh:signature></smh:signature>
			<smh:homepage_label></smh:homepage_label>
			<item>
				<title></title>
				<link></link>
				<pubDate></pubDate>
				<category></category>
				<description></description>
				<guid isPermaLink="false"></guid>
				<smh:bkmk></smh:bkmk>
				<smh:bkmk_id></smh:bkmk_id>
				<smh:bkmk_title></smh:bkmk_title>
				<smh:bkmk_label></smh:bkmk_label>
			</item>

このデータを元に、DOM に変換したい場合は、「JavaScript で XML を読み込む」を参照。

 

関連記事

2011年7月9日土曜日

Youtube でユーザの「お気に入り」「再生リスト」のフィードを取得

Youtube において、ユーザのお気に入りを Goolge Reader に登録したい。

CropperCapture[236]

 

「お気に入り」のフィード

特定のユーザの「お気に入り」のフィードを取得するには、

http://gdata.youtube.com/feeds/api/users/username/favorites

上記の URL の username は、ユーザーの YouTube ユーザー名に置き換えてください。

(デベロッパー ガイド: Data API プロトコル -ユーザーの再生リストの取得 より)

 

「再生リスト」のフィード

「再生リスト」に登録されたフィードは別にある。取得するには、

http://gdata.youtube.com/feeds/api/users/username/playlists

上記の URL の username は、ユーザーの YouTube ユーザー名に置き換えてください。

(ユーザーの再生リストの取得 より)

 

個別「再生リスト」のフィード

個々の再生リストを開き、その URL を見ると、

http://www.youtube.com/view_play_list?p=ランダムな文字列

末尾にランダムな文字列があるのを確認できる。これを元にして、以下の URL にアクセスする。ただし、ここではユーザ名がないことに注意。

http://gdata.youtube.com/feeds/api/playlists/ランダムな文字列

(cf. 単独の再生リストの取得gd:feedLink の href 属性)

 

参考サイト

2011年4月26日火曜日

ブログに対する「つぶやき」を Topsy を利用してフィードリーダーでチェック

1. ブログに対する Twitter の反応を見たい

自分のブログに対する Twitter のつぶやきをチェックしたい。

ただし、自分自身のツイートは除きたい。

 

2. Topsy で検索し、フィードを購読する

Topsy で、フィールドに以下の形式で入力して検索。

site:ドメイン名 –from:除きたいTwitter名

例えば、このブログに対するツイートで、自分 (jutememo) 以外を表示するには、

site:jutememo.blogspot.com -from:jutememo

左上にある

最新の検索結果

を選択。

画面右に表示される

rss 検索結果を購読

をクリックして、フィードリーダーに登録する。

http://topsy.com/s?allow_lang=ja&q=site%3Ajutememo.blogspot.com+-from%3Ajutememo

Topsy via kwout

2009年9月20日日曜日

JavaScript で外部サイトのフィードを取得 - Google AJAX Feed API を利用

0. 目次

  1. 公式 HP と、外部ブログを組み合わせる事例が多い
  2. ユーザが HP を更新したいなら、CMS を利用するのがいい
  3. 外部ブログのフィードを取得する方法
  4. Google AJAX API
  5. Google AJAX Feed API
  6. フィードを取得するためのソースコード

 

1. 公式 HP と、外部ブログを組み合わせる事例が多い

見かけよりも、サイトの内容が大事

090918-006企業サイトを見ていると、公式 HP とは別に、ブログは外部サービスを利用している例を見かける。

「金かけてるのに、自社の紹介とブログが別って、何で?」

CMS を使って、一体感のあるデザインにした方がいいと思うけれど、別々の例をいくつか見ていたら、次第に慣れてきた。

「それでも、まぁいいかぁ~」

という気になる。

Flash を中心に構築しているサイトであれば、ブログを組み込むのは手間がかかるだろう。

Twitter の興隆っぷりを見ていると、発信する媒体の統一性など、受信してくれる価値に比べたら微々たるもの。情報が文脈から切り離され、情報としてのみ価値を有し、デザインは二の次というのは潔い。RSS フィードを受信することが習慣化するにつれ、ますますそういう意識に陥る。見かけよりも中身が大事。

 

されど見かけも重要

しかし、デザインに全体的な統一感があると、サイトをはじめて見る人にしてみれば、内容の理解がしやすい。まとまって見える分記憶に残りやすい。

「ちゃんとしたところだな」

という感じを演出できる。

以前、それほど PC に詳しくない人から、

「ブログはホームページではないですよね?」

と言われたことがある。最初、その意味がわからなかった。できあいのシステムを利用したブログと、所謂 HP 作成用のソフトで作ったものとは、別のものだと認識しているようだ。感覚として、そこに境界を感じるらしい。

そういう認識を持つ人にとって、ブログでサイトを作って

「これホームページにしておきませんか?」

というのは通じない。体面が大事な企業の HP が、Blogger で何のカスタマイズもされていなかったら、

「ここ大丈夫か?」

と思ってしまう感覚は理解できる。人は、見かけで判断することもあると。

追記 (2010.5.3) : ダダ漏れ東京女子流 のインタビューが配信されているのを見た。そのグループのサイトを見たら、一目で色々なサービスを利用していることがわかるデザインだった。公式サイトは看板で、個別の内容は各々のサービスを参照という形が、最近益々不自然でない印象を受ける。

 

2. ユーザが HP を更新したいなら、CMS を利用するのがいい

年間少しのお金を出せば、ドメインとサーバスペースを取得できる。できあいのブログが嫌なら、CMS をインストールすれば、快適な環境が得らえる。

しかし、既にプロバイダーと契約していると、容量が少ないながら無料でホームページ用のスペースを持っていることが多い。既にその場に HP を作っている場合、

「アドレスを変えたくないし、無料のスペースがあるのでこれ以上はお金をかけたくない。」

と考える人がいる。そういう心情も理解できなくはない。しかし、加えて

「でも、ブログのように自分で HP の内容を更新したい。」

となると、ちょっと悩んでしまう。 (+_+) 

サーバの仕様によっては CGI が使えるので、CMS で置き換えることもできる。しかし、無料の場合、制約が多くて無理なことも多い。もし、Perl が使えるなら、シンプルで軽そうな blosxom は良さげ。これでも処理が重たく感じられるようなサーバなら、別の手を考えるしかない。

 

3. 外部ブログのフィードを取得する方法

HP にとって、アドレスは昔ほど意味を持たなくなっている。単語を検索して、辿りつくのが普通。

であるなら、既存の HP は潰して、別の URL へリダイレクトさせるだけの役割を持たせればいい。しかし、今あるものは、それはそれで活用したい場合、どうしよう?

苦肉の策として、日々更新したい内容は、外部のブログで更新。そのフィードを、スクレイピングして既存のホームページに表示する。

しかし、制約があって、サーバに RSS を取得するライブラリをインストールして利用する方法がわからなかったら、どうしよう?

JavaScript: 外部RSS読み込み by “Google Ajax Feeds API” | t.p.fields - web+tech info  によると、

とあるお仕事でJavaScriptを用いて外部RSSを読み込む作業をすることになった。…

JavaScriptでのクロスドメイン処理は難しいので、”Google Ajax Feeds API“を使わせてもらうことにした。

“Google Ajax Feeds API”は、かの有名なGoogleが提供してくれる、RSS/Atomなどの各種フィードを取得するためのJavaScript API。

なるほど、これを使って外部ブログのフィードを読み込み HP に表示すればいい訳か。

そこで、以下の図のような構成を想定。

  1. HP には、トップページに日々更新した内容を表示。
  2. レイアウトは 2段組で、左側にはブログのタイトルの一覧を表示し、右側にはその内容を配置。
  3. ブログの内容は、外部ブログからまるごと取得して表示。
  4. 内容の右下の「前の投稿」のリンクは、トップページに表示した記事よりも前の投稿へのリンク。このリンクにより外部ブログへ飛ぶ。

090918-005

これで、既存の HP はそのままで、ブログを使ってユーザが更新できる。ブラウザの JavaScript が有効であれば、見かけそのままで、HP のアドレスを変更する必要もない。かなり強引な方法だけれど。。 ^^;

 

4. Google AJAX API

Home Page - Google AJAX API によると、

Google AJAX API では、リッチでダイナミックなウェブサイトを JavaScript と HTML だけで実装できます。JavaScript コードを数行追加するだけで、自分のサイトに地図動的な検索ボックスを追加したり、フィードをダウンロードできます。

この中に Google AJAX Feed API がある。

デベロッパー ガイド - Google AJAX API もチェック。共通の枠組みについて説明がされている。

 

5. Google AJAX Feed API

Google AJAX Feed API によると、

AJAX Feed API を使用すると、JavaScript だけを使用して、公開されている Atom フィードや RSS フィードをダウンロードできるので、自分のコンテンツや Google Maps API などの他の API に、フィードを簡単にマッシュアップできます。

早速利用方法から見ていく。

AJAX API キーの使用 によると、

この API を使用するためにキーは必要ありません。アプリケーションやサイトでキーを使用するかどうかは、完全に任意です

今回は AJAX API キーは利用しない。

この API が扱いやすそうなのは、JSON 形式と XML 形式の結果 によると、

AJAX Feed API の JSON 形式は、オリジナルのフィードを簡素化し、標準化したものです。これにより Atom および RSS の titledescriptionsummary などの属性が共通の JSON プロパティにマッピングされるので、Atom フィードにも RSS フィードも統一的に利用できます。

必要な情報は JSON 形式の結果 を見ればよい。

予め承知しておくことは、

AJAX Feed API は Feedfetcher を使用しているため、API から提供されるフィードのデータが最新ではない場合もあります。Google のフィード クローラ (Feedfetcher) がフィードを取得する頻度は、ほとんどのサイトでは 1 時間に 1 回を超えることはありません。一部の頻繁にアップデートされるサイトに対しては、更新の頻度が高くなります。

(フィードのクロール頻度 より)

外部ブログの投稿がリアルタイムに HP の方に更新されることはない。pubsubhubbub でリアルタイムになるといいのだけれどなぁ。

 

6. フィードを取得するためのソースコード

表示

index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <head>
  <link rel="stylesheet" type="text/css" href ="gajax.css"></link>
  <script type="text/javascript" src="blog.js"></script>
  <script type="text/javascript" src="http://www.google.com/jsapi"></script>
  <script type="text/javascript" src="gajax.js"></script>
 </head>
 <body>
  <!-- フィードのタイトル一覧 -->
  <div id="feedTitle"></div>
  
  <div id="main">
   <!-- フィードの内容 -->
   <div id="feed"></div>
   <!--前の投稿へのリンク -->
   <div id="nextLink"></div>
  </div>
 </body>
</html>

 

gajax.css

基礎編1 フロートを使ってみる を参考に CSS で段組。

#feedTitle { 
 font-size: small;
 float:left;
 padding: 10px;
 width: 30%;
}
#main {
 float:left;
 width: 67%;
}
#nextLink {
 text-align: right;
}
.title { font-size: x-large; }
.content { padding: 20px; }

 

Google AJAX Feed API の利用

gajax.js

はじめての Google AJAX Feed API を元に作成。先ほどのデベロッパー ガイド - Google AJAX API も参考に。

以下のコードは、冒頭の blog オブジェクトで、対象の外部ブログのフィード URL と、1 ページに表示する投稿数、外部ブログの URL を指定。

その他以下を参照。

ブログのエントリーの公開日時の扱いは、Date オブジェクトを生成してから使うことに気をつける。

publishedDate

エントリが公開された日付の、「13 Apr 2007 12:40:07 -0700」という形式の文字列。new Date(entry.date) を使って日付を解析することができます。

(JSON 形式の結果 より)

var blog = { 
 feedurl: "http://jutememo.blogspot.com/feeds/posts/default",
 numOfPost: 7, // 1 ページに表示する投稿数
 url: "http://jutememo.blogspot.com/"
}

// エントリーのタイトルをリンク付きにして div 要素に入れて返す。
function createTitleWithLink(entry, idx){
 var div = document.createElement("div");
 var anchor = document.createElement("a");
 anchor.href = entry.link;
 anchor.setAttribute("name", idx);
 anchor.appendChild(document.createTextNode(entry.title));
 div.className = "title";
 div.appendChild(anchor);
 return div;
}
// エントリーの内容を div 要素に入れて返す。
function createContent(entry){
 var div = document.createElement("div");
 div.innerHTML = entry.content;
 div.className = "content";
 return div;
}
// エントリーのタイトルへのアンカーを作成し、div 要素に入れて返す。
function createFeedTitle(entry, idx){
 var anchor = document.createElement("a");
 var div = document.createElement("div");
 anchor.setAttribute("href", 
  location.protocol + "//" + location.hostname + location.pathname + "#" + idx);
 anchor.appendChild(document.createTextNode(entry.title));
 div.appendChild(anchor);
 return div;
}
// 「前の投稿」を生成
// createURL 関数は blog.js で定義。
function createNextLink(entry){
 var anchor = document.createElement("a");
 anchor.href = createURL(blog.url, blog.numOfPost, new Date(entry.publishedDate));
 anchor.appendChild(document.createTextNode("前の投稿"));
 return anchor;
}
google.load("feeds", "1");
function initialize() {
 var feed = new google.feeds.Feed(blog.feedurl);
 feed.setNumEntries(blog.numOfPost)
 feed.load(function(result) {
  if (!result.error) {
   var divFeedTitle = document.getElementById("feedTitle");
   var divFeed = document.getElementById("feed");
   var divNextLink = document.getElementById("nextLink");
   for (var i = 0; i < result.feed.entries.length; i++) {
    var entry = result.feed.entries[i];
    // フィードのタイトル一覧を生成
    divFeedTitle.appendChild(createFeedTitle(entry, i));
    // フィードのタイトルを生成
    divFeed.appendChild(createTitleWithLink(entry, i));
    // フィードの内容を生成
    divFeed.appendChild(createContent(entry));
   }
   // 前の投稿へのリンクを生成
   divNextLink.appendChild(createNextLink(result.feed.entries[blog.numOfPost-1]));
  }
  });
}
google.setOnLoadCallback(initialize);

 

Blogger における「前の投稿」へのリンク

blog.js

JavaScript で Blogger の「前の投稿」へのリンクを生成 を参照。

// Blogger の場合

// num が一桁の数字のとき先頭に 0 を加えて二桁にする
function padzero(num){
 return ("" + num).length == 1 ? "0" + num : num;
}
function format(date){
 return date.getFullYear() + "-" + 
  padzero(date.getMonth()+1) + "-" + 
  padzero(date.getDate()) +
  encodeURIComponent("T" + padzero(date.getHours()) + ":" + 
   date.getMinutes() + ":" + 
   padzero(date.getSeconds()) + "+") +
  "09:00";
}
function createURL(url, numOfPost, date){
 return url + "search?updated-max=" + format(date) + "&max-results=" + numOfPost;
}

2008年7月3日木曜日

Firefox で RSS リーダー経由で何人サイトを見ているか知る

代表的な RSS リーダ と言えば、Google ReaderLivedoor Reader 。これでどのくらいの数の人がチェックしてるかを見ることにより、サイトがどのくらい注目されているかについての一つの指標が得られそうだ。

 

Google Reader

Mozilla Re-Mix によると、

WebベースのRSSリーダーとして最近人気のGoogle リーダーでは、フィード追加時にそのサイトがどれだけの購読者数を持っているかが表示されますが、Firefox+Gresemonkeyユーザーなら、「Google Reader Subscribers Count」というスクリプトをインストールするだけですぐにその数値を知ることができます。

予め Greasemonkey をインストールしておき、Google Reader Subscribers Count をインストール。画面右下に購読者数が表示される。

080703-001

 

Livedoor Reader

miniturbo.org - LDRカウンタ より

現在見ているページのフィードが、livedoor Reader(LDR)でどれぐらい購読されているか表示するMozilla Firefoxのアドオン(拡張機能)です。ステータスバーに表示されます。

上記サイトより、インストール。画面下に表示される。

080703-002

 

試しに...

4U 080703-003   080703-004
毎日jp 080703-006   080703-007
WIRED VISION 080703-009   080703-008
GIGAZINE 080703-010   080703-011

 

こうやって見ると、サイトによってバラつきがあるなぁ~。