ホーム » 未分類 (ページ 25)
「未分類」カテゴリーアーカイブ
Twitterまとめ記事アップ処理
Twitterにまとめ記事を上げる処理は、以下のとおり。
#!/usr/bin/perl
require "mimew.pl" ;
use Jcode ;
use XML::TreePP ;
use XML::FeedPP ;
use POSIX qw( strftime ) ;
use HTML::Entities ;
# Twitterの設定
my $twitter_rss = "http://twitter.com/statuses/user_timeline/<フィードの番号>.rss" ;
my $twitter_url = "http://twitter.com/" ;
# サマリ記事の最終日付保存も兼ねた一時保存
my $twitter_summary = "/var/run/.twitter.html" ;
# 記事をMovableTypeに書き込むためのメールの設定
my $prog_sendmail = "/usr/sbin/qmail-inject" ;
my $mail2entry = 'MTに投稿するためのメールアドレス' ;
my $mail2entry_from = 'MT投稿のFROMアドレス' ;
my $tw_last = 0 ;
if ( -r "$twitter_summary" ) {
@tw_stat = stat( "$twitter_summary" ) ;
$tw_last = $tw_stat[ 9 ] ;
}
# twitterフィードを読み込む
my $twitter = XML::FeedPP->new( $twitter_rss ) ;
my $count = 0 ;
my $subject = "" ;
my $text = "- \n" ;
my $max_time = 0 ;
my $auther = "" ;
# 各記事をリストアップ
foreach $item ( $twitter->get_item() ) {
my $ptime = XML::FeedPP::Util::get_epoch(
$item->pubDate() ) ;
if ( $ptime > $tw_last ) {
$max_time = $ptime if ( $ptime > $max_time ) ;
my $pstime = strftime( "%m/%d" ,
localtime( $ptime ) ) ;
my $title = Jcode->new(
HTML::Entities::decode( $item->title() ) )->euc ;
my $link = $item->link() ;
my $url = "" ;
$title =~ s//>/g ;
$title =~ s/&/&/g ;
if ( $title =~ s/^(\w+):\s+// ) {
$auther = $1 ;
}
if ( $title =~ /^(.*)\s+((http|https):\/\/\S+)$/ ) {
($title,$url) = ($1,$2) ;
$title = "[メモ]" if ( $title eq "" ) ;
$url = " / → <a href=\"$url\">$url</a>" ;
}
$text .= "<li>$pstime <a href=\"$url\">$title</a&"
."\gt;$url</li>\n" ;
$count++ ;
}
}
$text .= "
$subject
\n" ; print FH $text ; } close( FH ) ; # メールで送る if ( $count > 0 ) { open( MAIL , "| $prog_sendmail" ) or die( "Can't open program $prog_sendmail\n" ) ; $subject = mimeencode( Jcode->new( $subject )->jis ) ; $text = Jcode->new( $text )->jis ; print MAIL "From: $mail2entry_from\n" ."To: $mail2entry\n" ."Subject: $subject\n" ."Content-Type: text/html; charset=ISO-2022-JP\n" ."Content-Transfer-Encoding: 7bit\n\n" ."$text" ; close( MAIL ) ; }
現実逃避のお裁縫
テスト問題づくりと採点の現実逃避で、Macの保護用の袋を作ってみた。 目的は、アタッシュケースにMacを入れると、ケースの内金具でアルミボディに傷を付けてしまったので、その予防。 材料は、古いズボンの太ももの部分。 
tohrusaitoh のつぶやき (07/26)
Twitterに、メモ的にリンクをつぶやいた記事を、それなりに張り込む様に処理を追加。 このおかげで、Twitterをメモとして活用できる。
- 07/25 つぶやきのサマリをmtに上げる実験
追記: Twitterで沢山つぶやいた時のすべてのつぶやきが、 サマリに上がるとウザいので、記事をまとめてMovableTypeに上げる。
我が家の日食観察会
宿直明けで、天気も時折太陽も見えるみたいだし、仕事も抜けられそうだし、半日有給。 帰る早々、段ボール箱の中を黒く塗り、アルミホイルでピンホールを作りスタンバイ。


しかし、2mm直径のピンホールだと、ピンボケ気味。1mm直径にしてみると光も少ない。 どちらにしろ投影面で5mmほどの大きさにしかならないので、 あまりいい観察にはなりませんでした。
twitterのフィードを追加
自宅サイトの各種記事のフィードをマージしたRSSを生成していたけど、twitterのフィードもマージしてみた。以前試した時は、くだらないつぶやきが大量に混ざって分かり難かったので、記事数制限を加えた。しかも記事順序が正確にソートされてなかった。
#といいながら最近つぶやいてないけど…
iCalendar ファイルを 携帯用の vCalendar 形式に変換
様々なカレンダーでの共通形式でもある iCalendar 形式のデータを、 携帯のスケジュールとして送る時に vCalendar 形式に変換する必要がある。 以前は、シコシコと変換してたけど、改めて iCalendar 関連の perl モジュールを 見ていたら、最近は完成度の高いモジュールが揃っている。 改めて書き直したら、実質20行未満になった。
#!/usr/bin/perl
use Jcode ;
use Text::vFile::asData ;
use MIME::QuotedPrint ;
$eol = "\r\n" ;
sub ical2vcal( $ ) {
my $fh = shift ;
my $data = Text::vFile::asData->new->parse( $fh ) ;
foreach $line ( Text::vFile::asData->generate_lines( $data ) ) {
# 必要に応じて文字列をQuotedPrintableに変換
if ( $line =~ /^(SUMMARY|LOCATION):(.*)$/ ) {
($key,$value) = ($1,$2) ;
## 無駄なコード変換だったので削除
# $line = "$key;ENCODING=QUOTED-PRINTABLE:"
# .encode_qp( Jcode->new( $value )->sjis , $eol ) ; $line = "$key;ENCODING=QUOTED-PRINTABLE:" .encode_qp( $value , $eol ) ; } elsif ( $line =~ /^(CATEGORIES):(.*)$/ ) { $line = "CATEGORIES:MISCELLANEOUS" ; } elsif ( $line =~ /^(SEQUENCE|CLASS|STATUS|TRANSP):(.*)$/ ) { $line = "" ; } print "$line$eol" if ( $line ne "" ) ; } } if ( @ARGV > 0 ) { foreach $file ( @ARGV ) { open my $fh , $file or die "Can't open file:$!" ; ical2vcal( $fh ) ; close $fh ; } } else { ical2vcal( STDIN ) ; }
追記:携帯に送ると、CATEGORIES,SEQUENCEなどが問題となったので処理を追加。
日食観測できるかな…
皆既日食が22日に迫ってきた。 福井では天気も悪そうだし、あまり期待はできなさそう。 仕事的には宿直あけだし、有給も使えそうな雰囲気。 ひとまず検討してみよう。
みつくんのDSi
誕生日プレゼント(休みの都合でちょっと前倒し)ということで、 以前からほしがっていたDSiを購入。
さっそく、WiFiの設定を行う。DSiでは、Webブラウザをダウンロードしておくことが できるため、さっそくダウンロード&ネットワーク設定。 Proxyサーバに、squidGuardのポートを指定して、 勝手になんでも見れないようにしておく。 また、SDメモリカードがほしいとのことであったが、 以前使っていた携帯のmicroSDを、変換ケースにいれて渡す。 試しにポケモンのCDのデータをiTunesでmp4ファイルに変換し、入れておく。






