[firefox] JDownloader + FlashGot
FlashGot 経由で JDownloader を使用していると、時々保存ファイル名が正しく伝わらないとがある。
厳密な理由は調べきれなかったが、何となく理由がわかってきたのでその対策を覚え書き。
原因との一つとして、「URLに "["等の一部の記号が含まれるとURLが正しくパースされない」が上げられる。
試しに JDownloader に対してコマンドラインで URL を送ってやると、アンカー("#")以下のアドレスのパースを打ち切っているような挙動を示した。
となると対策は簡単で、これらの文字を全てエンコードして JDownloader に渡してやるだけで事足りる。
と、ここででヤクの毛刈りが始まった……
既存のJDownloader インスタンスに対して、コマンドラインでのURL受け渡すことが何故か出来ないのだ。
新規インスタンスを立ち上げる時には、普通にURLが受け渡されているので、引数は間違っていないはず。
色々調べたけれど、結局原因が分からなかったので、JDownloader のリモートコントロール・エクステンションを利用することにした。
エンステンション設定
- Setting → Extensions で、"JDRemoteControl" を有効にする
- Setting → Extension → JDRemoteControl のポートを任意のものに変更(もしくはそのまま)
JDRemoteControlの使い方を調べるのもこれまた一苦労で、結局ドキュメントの類が見つからず、ソースコードを読んで何となく使い方を把握したという。。
JDremoteControlの使い方
WEBブラウザで、"http://localhost:10025/action/add/links/grabber1/start1/ダウンロードしたいアドレス" と入力すると、既存のJDownloaderインスタンスに対し、ダウンロードファイルを指示することが出来る。
さて、ここまで準備出来たら後は簡単。
適当なスクリプト言語等でURLのエンコード + JDRemoteControlへの指示を記述し、FlashGotでそのスクリプトを指定してやるだけだ。
Rubyだとこんな感じ
require 'open-uri' require 'uri' encoded_url = URI.encode(ARGV[0], /[^-_.!~*'()a-zA-Z\d;\/:@+$,]/n) open("http://localhost:10025/action/add/links/grabber1/start1/#{encoded_url}")
実際は、上記のスケルトンにファイル名の置換などの便利機能を追加して使用している。
[cygwin] Cygwin で scrAPI を使用するとエラーが発生する
cygwinで scrAPIを使用すると下記のエラーが発生する
Scraper::Reader::HTMLParseError: Unable to load /lib/ruby/gems/1.8/gems/scrapi-1.2.0/lib/scraper/../tidy/libtidy.dylib (Scraper::Reader::HTMLParseError)
これは、scrapi に添付されている libtidy.so が linux 専用の為らしい TwitterArchiveFilter を cygwin 上で動かす - すぱいだー日記。
対策は下記の通り
% cd /lib/ruby/gems/1.8/gems/scrapi-1.2.0/lib/tidy % mv libtidy.dll libtidy.dll.linux % mv libtidy.so libtidy.so.linux % cp /usr/bin/cygtidy-0-99-0.dll /lib/ruby/gems/1.8/gems/scrapi-1.2.0/lib/tidy/libtidy.dll
CruiseControl.rb で Continuous Integration
・準備
http://rubyforge.org/frs/?group_id=2918 より最新版のパッケージを取得し、$/HOME で解凍
% cd ~/ % tar xvzf cruisecontrol-1.4.0.tgz
以上で終了!!
※Railsアプリなので、RubyGemsが必要。
必須ではないが、Rakeが入れてあると更に便利
・プロジェクトを登録
% cd cruisecontrol-1.4.0 % ./cruise add プロジェクト名 --url--username <ユーザー名> --password <パスワード>
※ Mercueialを使用するときは、 --source-control hg を指定する
以下のディレクトリ構造でファイル群が生成される
$HOME/.cruise .. cruisecontrolのデータディレクトリ + projects/プロジェクト名 ... 登録したプロジェクト + work ... 指定したsvnリポジトリをチェックアウトしたもの
※ $HOME/.cruise を変更するには、環境変数 CRUISE_DATA_ROOT を定義する
・設定ファイルの編集
$HOME/.cruise/projects/プロジェクト名/cruise_config.rb がビルドタスクの設定ファイル
シェルスクリプトを走らせる場合は、下記のように記述する
Project.configure do |project| project.build_command = './foo.sh' #※ $HOME/.cruise/projects/project-name/work がカレントディレクトリ end
・サーバー起動
% LANG=C ./cruise start
daemonとして起動するときは、
% LANG=C ./cruise start --daemon
http://localhost:3333 でプロジェクトビューに。
メールの設定をする
ローカルにメールサーバーが立ち上がっていない場合は、下記の設定を行う。
・~/.cruise/site_config.rbでSMTPを設定
ActionMailer::Base.smtp_settings = { :address => "xx.xx.xx.xx" }
※変更後は、CruiseControlを再起動する必要がある
・メールヘッダを変えるには
ユーザーが変える手段は用意されていないので、ソースを直接変更する
app/models/build_mailer.rb 4行目
@subject = "[CruiseControl] #{subject}"
の部分を変更する
Subversionの更新時のタイムゾーン修正
Subversion更新ログの +0900 部分がシカトされているので、無理矢理補正
lib/source_control/subversion/revision.rb
@author, @time, @message, @changeset = author, time, message, changeset + @time = @time.new_offset(Rational(9,24)) if @time end
■参考
http://journal.mycom.co.jp/articles/2007/03/28/CruiseControlrb/index.html
http://w.koshigoe.jp/study/?[CI]%20CruiseControl.rb
[Mercurial] ssh経由で mercurial を使う
下記のように記述する
% hg clone ssh://user-name@target-address//path/to/repository
scp、trampとか、皆微妙に記述法が違うのは何とかならないものか……
- 参考
[CentOS] CentOS に Mercurial をインストール
※ディレクトリ構造は、[Solaris] Solaris に rubygems をインストール - プログラム番長のヲボエガキ を参照
% tar xvzf mercurial-1.5.tar.gz % cd mercurial-1.5 % make all % python setup.py install --prefix=$HOME/cent
~/.bashrcに下記を追記
export PYTHONPATH=/usr/lib/python2.4/site-packages:/home/s-masayu/cent/lib64/python2.4/site-packages
[Solaris] Solaris に rubygems をインストール
インストール先を $HOME/solaris/ とした場合
※CentOSとSolarisを同じ$HOMEで使用しているため、以下のような構造にしている
$HOME + cent + bin + lib etc... + solaris + bin + lib etc...
% ruby setup.rb config --prefix=$HOME/solaris
下記のファイル群ができる
$HOME/solaris/bin/gem $HOME/solaris/lib/rubygems/.+
~/.bashrcに下記を追記
export PATH=$HOME/solaris/bin:$HOME/solaris/rubygems/bin:$PATH export GEM_HOME=$HOME/solaris/rubygems export RUBYLIB=$RUBYLIB:$HOME/solaris/lib
■参考
http://www.masahiko.info/it/archives/000980.html
CM
http://lunar.aqua-ws.jp/ では、下記のサーヴィスをご提供しております。
http://lunar.aqua-ws.jp/salon.html
「時間がなくって……」「自宅療養中でも綺麗になりたい」
ご安心下さい。あなたのおそばにトップスタイリストがお伺い致します。
まずはお気軽にお電話にてご予約ください。
http://lunar.aqua-ws.jp/bridal.html
あなたの晴れ舞台のためにお手伝いさせてください。
より上質のヘアメイク、レンタルドレスをお手軽価格でご提供しております。
http://lunar.aqua-ws.jp/cancer.html
病に立ち向かっていても、美しくありたい。
抗がん剤による脱毛や円形脱毛症時に最適なウィッグを。フィッティングは医療
機関までお伺いいたします。
http://lunar.aqua-ws.jp/wig.html
いつもと違うあなたに変身しませんか? 気になるアイテムを心ゆくまで
お試しください。個室をご用意してお待ちしております。
http://lunar.aqua-ws.jp/restoration.html
育毛・養毛のためのエステをぜひお試し下さい。育毛剤の販売も行っております。
[Ubuntu] Ubuntu に rubygems をインストール
RubyOnRails - Community Help Wiki を参考に
% sudo aptitude install rubygems
~/.bashrcに下記を追加
export PATH=/var/lib/gems/1.8/bin:$PATH
%sudo gem install rubygems-update %sudo /var/lib/gems/1.8/bin/update_rubygems note: this will clean out your gems! % gem --version 1.3.6
■参考
Ubuntu/Ruby - TOBY SOFT wiki
http://blog.netblue.jp/2010/03/07/ruby-gem1-3-6-update-problem-on-ubuntu-9-10/