Home / Diary / タグ: userjs
- ダウンロード
- 本体:nomorescripts.js
- 設定ファイル:nomorescripts_domains.js
経緯
- OperaでNoScriptが実現された日。にてblockscriptsおよびblock externalの存在を知る。
- ソース見る
- なーるM
- NoScriptっぽいインターフェースに改造&調整
- それなりにまともな動作をしているようなので公開
解説
上記リンク内にも書いてある通り、UserJavaScriptを有効にしたままサイト側のscriptをブロックすることができる。
使い方もNoScriptとほぼ同じ。右下のアイコンにマウスを乗せると許可しているドメインとブロックしているドメインが表示されるので、クリックで切り替えることが可能。
なお、常に許可したいドメインは設定ファイルに書くことになる。
まだブロックが甘い箇所があるが、そこそこ動いているようなので公開することにした。もし不具合が出るようであれば、メニューの一番上の項目をクリックすることでスクリプトの動作自体を止めることができる。
ドメインについて
一応NoScript同様にホスト名(www等)を取り除いたものを扱うようにした。例えばニコニコ動画なら、nicovideo.jpを許可するだけで
- www.nicovideo.jp ← webページ
- res.nicovideo.jp ← スクリプト等
- tn-skr[num].nicovideo.jp ← サムネイル
と、一気に許可することができる。逆にwww.nicovideo.jpだけを許可したいという場合には対応できない。url-prefixも同様で、次回実装する予定。
Info
- 投稿日
- 2008年4月26日
- タグ
- opera、userjs
- このエントリの固定リンク
- http://diary/log/1758.html
- ブックマークに追加する
-
- コメント
2008
0426
Tagsoperauserjs
バグフィックス
- コマンドラインオプションが正常に動いていなかったので修正
- 更新確認時に更新ステータスを一つずつ表示するようにした
ページ作ったので、ダウンロードはそっちから。
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
userjsmanager.zip
アップデート機能
スクリプトのURLを設定すると、サーバーのファイルと更新時間を比較して、ローカルが古いようならダウンロードしてくれる。
今のところLast-Modifiedしか見てないので、これを吐いていないサーバーのスクリプトは一切アップデートできないことになる。次あたりで対策するつもり。
コマンドラインオプション対応
いちいち起動してウインドウ表示してられないので。-uで更新確認⇒ダウンロードまで一気に。
また、-dに続いてスクリプトのURLを渡すとダウンロードしてフォルダに格納してくれるようにした。
レイアウト変更
GreaseMonkeyの猿真似を止めて、もちっと使いやすい形に。
注意
まだまだ不安定なので、スクリプトを操作する場合は予めバックアップを取ってほしい。
Info
- 投稿日
- 2008年1月15日
- タグ
- opera、ruby、userjs
- このエントリの固定リンク
- http://diary/log/1580.html
- ブックマークに追加する
-
- コメント
2008
0115
Tagsoperarubyuserjs
RubyでGUIが作れるというので勉強も兼ねてVisualuRubyに挑戦。
userjsmanager.zip
2007/12/20:エディタが正確に開けない不具合が早速出たので修正。
userjsmanager.exeを実行すると、GreaseMonkeyほぼまんまの管理画面が現れるので、そちらを弄ったことがあるなら操作上迷うことは無いだろう。詳しくは同梱のテキストを参照。
VisualuRubyの利点
- Rubyで書ける
- 少ない記述でGUIを簡単に作れる(形だけなら)
- exerbでスタンドアローン化できる
VisualuRubyの不満点
- ウインドウスタイルが一部登録されていない
- カスタムドローが未実装(力技で実装可能)
- ドキュメントが貧弱すぎる
- コントロールの配置が面倒
- 検索しても情報が全然出てこない(マイナーすぎる)
開発途中だから仕方が無いか。一応気合でなんとかなる。
コントロールの配置については、Formdesignerを使えばある程度は解消するが、配置したコントロールをクリックすると大きさが変わってしまったり、出力するとウインドウスタイルが全部整数になってしまうので、若干手直しが必要になる。
原因不明というか、結局分からなかったもの
- ステータスバーの文字コードが不明(何を入れても2バイト文字が化ける)
- Enterキーの入力を取れない。ダイアログのデフォルトボタンを動作させたいのだが。
- グリッドレイアウトで、片方を固定、もう片方を可変にしたい。(ネガティブマージンのように)
- オーナードローボタン上のビットマップの透過色設定。
やりたいこと
- 適用順番の入れ替え(ファイル名が変わってしまうのが難点)
- スクリプトの更新を調べてダウンロード
雑感
簡単にGUIが書けるのは確かだが、結局はWindowsのコントロールを使うので、構築上ある程度の縛りは受ける。
それはいいんだが、現時点ではWindowsAPIの資料を漁るのが必須なのが正直めどい。そこまで凝ったGUIを作れなくてもいいので、Rubyの知識だけで書ける様になるのが一番の理想か。
余談
exerbのguiモードでコンパイルしたらAVGが反応したので思わず吹いた。久々にAVGのダイアログ見たわ。
cuiにしたら反応しなくなったので良かったが。ってか、コードのどこに反応したんだ?
Info
- 投稿日
- 2007年12月19日
- タグ
- opera、ruby、userjs
- このエントリの固定リンク
- http://diary/log/1577.html
- ブックマークに追加する
-
- コメント
2007
1219
Tagsoperarubyuserjs
oAutoPagerizeはAutoPagerizeのOpera版。SITEINFOが取得できず、手動で追加しなければいけないのが面倒だったので、SITEINFOを取得して更新してくれるスクリプトを作った。
oaprize_update.zip
元はRubyスクリプトだが、exerbで実行形式のファイルにしてあるので、解凍したファイルの中にあるooprize.exeをooAutoPagerize.jsと同じフォルダにおいて実行するだけで更新してくれる。
他人がコンパイルしたファイルなぞ信用できないという人の為にソースも用意しているので、そういう人は自分でコンパイルするなりそのままRubyで走らせて欲しい。
oaprize_update.rb
なお、自分でもあまり試していないので、動かなかったらごめんなさい。
Info
- 投稿日
- 2007年12月4日
- タグ
- opera、ruby、userjs
- このエントリの固定リンク
- http://diary/log/1575.html
- ブックマークに追加する
-
- コメント
2007
1204
Tagsoperarubyuserjs