Home > Perl Archive

[ 1  2  3  4  5  6  7  8  9  10  11 >> ]

Perl Archive

WWW::Mechanize::Plugin::Web::Scraper

気が向いた時に追っかけるための備忘録

楽しようと思って WWW::Mechanize::Plugin::Web::Scraper 試しに使ってみたが、なんか scrape が空っぽな例があって、追っかけるのも面倒なので、WWW::Mechanize と Web::Scraper で分業して解決

それにしても、何度使ってもどっちも神だな。これのおかげで「楽するためなら死んでもいい」教団の人たちが命を散らさずにすんでいるのだな

Net::Amazon::S3 でたくさんのアイテム

Net::Amazon::S3 は Perl で Amazon S3 周りをホゲホゲする時によく使うと思うんだけど、Net::Amazon::S3::Client を使っている時に、どうもバケツ内の全てのアイテムを取得できない

で、原因はというと Net::Amazon::S3::Request::ListBucket で max_keys の default が 1000 になってるからっぽくて、普通はひとつのバケツにそんなたくさんのアイテムいれないので気づいてなかった、と

でも、Amazon S3 でログ保存するようにすると数日で 1000 ファイル以上になるので、どっかで max_keys を渡せばいいんでしょ? と思ったんだけど面倒だったので Net::Amazon::S3::Client を使わないことにして解決した

。。。。という将来の自分宛のメモ

MT-Plugin-Mediawiki 作ってみた

MTQ で「MediaWiki記法が可能となるプラグイン」という要望があがっているのを見かけたので、作ってみた。。。が、Mediawiki 記法使ったことないんだよなぁ

  • Text::MediawikiFormat に渡してるだけなんで、MT に合わせてなんかした方がよいかもしれない
  • ツールバーの JavaScript はまだいじってない
  • テストしてない (オイ

とりあえず置いときます。テストしたら MTQ の方にもコメントしてみよう
自分では使う予定ないので、誰も使わなさそうなら、放置の方向です

[ MT-Plugin-Mediawiki_20100630.tar.gz ]

追記:

  • ちょっとテストしてみたけど、テキスト周りの書式はわりかし大丈夫そう
  • 画像周りはやっぱりなんか考えなあかんな

さらに追記:

  • JavaScript 部分いじってて気づいたんだが、Text::MediaWiki はそのままだとここに書いてある通りにはならないな。もうちょっと時間かけるか

AppStore のレビューとか順位とか

仕事でちょっと作ったスクリプトが、一年を経過しエライことになってきて、メンテ不能になってきた。XML からデタラメに引っこ抜いてるので頻繁に色々修正せなあかんしね
で、せめてこんな感じで使えるようにしたいなぁ、と

use AppStore::Scraper;
use Data::Dumper;

my $obj = AppStore::Scraper->new(wait => 5);
my $info = $obj->app_info(
                          app => ['322894440','331069023','331225704'],
                          store => ['jp','us'],
                          lang => 9
                         );

warn Dumper $info;

仕事中にこんなことやってるのも時間もったいないので、ひとまず家でガワだけ作った。中身は整理しきれてないけど、動いているので、ベタッと貼っとく。長いけど
動いているだけなので、誰かキレイに修正して ><

2010/06/18: bug fix しましたよ
2010/06/23: wait 秒数指定できるようにしたよ

Continue reading

MT::Plugin::HikiDoc アップデート

仕事で MT5 使ったので、MT5.x での動作確認ついでに、SyntaxHighlighter 同梱してアップデートした。イマドキ、これくらいは JavaScript にやってもらう方がスマートだよね

ダウンロードはこちらから
MT::Plugin::HikiDoc の説明はこちら

以下、Emacs 風なサンプル

package MT::Plugin::HikiDoc;

use strict;

use MT;
use base qw( MT::Plugin );
use Data::Dumper;
our $VERSION = 0.1;
our $_INITIALIZED = 0;
our $_PREFIX = 'hikidoc_plugin_';

use File::Spec;

my $plugin = __PACKAGE__->new({
                               id => 'HikiDoc', 
                               key => 'HikiDoc',
                               name => 'HikiDoc',
                               description => '<MT_TRANS phrase="A text-to-HTML formatting plugin (HikiDoc Style)">',
                               author_name => '<MT_TRANS phrase="KAWABATA Kazumichi">',
                               author_link => 'http://haro.jp/',
                               version => $VERSION,
                               l10n_class => 'HikiDoc::L10N',
                              });
MT->add_plugin($plugin); 

コード書いてる時間よりもサイト更新してる時間の方が長くてイヤんなって、MT 使うのやめそうになったのは気の迷い

ハッシュのアレイとか

たまに Perl の話
ハッシュのリファレンスの中身がさらにリファレンスだったりしてコピーしたくてもめんどいよ、って時はどうするべ? と思ったら Clone とかあった。どっかでなんかの依存関係でみたなぁ、程度にしか知らんかったが、テストとかする時に便利かな

use Clone qw(clone);

my $copy = clone($org_hash);

以上

WWW::Mechanize は相変わらず便利

たまには Perl ネタでも書いてみる

use strict;
use warnings;
use utf8;

use WWW::Mechanize;
{
    my $m = WWW::Mechanize->new();
    $m->agent_alias('Mac Mozilla');

#    warn "start";
    $m->get( 'http://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary' );

#    warn "login page";
    $m->field('email' => 'email-address');
    $m->field('create' => '0');
    $m->field('password' => 'password');

#    warn "submit";
    $m->click_button( input => $m->current_form()->find_input(undef, 'image') );
    my $report = $m->content();
}

exit;

Amazon の従量課金が気になるあなたは、こんな感じで自動で持ってくるといいよ

まぁ、あれだ
動いているもの、採用されているものを無闇矢鱈と作り直すのは、運用面ではどうかと思うし、自分勝手に色んなライブラリどんどん採用するのもどうかと思うが、これくらいはよかろう

Munin は超楽

何も考えず超ラクチンでグラフ化
ちょっと何かをしたくなった時どうなのかは知らないが、Perl なのでなんとかなりそうな気はする

IP address を元に、どこの国からのアクセスか推測

。。。ていうようなことは、Google Analytics などにお任せすればよいんだけれども、そうも言ってられない場合もあって、そういう時はこのあたりから最新の情報もってきて、調べたい IP address がどの範囲か計算して。。。。っていうか、Perl なら IP::Country 使え、と

use IP::Country::Fast;

my $r = IP::Country::Fast->new;
print $r->inet_atocc('208.67.222.222'); # US
print $r->inet_atocc('haro.jp'); # JP

今さらだけどね

ちなみに、Leopard だと /Library/Perl/5.8.8/IP/Country/Fast/(cc|ip).gif あたりにあるのが元データなり

MT::Plugin::HikiDoc アップデート

ニコニコ動画が外部プレイヤーに対応したので、nicovideo プラグインをそれに合わせて変更

ダウンロードはこちらから
MT::Plugin::HikiDoc の説明はこちら

追記
最初に外部プレイヤー出た時、どこでも使えるようになったら公開する的なことを言うてた FSWiki 用のプラグインはお蔵入り。多分誰かが作ってる

[ 1  2  3  4  5  6  7  8  9  10  11 >> ]

Home > Perl Archive

Links
Feeds

Return to page top