speg03の雑記帳

主に未来の自分のために試したことなどを記録しています

Firefoxで現在開いているページを取得

前に作ったスクリプトをちょこちょこ変更したり.
リモートのFirefoxにURIを投げる - speg03の雑記帳

openがあるんだったらcloseもいるだろとか,今開いているページのURLが欲しかったので取得できるようにしたり.

telnetでつなぐところなんかはみんな同じだし,いっそのこと一つのスクリプトにしちゃおうかと.

#!/usr/bin/env ruby
# -*- mode: ruby -*-

require 'net/telnet'

if ARGV.length == 0 then
  puts "usage: fx command"
  exit
end

telnet = Net::Telnet.new('Host' => 'hostname', 'Port' => '4242')

case ARGV[0]
when 'open'
  ARGV[1..(ARGV.length - 1)].each do |uri|
    telnet.cmd("openNewTabWith('#{uri}')")
  end

when 'close'
  telnet.cmd("BrowserCloseTabOrWindow()")

when 'current'
  telnet.cmd("content.location.href")
  puts telnet.waitfor(/^".*"$/).match(/^"(.*)"$/)[1]

else
  STDERR.puts "undefined command: #{ARGV[0]}"
end

telnet.cmd('repl.quit()')
telnet.close

これで使うときは以下のようにしてる.

$ fx open www.google.com  # URLを開く
$ fx close                # 今開いているタブを閉じる
$ fx current              # 今開いているページのURLを出力
http://www.google.com/