Fork me on GitHub

2010/03/02

はてな
タイトルは釣りです。
perlでは一般的にperldocを使って調べ物をする事が殆どですが
あれー、あのモジュールなんだっけ...IO:: 忘れた。
とか
IO:: の下辺りに似たモジュールあったよなー
なんて事が結構あったりするのですが(私だけかも)、今日もSys::SendfileのAuthorから「チミが送ってくれたpatchに対して僕が書いたtestがWindowsで通らないんだけど、何か分かるかい?」とメールが来てて
それ、以前ワテがp5pに送ったpatchの件ちゃいますやろか、確かIO:: ...えーっと...
ってなってしまった訳です。
なんか良くある事なので解決出来ないかなぁと思っていた所、見つけてしまいました。perldoc-completeを。
ap's perldoc-complete at master - GitHub

A bash completion helper for perldoc

http://github.com/ap/perldoc-complete
パスの通った所に perldoc-complete を置いて
complete -C perldoc-complete -o nospace -o default perldoc
を .bashrc に書いておくと...
# perldoc IO:: ここでタブ押す
AIO            File           Pipe           Socket         Wrap
AtomicFile     Handle         Poll           Socket::       WrapTie
Capture        Handle::       Pty            String         Zlib
Capture::      InnerFile      Scalar         Stringy        
CaptureOutput  Lambda         ScalarArray    Tty            
Compress::     Lambda::       Seekable       Tty::          
Dir            Lines          Select         Uncompress::  
# perldoc IO::
きたーーー!
常用確定しました。

2009/07/11

はてな
またさらに動かなくなってしまいました。
(再)ブラウザを全く使わずにustream.tvを楽しむ方法

その後、ustream.tvで何か変更があり、そのままでは使えなくなってしまったのですが、もういっかいチャレンジしたら見れる事が分かりました。

http://mattn.kaoriya.net/web/ustream/20090622220622.htm
今度の変更は、paramに&(アンパサンド)が入ったのと、IE対応による重複したparam要素です。
でも抽出しなきゃ行けない値は変わりません。
#!/bin/bash

FLASHPLAYER=/usr/bin/flashplayer

if [ "x$1" == "x" ]; then
  echo "usage: `basename $0` [channel]"
  exit
fi

TMP=`mktemp /tmp/ustplayer.XXXXXX`
curl -s "http://www.ustream.tv/channel/$1" |\
    /bin/grep "<param name=\"\(flashvars\|movie\)\"" |\
    /bin/sed -e 's/&amp;/\&/g' -e 's/^\s*//g' |\
    /usr/bin/sort |\
    /usr/bin/uniq > $TMP
URL=`cat $TMP | sed -ne 's/^\s*<param name="movie" value=\"\([^\"]\+\)\".*$/\1/p'`
URL=$URL\&`cat $TMP | sed -ne 's/^\s*<param name="flashvars" value=\"\([^\"]\+\)\".*/\1/p'`
rm $TMP

if [ "x$URL" == "x" ]; then
  echo "currently offline?"
  exit
fi
echo playing $URL
$FLASHPLAYER "$URL"
負けません。
もうそろそろ面倒くさくなってきたので、githubに置いて更新して行きます。
mattn's ustplayer at master - GitHub

ustream.tv player using standalone flashplayer

http://github.com/mattn/ustplayer/tree/master
Posted at 00:13 in web::ustream | WriteBacks (0)
Tagged as: bash, flash, flashplayer, ustream, ustream.tv
Bookmarks: このエントリーのtweets add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark

2009/06/22

はてな
以前こんな記事を書いた事がありました。
Big Sky :: ブラウザを全く使わずにustream.tvを楽しむ方法

映像/音声ですが、Linux版に用意されているスタンドアローン版flashplayerを使っています。ネット上にあるFLVもコマンドラインから起動して閲覧出来ます。

http://mattn.kaoriya.net/web/ustream/20071018005843.htm
その後、ustream.tvで何か変更があり、そのままでは使えなくなってしまったのですが、もういっかいチャレンジしたら見れる事が分かりました。
答えは簡単でobjectタグのパラメータ値を全て足せば再生出来るURLになるという事。
たとえばさっきまで見ていたVimMの動画。
<object
    id="viewer"
    name="viewer"
    width="480"
    height="386"
    allowfullscreen="true"
    codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
ここから
    <param name="movie" value="http://cdn1.ustream.tv/swf/4/viewer.137.swf?varnish=true" />
    <param name="flashvars" value="loc=/&cid=19118&channelid=19118&share=false&group=channel19118&imu=medrect&autoResize=false&localid=4398457344a3f82bac4140&varnish=true&vrsl=c.4.158&" />
ここまで
</object>
これを結合して出来上がったURLにflashplayerスタンドアローン版でアクセスすれば良いのです。
これをshellスクリプトにすると以下の様になりました。
#!/bin/bash

GFLASHPLAYER=/usr/bin/flashplayer
#GFLASHPLAYER=mplayer

if [ "x$1" == "x" ]; then
  echo "usage: `basename $0` [channel]"
  exit
fi

TMP=`mktemp /tmp/XXXXXX`
curl -s "http://www.ustream.tv/channel/$1" | grep "<param" > $TMP
URL=''
while read -r line; do
    if [ ! -z $URL ]; then
        URL="$URL&"
    fi
    URL="$URL`echo \"$line\" | sed  's/^.* value=\"\([^\"]\+\)\".*$/\1/'`"
done < $TMP
rm $TMP

if [ "x$URL" == "x" ]; then
  echo "currently offline?"
  exit
fi
echo playing $URL
$GFLASHPLAYER "$URL"
これでまたブラウザが楽になりました。
Posted at 22:32 in web::ustream | WriteBacks (0)
Tagged as: bash, flash, flashplayer, ustream, ustream.tv
Bookmarks: このエントリーのtweets add to hatena add to hatena | add to delicious.com | add to livedoor.clip add to livedoor.clip | add to buzzurl add to buzzurl | add to fc2bookmark add to fc2bookmark | add to Yahoo Bookmark add to Yahoo Bookmark | add to Pookmark add to Pookmark