2005年01月21日 [436]
筆者:こうめい 2005年01月21日 | コメント(0件) | TrackBack(0件) | [Edit]

VERにタイトル変換機能つけました はてなbookmarkに登録する

昨年5月に開設したVisited Entry Ranking -Weblog記事アクセスランキング-(概要はこちら)の改良を昨年後半からずっとやっていたのですが、ちょっとだけ改良が済んだので公開します。

なお、VERに関してはいまでも自由に参加可能です。まぁ参加というほどでもありませんが...
たくさんあるブログサイトランキングとは違って、記事ページごとのランキングですので一味違った面白さがあると思います。画像ファイルを表示させるだけですのでお試しください。(説明はこちら)

というのは、アクセスしていただくとわかるのですが、リストに表示されるリンク先の名がタイトルになっているものをアドレスがそのまま表示されているものがあります。
これは自分が「ここ最近よく表示されるからタイトル表記にしよう」と手動でアドレスtoタイトル変換リストに登録していたからです。
で、この作業の手間を何とか少なくする方法を考えていたのですが、ようやく少しだけ動くようになったのでテストを兼ねて実装しました。

今回実装したのはみなさんが記事を投稿する時に、トラックバックにpingアドレスを入力してもらうと、自動的に変換リストに登録されるという仕組み。

たったそれだけの仕組みなのになかなか実装できなかったのは、悩み悩んだのが自分の中でのpingサーバーへの送信とトラックバック送信との勘違いがありました。

pingサーバーは「新しい投稿があった」場合にサーバーに通知し、サーバーがインデックスのファイルを取りに来て更新するような仕組みになっている(らしい)のですが、ウチの場合、インデックスであるRDFファイルが必要なわけではなく、ただ単に記事ファイルのタイトルとアドレスがわかればいいわけです。
ところが自分はpingサーバーには、投稿するたびに記事に関する全情報を送信してくるものだと思い込んでいたので、pingを必死に受信する方法を公開直後から年末にかけて半年近くも試行錯誤していたわけです。
年末にやっとpingサーバーが完動したものの、受信しているのはブログサイトのタイトルとトップのアドレス。そこまでいって年越し。

確かに、更新pingを受け取ってRDFファイルを取りに行って云々...という処理が間違いないわけなのですが、そこまで大げさなシステムはない(笑)ので、もっと簡単な方法を探していました。だいたい格納ファイルだってMySLQではなくテキストファイルなんですから(爆)

そんなこんなと悪戦苦闘をしていた昨晩、ふっといつも参考に見ていたサイトでこんな一文を発見しました。
「トラックバックはPOSTとGETの両方あったが、GETが廃止されPOSTに一本化される(現在はすでにされています)」という内容でした。

「ん?POSTに一本化?」

ここで閃いたんです。ここで気づくなんて奇跡です。
POSTで送信されるということは、素人考えでいうと「普通に掲示板に投稿するのと同じ送信方法で送られてくる」わけですよ。

じゃぁ、それを掲示板と同じようにデータファイルに書き込みできればいいわけじゃん!!

うわぁー、めっちゃ単純な仕組みでよかったのに全く気づかなかった。
というわけで、さっそくトラックバックで送信されてくるデータを受信してみると...

できたー(ToT)

というわけで、さっそく実装してみました。
トラックバックに次のアドレスを入れて投稿してください。
http://ver.narupara.com/ping.cgi

なお、現在まだこんなにエラーあります。これもおいおい修正できるものは修正します。

・送信側にトラックバックエラーが出る(MTとか)
・サービスによってタイトルが文字化けする 
・きちんと送信されない(またはサーバーが受信できない)
・動的ページの場合はきちんとアドレスを取得できない
・トラックバックに変換用サーバーのアドレスを毎回入力してもらう必要がある 
・更新通知サーバーに登録されても当然無視されます

結局ほとんど不完全な状態ということです(^^;
なお、今までのVERの機能に関しては全く不具合はでません。

たいへんお世話になりましたトラックバック技術仕様書さんをかなり参考にさせていただきました。


前後の記事も読んでってくださいな
ソフト2社が提携でDVD作成がより簡略化に
密かにささやかれてしまう「平畠重病説」
  ex_120_60