December 3, 2014

[シェル芸] 簡易ブックマークアプリを作った

シェル芸の習作として簡単なブックマークアプリを作った.

* [nagizero/bookmark - Github](https://github.com/nagizero/bookmark)
* [どうせ読まないブックマーク](http://b.503.mydns.jp/)

何これ

「あとで読む」ならぬ「どうせ読まない」であろうページをブックマークするアプリ.デフォルトでは直近 7 日間に登録したページが登録時刻の新しい順にリストされる.それ以前に登録されたページについては,個別には表示されず合計件数のみが表示される.

使い方

ブックマーク保存用ディレクトリの作成

ページ情報(タイトルおよび URL)を保存するためのディレクトリを作成する.このディレクトリに,ブックマーク 1 件につき 1 つのファイルが保存される.ファイル名は登録時刻を 14 桁の文字列にしたもの (yyyymmddHHMMSS) となる.このファイルにはページタイトルと URL が格納される.

% mkdir articles

ページ登録

misc/bookmark コマンドに URL を渡せばよい.ページタイトルは自動で取得される(無題のページについては No title となる).指定したページにアクセスできなかった場合にはエラーが返り登録されない.

% bookmark http://foo.bar/

nginx の設定サンプル

CGI を動かすために fcgiwrap を用いる.また,スクリプトやテンプレートが入っている misc ディレクトリへのアクセスを禁止する.

server {
    listen      80;
    server_name b.503.mydns.jp;

    location / {
        root    /path/to/dir;
        index   index.cgi;
    }

    location ~ \.cgi$ {
        fastcgi_pass    unix:/var/run/fcgiwrap/fcgiwrap.socket;
        fastcgi_param   SCRIPT_FILENAME /path/to/dir$fastcgi_script_name;
        fastcgi_param   PATH_INFO $fastcgi_script_name;
        include         fastcgi_params; # include extra FCGI params
    }

    location /misc/ {
        deny  all;
    }
}

終わりに

自ら調べて辿り着いた情報からは得るものが多いが,偶然目に入った情報の場合はいたずらに時間だけを消費することが少なくない.そのため,このアプリには Twitter や RSS 等で流れてきたような,いわゆる受け身の姿勢で得られたページを登録していく予定である.と書いたところで, Twitter や各種 RSS 等を監視して,出現した URL を自動で登録していくようにすれば面白いかもしれないと思った.

参考文献