Home / Diary / タグ: userjs

123

目次

  1. OperaでNoScriptっぽいことを実現する「No More Scripts」
  2. OperaUserJavascriptManager v0.31
  3. OperaUserJavascriptManager v0.30
  4. OperaUserScriptManager v0.20
  5. Operaのユーザースクリプトを管理するツールをVisualuRubyで作った
  6. oAutoPagerize.jsのSITEINFOを更新するスクリプト

OperaでNoScriptっぽいことを実現する「No More Scripts」

ダウンロード
本体:nomorescripts.js
設定ファイル:nomorescripts_domains.js

経緯

  1. OperaでNoScriptが実現された日。にてblockscriptsおよびblock externalの存在を知る。
  2. ソース見る
  3. なーるM
  4. NoScriptっぽいインターフェースに改造&調整
  5. それなりにまともな動作をしているようなので公開

解説

上記リンク内にも書いてある通り、UserJavaScriptを有効にしたままサイト側のscriptをブロックすることができる

使い方もNoScriptとほぼ同じ。右下のアイコンにマウスを乗せると許可しているドメインとブロックしているドメインが表示されるので、クリックで切り替えることが可能。

なお、常に許可したいドメインは設定ファイルに書くことになる。

まだブロックが甘い箇所があるが、そこそこ動いているようなので公開することにした。もし不具合が出るようであれば、メニューの一番上の項目をクリックすることでスクリプトの動作自体を止めることができる。

ドメインについて

一応NoScript同様にホスト名(www等)を取り除いたものを扱うようにした。例えばニコニコ動画なら、nicovideo.jpを許可するだけで

と、一気に許可することができる。逆にwww.nicovideo.jpだけを許可したいという場合には対応できない。url-prefixも同様で、次回実装する予定。

Info

2008
0426

Tagsoperauserjs

OperaUserJavascriptManager v0.31

バグフィックス

ページ作ったので、ダウンロードはそっちから。

OperaUserJavascriptManager

Info

2008
0129

Tagsoperarubyuserjs

OperaUserJavascriptManager v0.30

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
0125

Tagsoperarubyuserjs

OperaUserScriptManager v0.20

userjsmanager.zip

アップデート機能

スクリプトのURLを設定すると、サーバーのファイルと更新時間を比較して、ローカルが古いようならダウンロードしてくれる。

今のところLast-Modifiedしか見てないので、これを吐いていないサーバーのスクリプトは一切アップデートできないことになる。次あたりで対策するつもり。

コマンドラインオプション対応

いちいち起動してウインドウ表示してられないので。-uで更新確認⇒ダウンロードまで一気に。

また、-dに続いてスクリプトのURLを渡すとダウンロードしてフォルダに格納してくれるようにした。

レイアウト変更

GreaseMonkeyの猿真似を止めて、もちっと使いやすい形に。

注意

まだまだ不安定なので、スクリプトを操作する場合は予めバックアップを取ってほしい。

Info

2008
0115

Tagsoperarubyuserjs

Operaのユーザースクリプトを管理するツールをVisualuRubyで作った

RubyでGUIが作れるというので勉強も兼ねてVisualuRubyに挑戦。

userjsmanager.zip
2007/12/20:エディタが正確に開けない不具合が早速出たので修正。

userjsmanager.exeを実行すると、GreaseMonkeyほぼまんまの管理画面が現れるので、そちらを弄ったことがあるなら操作上迷うことは無いだろう。詳しくは同梱のテキストを参照。

VisualuRubyの利点

VisualuRubyの不満点

開発途中だから仕方が無いか。一応気合でなんとかなる。

コントロールの配置については、Formdesignerを使えばある程度は解消するが、配置したコントロールをクリックすると大きさが変わってしまったり、出力するとウインドウスタイルが全部整数になってしまうので、若干手直しが必要になる。

原因不明というか、結局分からなかったもの

やりたいこと

雑感

簡単にGUIが書けるのは確かだが、結局はWindowsのコントロールを使うので、構築上ある程度の縛りは受ける。

それはいいんだが、現時点ではWindowsAPIの資料を漁るのが必須なのが正直めどい。そこまで凝ったGUIを作れなくてもいいので、Rubyの知識だけで書ける様になるのが一番の理想か。

余談

exerbのguiモードでコンパイルしたらAVGが反応したので思わず吹いた。久々にAVGのダイアログ見たわ。

cuiにしたら反応しなくなったので良かったが。ってか、コードのどこに反応したんだ?

Info

2007
1219

Tagsoperarubyuserjs

oAutoPagerize.jsのSITEINFOを更新するスクリプト

oAutoPagerizeはAutoPagerizeのOpera版。SITEINFOが取得できず、手動で追加しなければいけないのが面倒だったので、SITEINFOを取得して更新してくれるスクリプトを作った。

oaprize_update.zip

元はRubyスクリプトだが、exerbで実行形式のファイルにしてあるので、解凍したファイルの中にあるooprize.exeをooAutoPagerize.jsと同じフォルダにおいて実行するだけで更新してくれる。

他人がコンパイルしたファイルなぞ信用できないという人の為にソースも用意しているので、そういう人は自分でコンパイルするなりそのままRubyで走らせて欲しい。

oaprize_update.rb

なお、自分でもあまり試していないので、動かなかったらごめんなさい。

Info

2007
1204

Tagsoperarubyuserjs

暴満館

最新のエントリ
注目のエントリ(はてな)
ゲーム攻略

暴満館 ~The House of Full Violence~
Powered by WordPress.
About | Contact | 新着のエントリ情報 RSS

ページ内の見出し一覧
OperaでNoScriptっぽいことを実現する「No More Scripts」
OperaUserJavascriptManager v0.31
OperaUserJavascriptManager v0.30
OperaUserScriptManager v0.20
Operaのユーザースクリプトを管理するツールをVisualuRubyで作った
oAutoPagerize.jsのSITEINFOを更新するスクリプト