Home / Diary / タグ: ruby
自作したPragger用プラグイン
elem_cache
指定した要素でのみ比較してキャッシュを行う。
日付情報等が存在しない、ただのリスト等を監視したい場合に使う。custom_feedは特に指定しないと最新の日付が入ってしまうので、適当な日付を入れてリーダーに任せるといったことが難しかった。そこでこのプラグインを作成。単純に取得した要素が「ある」か「ない」かだけで判断するシンプルなキャッシュ。
本当は複数の要素で比較してキャッシュさせたかったけど、匿名メソッドを追加したオブジェクトをYAMLに保存してから復元すると匿名メソッドにアクセスできないというバグかどうか分からない仕様があったので、仕方なくこのような形になった。
empty
dataの中身を空の配列にする。一つのyamlにずらずらと大量に色々したい時に欲しかったので。
Webラジオ ダウンロード
わざわざrssにしてリーダーで知らせるよりも新着発見即ダウンロードのほうが効率よくね? とは思っていたものの、実際にRubyでダウンロードしようとすると本体にアクセスした際に500エラー等が発生してダウンロードすることができずに諦めていた。
で、つい最近になって「Plaggerを参考にしてみてはどうだろうか?」という天啓が降りてきたので実際にPlaggerで利用されているプラグイン「Mplayer.pm」のソースを見てみたところ、MPlayerに渡していてズコー。
で、このプラグインを参考にMplayerを使ってみたが、ダウンロードはできるがPCMに変換してしまう。Mplayerのヘルプを見ても、どうもPCMでしか保存できないようにしか見えなかった(ヘルプの見方が悪くて見落としている可能性あり)。
つーわけでこっちではNetTransportに渡すことでダウンロードするようにした。今のところ下記4サイトのみ確認。
NetTransportのコマンドラインオプションが分からんのでファイル名はそのまま。保存する場所もデフォルトとなってしまっている。
さすがに保存名を変えられないのは不便なので、とりあえずリネーム用のバッチファイルも同時に作成。ダウンロード完了後に実行すればリネームしてくれる。なんというアナログ。
もっとスマートな方法は無いものか。Rubyでダウンロードできれば全て解決するんだが、たぶんストリーミングとして受信しつつ、受け取ったデータを積んでいけばいいと思うけど、方法がさっぱりわからん。
Webラジオ 新番組
番組一覧のページから、番組のタイトルを取得し、一度取得したタイトルを次回以降表示させないことで、新番組だけを取得するようにした。
以上5サイトに対応・・・したつもりだが、テスト環境では成功してても、実際に番組が増えた場合を目にしていないので、動作がちょっと怪しいかも。自分で使っててあまりの沈黙っぷりに怖くなる。
音泉から欲しい番組を取得
HTMLの構造が変わったのか、正常に取得できていなかったので対応。
ニコニコ動画 検索
smしか見ていなかったので、nmmとかzhとかに対応。
クラブニンテンドーの予約ボーナス対象タイトルを取得
いつの間にかサイトがリニューアルされていたので。
クラブニンテンドーの未回答のアンケートを取得
同じくリニューアルしたので直そうとしたけど、アンケート回答欄が空なので、何かで埋まるまで更新できず。
date_sort
日付でソートするプラグインだが、アホなミスをしていたので修正。
クラスで比較する場合は、
date.class == "Time"
ではなく、
date.class == Time
とするのが正しい。
Info
- 投稿日
- 2008年5月5日
- タグ
- ruby
- このエントリの固定リンク
- http://diary/log/1760.html
- ブックマークに追加する
-
- コメント
2008
0505
Tagsruby
Praggerのおかげで少しずつだが貴重な時間を得られるようになったきた。
ってなわけでプラグイン追加。基本的に自作した野良プラグインと組み合わせて使う。
自作したPragger用プラグイン
今回追加したのは以下の3本。
クラブニンテンドーの未回答のアンケートを取得
購入したソフトのコードを登録しただけで満足したり、任天堂製VCソフトをダウンロードしたりしても、後日現れるアンケートに答えるのをすっかり忘れてしまうことがあるので、回答していないアンケートを取得。
クラブニンテンドーの予約ボーナス対象タイトルを取得
買おうと思ってはいたが予約開始がまだだった⇒発売日前日に思い出すが予約締め切ってて絶望。なんてことが無いように、予約可能なタイトルを取得。
FTPアップロード
Web上のリーダーで読みたい時に。
Info
- 投稿日
- 2008年3月5日
- タグ
- ruby
- このエントリの固定リンク
- http://diary/log/1590.html
- ブックマークに追加する
-
- コメント
2008
0305
Tagsruby
バグフィックス
- コマンドラインオプションが正常に動いていなかったので修正
- 更新確認時に更新ステータスを一つずつ表示するようにした
ページ作ったので、ダウンロードはそっちから。
OperaUserJavascriptManager
Info
- 投稿日
- 2008年1月29日
- タグ
- opera、ruby、userjs
- このエントリの固定リンク
- http://diary/log/1585.html
- ブックマークに追加する
-
- コメント
2008
0129
Tagsoperarubyuserjs
userjsmanager.zip
名称が変わりました
OperaUserScriptManagerからOperaUserJavascriptManagerに。ファイル名とかは一切変化無し。
理由:ぐぐったらUserJavascriptが正式っぽかったので。Operaのヘルプにも書いてあるし。
ユーザー JavaScript による制御
というか、UserScriptでぐぐってもGreaseMonkeyのコードばっかりヒットするのよね。
ふと思った
GreaseMonkeyはインストール時にconfig.xmlに色々設定を記録するが、実際に動作する時はgm_script内に保存したスクリプトをそのまま呼び出している。
なので、OperaUserScriptManagerの対象フォルダをgm_scriptに設定すれば、スクリプト情報の変更や無効化が効かなくてもアップデートは有効。
・・・これFirefoxでも使えね?
というわけで
last-modifiedを吐かない(動的にページを作ってるからだと思う)Userscripts.orgから最終更新日を取得できるようにした。
また、スクリプト本体にuserscript.orgのURLを発見したら、自動的にそれをスクリプトのページとして登録して更新前の手間を省くようにした。
さらに、Opera用とFirefox用に使い分ける為に、設定ファイルを指定できるようにした・・・んだけど、これってどうなのかね?
設定ファイルを一元化して、タブあたりでOperaかFirefoxに切り替えられるほうがいいのか。そうすれば、設定ファイル複製⇒コマンドプロンプト経由で起動という2ステップが省略されるんだよな。
だが、そこまでいくと、本来Operaに特化していたはずなのに、Firefoxもサポートしていくようになってgdgdになってしまう恐れがあるので、今はOpera特化ということで見送り。
スクリプトの文字コード
扱いやすいからUTF-8で読んでUTF-8で保存してるんだが、問題はあるのか? 基本的にスクリプト内に2バイト文字を挿入することがほとんどないはずなので大丈夫だとは思うが。
あと、open-uriでダウンロードしたスクリプトの全ての改行に\rが付くのは一体何故だ。とりあえず/\r$/mで対処。
コマンドプロンプトウインドウがウザイ
消すこともできるが、AVGが反応してしまうので仕方なく表示している。
どうも、かの山田オルタナティブがRuby+exerbで作られていたらしく、それで誤検知しているらしい。
参考:ITmedia エンタープライズ:「山田オルタネイティブ」の動作を知る (2/2)
そこで、WindowsAPIを使って、起動後にコマンドプロンプトウインドウだけ消せないかと思って試したら成功したので搭載した。起動後少し表示されるが、すぐに消えるようになった・・・はず。
せっかくだからOperaのユーザースクリプトを探せるとこ一覧
Info
- 投稿日
- 2008年1月25日
- タグ
- opera、ruby、userjs
- このエントリの固定リンク
- http://diary/log/1584.html
- ブックマークに追加する
-
- コメント
2008
0125
Tagsoperarubyuserjs
OperaCacheExplorer(opcacheexplorer.zip)
起動したら一番左上のボタンでOperaのキャッシュディレクトリ(Opera/profile/cache4)を指定すると、ずら~~~~っとファイルが表示される。カラムでソート、URLで絞込み、適当にファイルを選択してデスクトップやらフォルダにD&Dでコピーも可能。
メインはサルベージ補助。Opera9.5以降はキャッシュファイルの拡張子が無くなるので、地味に使えるかもしれない。
他には、ニコニコ動画のダウンローダーに組み込んで、ダウンロードする前に、まずキャッシュを見て、見つかったらサルベージしてサーバーにアクセスしなくても済むようにするつもり。
キャッシュの操作にあたって、Ashula.Info / dcache4.urlを参考にした。バイナリ処理は経験が浅いので、今はとりあえず動く程度。9.5が出たらもちょっとまともにする。
Info
- 投稿日
- 2008年1月21日
- タグ
- opera、ruby
- このエントリの固定リンク
- http://diary/log/1581.html
- ブックマークに追加する
-
- コメント
2008
0121
Tagsoperaruby
userjsmanager.zip
アップデート機能
スクリプトのURLを設定すると、サーバーのファイルと更新時間を比較して、ローカルが古いようならダウンロードしてくれる。
今のところLast-Modifiedしか見てないので、これを吐いていないサーバーのスクリプトは一切アップデートできないことになる。次あたりで対策するつもり。
コマンドラインオプション対応
いちいち起動してウインドウ表示してられないので。-uで更新確認⇒ダウンロードまで一気に。
また、-dに続いてスクリプトのURLを渡すとダウンロードしてフォルダに格納してくれるようにした。
レイアウト変更
GreaseMonkeyの猿真似を止めて、もちっと使いやすい形に。
注意
まだまだ不安定なので、スクリプトを操作する場合は予めバックアップを取ってほしい。
Info
- 投稿日
- 2008年1月15日
- タグ
- opera、ruby、userjs
- このエントリの固定リンク
- http://diary/log/1580.html
- ブックマークに追加する
-
- コメント
2008
0115
Tagsoperarubyuserjs