10分前に放送アニメを通知する
サーバを入れ直して、なにがツラいって plagger の環境作り直すことですね。なんか毎回のようにハマるし悲しい限りです。今 plagger でやらせてることってのが、朝に今日の天気予報を push させるというのと、10分前に放送アニメを通知すること。天気予報はどうにでもなりそうだったので、アニメ通知のほうをなんとかできれば、いちいち plagger 入れる必要ないんじゃないかなーということで、python で書いてみた。
cron で10分間隔で回す。しょぼかるから番組情報を拾ってくる。〜10分後に放送する番組があったら im.kayac に push するという感じ。feedparser は標準じゃないので、apt-get install しよう!!!
#!/usr/bin/env python # coding: utf-8 import feedparser import datetime import urllib2, urllib import hashlib url = 'http://cal.syoboi.jp/rss2.php?usr=yutamoty&titlefmt=$(Mark)%20$(StTime)%20[$(ChName)]%20$(Title)%20$(SubTitleB)' class IMKayac: def __init__(self, id, password=None, sig=None): self.id = id self.password = password self.sig = sig def notify(self, msg): if isinstance(msg, unicode): msg = msg.encode('utf-8') path = 'http://im.kayac.com/api/post/%s' % self.id params = { 'message':msg, } if self.password: params['password'] = self.password if self.sig: params['sig'] = hashlib.sha1(msg+self.sig).hexdigest() urllib2.build_opener().open(path, urllib.urlencode(params)) d = datetime.datetime.today() d10 = d + datetime.timedelta(minutes=11) item = feedparser.parse(url) for entry in item['entries']: title = entry['title'] time = entry['updated'] t = datetime.datetime.strptime(time, '%Y-%m-%dT%H:%M:%S+09:00') if d <= t: if d10 >= t: if __name__ == '__main__': im = IMKayac('username','password','1') im.notify(title)
しょぼかるのRSSについてはヘルプを参照。ユーザ作って表示させる放送局をしぼらないと push されすぎてつらいと思う。
rss2.php - しょぼいカレンダーのヘルプ
これで、リアルタイムで見たいアニメがあった場合でも大丈夫。今期だと IS と まどかマギカ はリアルタイムで見るようにしてます。毎度、しょぼかるにはお世話になっております。
WM3500R のバッテリー残量を Growl で通知する
WM3500R をうっかり契約して家の固定回線解約しました。将来的には、softbank の2年縛りが切れたらそれも解約して docomo と wimax の2回線で生きていこうと思ってます。それで、実際使っててバッテリー残量が分かりにくいし、いちいち管理ページに見に行くのもめんどいので Growl で通知できるようにした。
勉強中の python でスクリプト書いてみた。これを cron 登録して適当な感覚で回すことでだいたいの残量を把握するようにしました。
ちなみに、実際の WM3500R の使い勝手ですが、すごい満足してる!!! 前、契約してたときは我が家すらギリギリ電波入るけど速度でないとかいう状況だったけど、今は、余裕の電波状況で速度も満足なレベル。エリアに関しては地下は勿論全滅だけど、地上ではそれなりに使えるようになった感じ。少なくとも通勤の山手線とかに関してはまったく問題なく使えて、むしろ softbank のほうが電波入らないことがある。バッテリーに関しては、本当に8時間稼動とか可能なレベルなのでバッテリー切れとか気にする必要が殆どない。
ということでお金ない感じの人は家回線とスマートフォン回線を wimax に集約すれば、生きていける〜。
家ではかったスピードテスト
#!/usr/bin/env python # coding: utf-8 import urllib2 import scrapemark import Growl username = 'ユーザ名' password = '設定したパスワード入れる' password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() password_mgr.add_password(None, 'http://web.setup/index.cgi/eco_mode_main', username, password) handler = urllib2.HTTPBasicAuthHandler(password_mgr) opener = urllib2.build_opener(handler) urllib2.install_opener(opener) html = urllib2.urlopen('http://web.setup/index.cgi/eco_mode_main').read() html_utf8 = html.decode("euc-jp").encode("utf8") batter = scrapemark.scrape(""" <body> {* <td class='small_item_td2'> {{ batter }} </td> </tr> *} </body> """, html_utf8) g = Growl.GrowlNotifier( applicationName = 'GrowlPython', notifications = [ 'Demo' ], defaultNotifications = [ 0 ], hostname = 'localhost', password = '', ) g.register() g.notify( noteType = 'Demo', title = u'WM3500R バッテリー残量', description = batter["batter"], sticky = False )
ちなみに、Python から Growl に通知するやり方はこちらを参考にしました。
PythonからGrowlを利用する | おいぬま日報
追記
WM3500R に繋いでないときの処理の存在忘れてたし、あとで書こう。
誕生日近いのでスクリプト書いた
誕生日が近いのでサーバーに祝って貰えるようにスクリプトを書きました。
#!/usr/bin/env bash start() { echo "when is your birthday?" echo "month?" read month echo "day?" read day echo "year?" read year month=`echo $month | sed -e 's/^\([0-9]\)$/0\1/g'` echo "$year,$month$day" > ~/.birthday.txt } if [ -f ~/.birthday.txt ]; then true else start fi BIRTHDAY=`cut -d "," -f 2 ~/.birthday.txt` BIRTHYEAR=`cut -d "," -f 1 ~/.birthday.txt` TODAY=`date +%m%d` YEAR=`date +%Y` AGE=`expr $YEAR - $BIRTHYEAR` if [ $BIRTHDAY = $TODAY ]; then echo -e "Happy Birthday to You Happy Birthday to You Happy Birthday Dear "$USER" Happy Birthday to You Λ_Λ ∂/ハ)ヽヽ ∧ ∧ ∧_∧ ∧ ∧ ハ`∀´ノ ( ゚Д゚) (゚ο゚*) ( ´ー`) /つ * ヽ ⊂~~~~つ ♪ ⊂~~~⊂ \∽ /| /___ゝ / | (-_-) / ヽ \.\_∩____// (__)_) 〈// / (∩∩) 〃〃〃ゝ \ / ./ 〉 ~~~~ ~~~~~~ ∪ ̄ ̄∪∪ Λ_Λ ♪〜♪♪ ( ・∀・) ♪ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ( つ「 ̄ ̄] (__´∀`) ∇ < "$AGE" 才になったよ♪ ( 「 ̄ | ( <y> ]つ \____ . |__iiiiiiiiiiiii |__|_| (__)_) ~~~~~~~~~~~~~~~" fi
このスクリプトをサーバの bashrc とか zshrc あたりでログイン時に立ち上るようにしておけば誕生日の緊急対応時に心がほっこりあたたかくなると思います。思いたい!!!
今年の誕生日もサーバといちゃいちゃする予定しかないですが、がんばって生きていこうと思います。
http://www.amazon.co.jp/wishlist/14QTNU2BN7KTR
ちなみに 2 月 18 日 が僕の誕生日になります。金曜日です。
MacBook Air 11インチ欲しい!ほんとだよ。
ヨドバシで MacBook Air 11インチ 見てきたんですよ、えあー。話変わりますが、最近マイクロ一眼買ったんですよ、 E-PL1 ね。CMの宮崎あおいかわいいし Amazon で半額だったのでついつい購入ね。
そしたら ビックリ 加速度センサ ないんですよ、E-PL1。写真の縦横も判断できないんですよ、E-PL1。
るんるん気分で写真撮って、いざ、とりこむぞ!! ってときになって気付いたのね。そういう大事なことは、前もって言っとけと思ったね。
一気にテンションさがったね。
でも、宮崎あおいのこと考えると怒るに怒れないんですよ。あーくそ、かわいい。結局、宮崎あおいの笑顔を考えながら一枚一枚、写真を回転させるお仕事ですよ。
でも、宮崎あおい、もう E-PL1 とかのこと忘れて E-PL2 に夢中なんだろうなー。
ということで
です。
tcpflow が楽しい
パケットの中身を見るコマンドとして tcpdump が有名だけど、最近 tcpflow っていうコマンドがあることを知った。 tcpflow は tcpdump と比べてパケットの中身をより見やすくしてくれて大変すばらしい感じ。
debian 環境だけど、余裕の aptitude でインストールできる。
# aptitude install tcpflow
centos とかだと rpmfoge レポジトリにあるみたい。
とりあえず使ってみる
# tcpflow -c
c オプションは、コンソールに内容を表示してログを保存しないようにするオプションでこれつけないで、うっかり起動させるとカレントディレクトリが残念なことになる
色つけてログを見やすくする
# tcpflow -ce -i eth0
e オプションで、in と out で色分けしてくれるのでわかりやすくなる。
iTerm で screen 使用したときにウィンドウがリサイズされる問題
っていうのが、起こってて再起動とかあまりしないので放置していたけど、ちょっと問題調べてみたら iTerm の設定で無効にできた。
Bookmarks –> Default –> Terminal
「Disable session-initiated window resizing」にチェックを入れる
もしくは「.screenrc」に以下の記述を追加する
termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
tdiary で Markdownスタイル を使う
独自ドメインで運用している lql.be にブログ置きたいなーと思って tdiary を設置してるんだけど、いろいろ書式を試してみたいと思ってて Markdownスタイル を試してみるためにセッティングした。
Markdownスタイル のインストール
Markdownスタイルを有効にするために contribパッケージ に含まれている markdown_style.rb をゲットする
# wget http://www.tdiary.org/download/tdiary-contrib.tar.gz # tar zxvf tdiary-contrib.tar.gz
markdown_style.rb は tdiary のインストール先にある tdiary ディレクトリにコピーする
# cp tdiary-contrib/style/markdown_style.rb tdiary/
# vi tdiary.conf @style = 'Markdown'
style を Markdown に指定する
BlueClothのインストール
Markdownスタイル を利用するために BlueCloth が必要になる。 gem で 1.0.1 っていうバージョンと 2.0.9 っていうバージョンふたつあって 1.0.1 のほうをインストールした。なんか、2系だと動かない感じがするんだけどどうなんだろう。
gem に BlueCloth があることを確認する
# gem search -r bluecloth REMOTE GEMS BlueCloth (1.0.1) bluecloth (2.0.9, 2.0.7 x86-mingw32 x86-mswin32) radiant-bluecloth2_filter-extension (1.0.0)
BlueCloth のインストール
# gem install BlueCloth
これだけだと上手く使えないらしく gem で落としてきた install.rb を叩いて使えるようにする
# ruby /usr/lib/ruby/gems/1.8/gems/BlueCloth-1.0.1/install.rb
ということで、tdiary で Markdownスタイル が使えるようになった。 lql.be のブログでは日常系日記を書いていこうかなーと思っています。