blog.ishinao.net

810月/04

似た話題の日プラグイン (17:18)

Estraierを使った似た話題の日プラグインをrubyにポーティングしたら公開するとか言っておきつつも、いろいろ後回しにしすぎてやる機会がないんで、PHP版(estrelate.php)をそのまま公開しておきます。ライセンスはGPLってことで。やっていることは単純なんで、rubyがわかる人ならば一呼吸で移植できることでしょう。ただ、tDiary側の設定に依存してキャッシュファイルのパスとかが変わってくるんで、その辺りの整合性をきちんと作るのは結構面倒かも。ほかのプラグインの@confとかを参照して動く必要が出てくるし。というか、tDiaryとestraierの連携に関しても、まだ正式なやり方ってのは存在していないっけ?

#!/usr/bin/php
<?php
//estxviewのパス。maxを変えると検索個数が変わる
define('ESTXVIEW', '/usr/local/bin/estxview -nk -nt -max 5');
//転置インデックスのパス
define('INDEX', '/home/tdiary/html/casket');
//転置インデックスに含まれるHTMLのパス
define('DOCROOTPATH', '/home/tdiary/var/data/cache/html');
//tDiaryのURL
define('TDIARY_URL', 'http://tdiary.ishinao.net/');
main();
function main() {
global $argv;
$targetdate = $argv[1];	//'YYYYMMDD'形式で対象の日付を指定
$docId = getDocId($targetdate);
if (!isset($docId)) {return;}
$dates = getRelatedDates($docId);
array_shift($dates);	//最初の1個は$targetdate自体が返るので除去
$result = '似た話題の日: '."\n";
foreach ($dates as $date) {
$result .= '<a href="'.TDIARY_URL.date('Ymd', $date).'.html">'.date('Y/m/d', $date).'</a>'."\n";
}
echo $result;
}
//document idに似た文書(日付)を取得
function getRelatedDates($docId) {
$cmd = ESTXVIEW.' -rel '.INDEX.' '.$docId;
$result = shell_exec($cmd);
if (preg_match_all('/<uri>.*\/([0-9]{4}\/[0-9]{4})\.html<\/uri>/', $result, $matches)) {
$files = $matches[1];
$dates = array();
foreach ($files as $file) {
list($year, $md) = split('/', $file);
$dates[] = strtotime($year.'/'.substr($md, 0, 2).'/'.substr($md, 2));
}
return $dates;
}
return NULL;
}
//HTMLファイル名からdocument idを取得
function getDocId($date) {
$datestr = date('Y/md', strtotime($date));
$cmd = ESTXVIEW.' -uri '.INDEX.' '.DOCROOTPATH.'/'.$datestr.'.html';
$result = shell_exec($cmd);
if (preg_match('/<document id="([0-9]+)">/', $result, $matches)) {
$docId = $matches[1];
return $docId;
}
return NULL;
}
?>

ちなみにこのスクリプトを呼び出すestrelate.rbの方では、

add_body_enter_proc do |date|
`/home/tdiary/bin/estrelate.php #{date.strftime('%Y%m%d')}`
end

ってしてるだけね。

このエントリーを含むはてなブックマークはてなブックマーク - 似た話題の日プラグイン (17:18) Share on Tumblr このエントリをつぶやくこのWebページのtweets
Filed under: 日記 No Comments
810月/04

鈴鹿GP金曜フリー走行 (15:09)

なんか雨(台風)でろくに走れてないらしいな。今日のセッションは一応タイムを出しただけ程度で終わったみたいだ。しかも明日にかけてさらに雨が強くなるんで、下手したら予選は中止で、今日のタイムでグリッドが決まるかも。予報によれば日曜には晴れるらしいけど、なんかぐだぐだな展開になりそうだな。そのぐだぐだな展開がBARに有利に働くといいなー。

日本GPグリッドは前戦の結果で?

という説もあるんだとか。こっちの方がBARにはいいな。

Japanese GP in doubt?

こっちの説だと、明日予選できない場合は日曜午前に予選になるとか。ところで台風22号って「Tropical Storm Number 22」なの?

このエントリーを含むはてなブックマークはてなブックマーク - 鈴鹿GP金曜フリー走行 (15:09) Share on Tumblr このエントリをつぶやくこのWebページのtweets
Filed under: 日記 No Comments