Home / Diary / タグ: userjs

123

目次

  1. OperaUserJavascriptManager v0.31
  2. OperaUserJavascriptManager v0.30
  3. OperaUserScriptManager v0.20
  4. Operaのユーザースクリプトを管理するツールをVisualuRubyで作った
  5. oAutoPagerize.jsのSITEINFOを更新するスクリプト
  6. 続・ニコニコ動画視聴補助スクリプト for Opera
  7. Operaでユーザースクリプトのみを有効にする(Ultimate blockage/Noscriptlike編)
  8. Operaでユーザースクリプトのみを有効にする(Disable script編)
  9. mp3へのリンクにGoogleのmp3プレイヤーを埋め込むユーザースクリプト
  10. ニコニコ動画視聴補助スクリプト for Opera

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

SBM Comments

as365n2
_[skin]

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

SBM Comments

edvakf
applicationもstorageも各ウィジェットで一つ。ウィ

2007
1204

Tagsoperarubyuserjs

続・ニコニコ動画視聴補助スクリプト for Opera

いいかげんなボタン配置等がいかにも自分用。

nico2assist.user.js

このスクリプトを導入するとページ左上にボタンが4個できる。それぞれをクリックすることで効果発動。

基本的に、ニコニコ動画を小ウインドウで見るスクリプトnico2windower.user.jsと合わせて使うものだと思いねぇ。

設定

デフォルトはwrapper利用に合わせているので、利用していないならflvplayer_wrapper = falseにしておく。

動画情報のトグル表示

一番上のボタン。基本的に切り離したウインドウで見るので、いちいちスクロールするのがめどい。

フルスクリーン

上から2番目のボタン。

拡大率をモニタに合わせて設定して、ボタン1つでフルスクリーンサイズに拡大。あとはF11を押してOperaもフルスクリーンにする。(小ウインドウではフルスクリーンにできないので、動画次第で開き方を変えるとよい)

公式で用意されているものは上下に余計なものがついた状態で拡大されるのに対し、こちらは純粋に動画部分のみを拡大する。

デフォルトでは1280*1024モニタに合わせているので適宜修正する。

画質向上

上から3番目のボタン。

向上するらしい。iroiro.jsからパクった。

ソフトリロード

一番下にあるボタン。F5を介さずにリロード。局所的に使う。

市場手動化

ページ開いた時に、市場読み込み待ちでカーソルが砂時計になっているのが非常に嫌だから。

その他諸々CSS

このスクリプトを導入すると、基本的に動画ページはプレイヤーと市場手動表示ボタンしか表示されなくなる。

せっかくだから時報キャンセラー

スクリプトと関係無いけど。

コンテンツブロックにhttp://www.nicovideo.jp/api/getmarquee*を追加。

Info

SBM Comments

sonota88
「わざわざrssにしてリーダーで知らせるよりも新着発見即ダウンロードのほうが効率よくね?」

2007
1114

Tagsoperauserjs

Operaでユーザースクリプトのみを有効にする(Ultimate blockage/Noscriptlike編)

A Script like NoScript. - User JavaScript - Opera Community

リンク先ページの下のほうにスクリプト本体がある。

Ultimate blockageを導入すると、全てのWebページで右下に小さなアイコンが表示されるようになる。アイコンをクリックすることでブロック可能な画像/オブジェクト/スクリプトの一覧が表示され、blockボタンを押すことで次回ページ読み込み時からブロックすることが可能になる。

先日紹介したDisable Scriptとは違い、こちらはまず全てを許可した上で、必要無い物を選んでいくというブラックリスト方式になっている。

なお、NoscriptlikeはUltimate blockageから画像とオブジェクトを除いたもの。

問題点1:スクリプトのブロックが甘い

scriptやタグ内に直接記述されたものに関しては全くブロックすることができない。あくまでもscript要素からsrcで参照しているスクリプトのみとなっている。

問題点2:ドメイン単位のブロックが不可能

URL単位でしかブロック情報を記録しないので、トップページでブロックしても他のページに存在するなら再びブロックしなくてはならなくなる。

問題点3:クッキーを利用する

クッキーを消してしまったら再びブロックしなければいけない。

感想

クッキーをそんなに消さず、特定のウザいものだけ消したいというのであれば有効か。ぶっちゃけコンテンツのブロックで十分な気がするので、入れるとしたらNoscriptlikeだけでいいかもしれない。

となると結局JavaScriptを常時OFFに行き着くわけで。

参考

Operaでユーザースクリプトのみを有効にする(Disable script編)

Info

2007
1016

Tagsoperauserjs

Operaでユーザースクリプトのみを有効にする(Disable script編)

  • Disable script
  • ページで読み込まれるスクリプトを全てはじき、スクリプトを無効化しているのと同等の状態で表示するようになります
  • ujsenabledで始まる関数のみが実行されます

ユーザーJavaScriptだけ使いたいのですが - Opera-PukiWikiPlus!

んなばかな、と思いつつリンク先のを見てみたが・・・なーるM。これ考えた人すごいわ。しかも2005年て。

解説

イベントハンドラのBeforeExternalScript、BeforeScript、BeforeJavascriptURL、BeforeEventListenerに対してe.preventDefault()を設定することで、以下の方法によるJavaScriptの実行を阻止している。

