Home > Tags > perl
perl Tag Archive
Yahoo!ブログ検索に WordPress 更新を通知するスクリプト Ping to Y!J-BSC
- 2009-07-08 (水)
- WordPress
Yahoo! ブログ検索になぜか引っかからない我がサイト。
どうやら WordPress で構築されたブログと Yahoo! ブログ検索はいまいち相性が良くないようです。
検索してみると四苦八苦されている方がたくさんいらっしゃって、その中で特に参考になりそうなのが 【まとめ】WordPress を Yahoo! ブログ検索させる方法 その10:トイレのうず/ぼやき というエントリ。
Yahoo! 側の説明にある更新通知先に素直に Ping 送ってもだめなよう*1。
実際には http://api.my.yahoo.co.jp/rss/ping?u=最新記事のURL という形式じゃないとクローラが来てくれないということです。
さて、じゃあ、どうやって更新後にこの URL を叩いてやるか? 手動でやるのはばからしいので、以前 はてなアンテナに WordPress の更新を即通知する | MOMENTS で作成したスクリプトを流用してチェック時に sitemap.xml のタイムスタンプが5分以内だったら該当URLにアクセスしてやればいいやという形で解決。
ヘッダに RSS1.0 のリンクも埋め込んで、スクリプトもとりあえず動いてはいるのですが、実際に検索結果が出るまでは成功したかどうかが分からないのが辛いところですね。しばらくしたら検索してみようっと。
使用した Perl スクリプトは続きを読むの後に。
- Comments: 0
- Trackbacks: 0
Plagger を導入してみる
- 2007-02-27 (火)
- コンピュータ
今さらですが、サーバにPlagger を入れてみました。
Vine3.2はモジュールの導入に往生しますが、ハヤテのごとく!プライスレス の管理人blog Vine Linux に Plagger インストール を参考に、ちまちまとインストールしていったら無事に動きました。
……まぁ、HTTP::Cookies::Mozilla の導入時に、CPAN だとテストでエラーになるので、ソースから強引にインストールしましたが(^^;
で、何をやったのかというと、かにしのぷらねっとを試しに構築してみたり。スタイルシート借り物なので早くデザイン直さないとなぁ。
ま、これはともかく、Planet の構築自体がかなり簡単にできるので、仕事でも情報集めに重宝しそう。
- Comments: 0
- Trackbacks: 0
フレッツスクウェア へのルーティング
- 2007-02-18 (日)
- コンピュータ
NTT東日本フレッツ公式:フレッツ・スクウェア|接続方法|フレッツ・スクウェア接続方法(ADSL/Bフレッツ、ブロードバンドルータご利用のお客さま)で公開されているフレッツスクウェアのIPアドレス帯の情報を元に、YAMAHA RTシリーズ用の静的ルーティングコマンドを標準出力するスクリプト。
#!/usr/bin/perl
use strict;
use NetAddr::IP;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->agent("MyApp/0.1 ");
my $req = HTTP::Request->new(GET => 'http://routing.flets/routing.html');
my $res = $ua->request($req);
my @routing;
if ($res->is_success) {
@routing = split/\n/,$res->content;
}
else {
print $res->status_line, "\n";
exit;
}
foreach (@routing) {
if (/^Route[\d]+=Add,([\d]+\.[\d]+\.[\d]+\.[\d]+),([\d]+\.[\d]+\.[\d]+\.[\d]+),,1$/) {
my $ip = new NetAddr::IP($1,$2);
print "ip route ",$ip," gateway pp 2\n";
}
}
exit;
pp 2をフレッツスクウェアへの接続に利用している場合です。
あとは、
dns server select 100002 pp 2 any .flets dns server select 500001 外部DNSサーバ any . restrict pp 1
としてやると、URLに応じてDNSを切り替えてインターネットと、フレッツスクウェアに同時にアクセスできますとさ。YAMAHAヤマハブロードバンドルーターpp select 9あたりが参考になります。
- Comments: 0
- Trackbacks: 0
Net::Amazon のバージョンを上げてみた
CPANを覗いてみたらNet::Amazonのバージョンが0.36に上がっていたので、ローカル環境にインストールしてあるモジュールをアップデートしてみました。
数ヶ月前から、Amazonの書籍データからReleaseDateが取れていなかったのですが、今回のバージョンアップでは取れるようになりました。この辺はAmazonの仕様変更の影響なのかなぁ。
既存のスクリプトでは検索するカテゴリをbooks-jpのようにロケールを追加して指定していたのですが、本バージョンでは逆にロケールが付いているとエラーになって検索できなくなりました。もともとロケールはスクリプト内で指定してあるので、こっちが本来想定されていた動作なのかもしれませんが。
もう一つ、画像のURLを取得するためのオブジェクトが、説明ではImageUrlLarge() ImageUrlMedium() ImageUrlSmall()となっているのに、実際はLargeImageUrl() MediumImageUrl() SmallImageUrl()に変更になっているっぽかったり。あ、これはソース読めばいいのか。
まぁ、ともかくこれで今まで取れなかった、「データ上は存在するのに取得できない発売日」も正常に取得できるようになり、また楽ができるようになったというわけでなかなかいい感じです。さらに便利に使えるようになりたいものです。
- Comments: 0
- Trackbacks: 0
中継君の古いキャッシュが削除されないバグの修正
Amazon Searchの負荷軽減に使用している中継君 Ver1.4.3で、Ver.1.3.0から利用可能になった保存キャッシュの上限設定がうまく動かなかった症状を修正しました。
ソースを見てみると、実際に生成されるキャッシュのファイルの拡張子*1と、削除しようとするキャッシュのファイルの拡張子*2が異なっているため、古いキャッシュが削除されないまま、結果新しいキャッシュが生成されないようになってしまっています。
とりあえず、簡単な書き換えでさくっと対応。
$ diff -ur jc.cgi.org jc.cgi
--- jc.cgi.org 2006-12-20 20:56:52.000000000 +0900
+++ jc.cgi 2006-12-20 20:59:40.000000000 +0900
@@ -142,8 +142,10 @@
} else {
$ch = $erace_cf;
- $cache = 'cache/' . $ch . '.js';
- unlink($cache);
+ my @cache;
+ push @cache , 'cache/' . $ch . '.dat';
+ push @cache , 'cache/' . $ch . '.typ';
+ unlink(@cache);
# ファイルリスト更新
if ( !open (OLD,"cache/filelist") ) {
しばらく動かしてみた感じでは、古いデータはしっかりと削除され、本来期待される動作になったと思います。
- Comments: 2
- Trackbacks: 0
Home > Tags > perl
- 応援中
- サイト内検索
- フィード
- メタ情報
- 57 queries.
- 7.258 seconds.
