DEVELOPMENTOR*LEARNING RESOURCE LAB.

ソフトウェア開発現場の視点からソフトウェアと開発者の価値を高める「ホットな何か」をお届けします。(休止)

あなたがブックマークしたページに言及したブログを探せます

2006年12月13日 | Web 2.0

del.icio.usのブックマークに言及しているブログをBLOGRANGER APIで検索する」の続きです。あなたやお好きなdel.icio.us userを指定できるように改良してみました。↓こんな感じです。


View example

次のとおり、「ranger.cgi?」に続けてdel.icio.us userを指定します。ここでは「developmentor」を指定しています。なお、省略したり、書式に誤りがあるときは「developmentor」になります。

http://developmentor.lrlab.to/delicious/blogranger.cgi?developmentor

次のようなCGI/perlスクリプトで実現しています。JavaScritpコード中でquery_stringを取り出す方法を使って、JavaScriptコードのみで完結してもよかったのですが、なんとなく脆弱な印象があったのでCGI/perlという形にしました。

#!/usr/bin/perl
#!perl
## 
## blogranger.cgi
##
## Copyright(C) 2006 DEVELOPMENTORLEARNING RESOURCE LAB.
## http://blog.goo.ne.jp/developmentor/
##
## This code cannot be redistributed without
## permission from blog.goo.ne.jp/developmentor/
##
## v1.00 2006/12/13 00:00:00 
## 
use strict;
use CGI qw(:standard);
$CGI::POST_MAX=1024*1024*1; #1MB
use CGI::Carp qw(fatalsToBrowser);

##
my $kanjicode = 'utf8';
my $charset = 'UTF-8';
my $dir_tmpl = '.';

##
&main;
exit;

##
sub main {
  my $user = param('keywords');
  $user = 'developmentor' if $user !~ /^[a-z0-9_.]+$/;
  my $html = &load_template('blogranger',
    user => $user
  );
  print CGI::header(
    -type => 'text/html', -charset => $charset
  );
  print &kanjicode($html, $kanjicode);
}

##
sub load_template {
  my ($name, %param) = @_;
use HTML::Template;
  my $template = new HTML::Template(
    filename => "$dir_tmpl/$name.tmpl", die_on_bad_params => 0, global_vars => 1,
  );
  $template->param(
    %param,
   );
   return $template->output;
}

##
sub kanjicode {
  my ($textref, $kanjicode) = @_;
use Jcode;
  &Jcode::convert($textref, $kanjicode);
  return $$textref;
}

"True Value";

HTMLテンプレートファイルが見たい方は、次のアドレスからどうぞ。

http://developmentor.lrlab.to/delicious/blogranger.tmpl