基本的にwebページ上でJavaScriptを実行するということは、上記4通りのいずれかになるので、常にJavaScriptがOFFとなる。

で、ユーザースクリプトはこれら4通り以外の領域で実行されるので、問題無く動作するというわけだ。

問題点1 一部のユーザースクリプトが動作しなくなる

スクリプトの都合上、上記の4通りの方法のうちいずれかを取っているものは当然動作しなくなる。

そこで、回避策としてイベントリスナーとして関数名にujsenabledを含んでいるもののみ実行を許可するようにされているので、そのようなスクリプトは書き換えが必要になる。

問題点2 ホワイトリストの作成が面倒

基本的にブラウザ側のJavaScriptを有効にして使うことになり、結果として全てのページのページ側で用意されたJavaScriptが問答無用で無効になる。取捨選択は行われないので、手作業でホワイトリストを追加しなければならないのが面倒。

例えばdel.icio.usでJavaScriptを有効にしたいのなら、以下のようにdisable-script.js内に記述する必要がある。

// @include http://del.icio.us/
if( document.location != "http://del.icio.us/" )

// @include http://del.icio.us/*
if( document.location.indexOf( "http://del.icio.us/" ) != 0 )

// @include del.icio.us
if( !document.location.match( "del.icio.us" ) )

感想

ホワイトリスト追加は容易なので個人的に問題ではないが、ユーザースクリプトを一部修正しなければいけないのがなんとも微妙。

だが、手法が面白いので応用して何かできないか思案中。

参考

Info

2007
1015

Tagsoperauserjs

mp3へのリンクにGoogleのmp3プレイヤーを埋め込むユーザースクリプト

Inline Google Mp3 Player — Userscripts.org

その発想、YESだね!

んが、@include *で全てのページを開く度に全てのリンクを走査されてはたまらないので、スクリプトを/packer/で圧縮してOperaのブックマークレットとして登録。んむ、ディモールト・ベネ。

しかし、適当に巡回していると未だにmp3をlzhで圧縮してるとこが結構あったりするのであった。数年前の名残で拡張子がmp3のままアップロードできないとかいうレガシーなレンタルサーバーなのだろう。

で、それらを大量にダウンロードして解凍すると、裸で出てきたり、フォルダに入ってたり、マトリョーシカだったり、HTMLが落ちてきてたりしてブチギレ金剛ですよ。

いやまあ、mp3で抽出すりゃいいってのはわかるんだがね。

んで、それらをプレイヤーにぶち込むと、今度はID3タグが空っぽで、またブチg

Info

2007
0707

Tagsjavascriptuserjs

ニコニコ動画視聴補助スクリプト for Opera

当初はOperaのWidgetで作ろうと画策したが、妙な対策がなされてて失敗。仕方ないからユーザースクリプトでそれっぽいものをでっち上げた。

スクリーンショット

nico2windower.js

事前にニコニコ動画のページの適当なところで「右クリック>サイト設定の編集>スクリプトタブ>ウインドウのサイズ変更を許可する」にチェックを入れておくこと。

解説

このスクリプトを導入すると、ニコニコ動画内で動画ページへのリンクをクリックした場合、ページ内に新しいウインドウとして表示するようになる。

その後、新しいウインドウのタブを切り離すことによって、上のスクリーンショットのようにデスクトップの端に置いておくことができるようになる。

では、いちいちウインドウを切り離すのか?

それを回避するためにウインドウを共有するようにしている。切り離したウインドウが存在する状態で他の動画へのリンクをクリックすると、そのウインドウで新しく開いてくれるのだ。実際に触ってみてもらえば分かるが、これが実に快適。

そして、時にはもう一つウインドウを立ち上げたくなる場合もあるので、テキストリンクはウインドウ共有画像リンクは常に新規立ち上げ、というようにした。

ウインドウの切り離し方

ウインドウがページ内に表示されても、その分のタブはしっかり一番右に出ているはずなので、そのタブを真上にドラッグすると切り離すことができる。

Operaに慣れている人はジェスチャーなりショートカットキーにDetach pageを設定するといいだろう。

注意

通常のタブで開きたくなった場合は、左クリック以外の方法、右クリックからやリンク事態をタブバーに持っていって開いて欲しい。

また、CSSに修正を加えているため、動画ページではFlash部分が一番上に配置されるようになってしまっている。

Info

SBM Comments

miya2000
[時報キャンセラー コンテンツブロックにhttp://www.nicovideo.jp/api/getmarquee*を追加。]
2007
0414

Tagsnicovideooperauserjs

暴満館

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

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

ページ内の見出し一覧
OperaUserJavascriptManager v0.31
OperaUserJavascriptManager v0.30
OperaUserScriptManager v0.20
Operaのユーザースクリプトを管理するツールをVisualuRubyで作った
oAutoPagerize.jsのSITEINFOを更新するスクリプト
続・ニコニコ動画視聴補助スクリプト for Opera
Operaでユーザースクリプトのみを有効にする(Ultimate blockage/Noscriptlike編)
Operaでユーザースクリプトのみを有効にする(Disable script編)
mp3へのリンクにGoogleのmp3プレイヤーを埋め込むユーザースクリプト
ニコニコ動画視聴補助スクリプト for Opera