Home / Diary / タグ: opera
実行ファイル形式になっているので、Rubyがインストールされていなくても使うことができる。
nicovideo_download.zip
[Document Popup Menu]
...
Item, "動画とコメントをダウンロード" = Execute program, "C:\nicovideo_download.exe", "%u C:\download -v -c"
Item, "動画をダウンロード" = Execute program, "C:\nicovideo_download.exe", "%u C:\download -v"
Item, "コメントをダウンロード" = Execute program, "C:\nicovideo_download.exe", "%u C:\download -c"
こんな感じで使用しているmenu用設定ファイルに追加すれば、右クリックから開いているページの動画とコメントをダウンロード。動画タイトルと動画IDの名前で保存される。12月9日時点の新コメントサーバー仕様及びマイメモリーにも対応。
この手のツールは探せば他にも大量に見つかるが、「プレイヤー等が絡まないシンプルな構成」「実行ファイル」「修正が容易なもの」。ということで、Rubyの勉強がてら、余所様のコードをパク・・・もとい、参考にして作った。
なお、コマンドプロンプトで色々渡してるだけなので、Opera以外からでも当然使える。
使い方の詳細等はソースを参照してほしい。
nicovideo_download.rb
参考
余談1 どうやって動画タイトルを取得するか
Operaのアクションからはウインドウタイトルはどうやっても取得できない。そこで、常套手段であるAutoHotKey経由でスクリプトを動かそうとしたが、なぜか動かない。
Run, C:\nicovideo_downoad.rb http://www.nicovideo.jp/watch/sm****** C:\download -v -c, C:\, Min
通常ならこれで動くはずだが、なぜかファイルが存在しません、との警告。
どうやらAutoHotKeyはexeやbat以外のものにコマンドラインオプションを指定しても、コマンドラインオプションとして認識してくれず、全て連結したファイル名を探そうとするようだ。
仕方ないので、実行ファイルと同じディレクトリにbatを作った。「Opera⇒ahk⇒bat⇒rb」という過程を得てようやくタイトル取得に成功。
余談2 ぐぐってみる
RubyからWin32API使えるんだから、ウインドウ一覧ぐらい取得できるのでは?
ruby 覚え書き - 現在開いてるウィンドウを調べる
あった。無事にアクティブなOperaウインドウを取得できた。
余談3 その発想は無かったわ
ニコニコ動画の仕様上、一度動画ページにアクセスしてるんだから、その時ついでにHTMLソース取得しとけば良くね?
戦い終わって ~神々の黄昏~
Operaが絡むと毎回ウインドウタイトルで泣かされる。今回は最終的に関係無くなったからいいが、やっぱりタイトルを取得できるようにするべきだ。
あと、せっかくなんで、ウインドウクラスからアクティブウインドウタイトルを取得するスクリプトを置いとく。Win32APIを使ってるんで、ActiveRubyとかじゃないと無理?
get_activewin_title.rb
Info
- 投稿日
- 2007年12月9日
- タグ
- opera、ruby
- このエントリの固定リンク
- http://diary/log/1576.html
- ブックマークに追加する
-
- コメント
2007
1209
Tagsoperaruby
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
いいかげんなボタン配置等がいかにも自分用。
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
- 投稿日
- 2007年11月14日
- タグ
- opera、userjs
- このエントリの固定リンク
- http://diary/log/1566.html
- ブックマークに追加する
-
- コメント
2007
1114
Tagsoperauserjs
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年10月16日
- タグ
- opera、userjs
- このエントリの固定リンク
- http://diary/log/1561.html
- ブックマークに追加する
-
- コメント
2007
1016
Tagsoperauserjs
- Disable script
- ページで読み込まれるスクリプトを全てはじき、スクリプトを無効化しているのと同等の状態で表示するようになります
- ujsenabledで始まる関数のみが実行されます
ユーザーJavaScriptだけ使いたいのですが - Opera-PukiWikiPlus!
んなばかな、と思いつつリンク先のを見てみたが・・・なーるM。これ考えた人すごいわ。しかも2005年て。
解説
イベントハンドラのBeforeExternalScript、BeforeScript、BeforeJavascriptURL、BeforeEventListenerに対してe.preventDefault()を設定することで、以下の方法によるJavaScriptの実行を阻止している。
- javascript: 形式
- script要素からsrcで外部スクリプトを呼び出す
- script要素に直接コードを埋め込む
- addEventListenerを使ってclick等から実行させる
基本的に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年10月15日
- タグ
- opera、userjs
- このエントリの固定リンク
- http://diary/log/1560.html
- ブックマークに追加する
-
- コメント
2007
1015
Tagsoperauserjs
数ヶ月前に一度書いたんだが、やはりUserScriptは遅い。そして常にJavaScriptを切っている身には役に立たたん。ということでProxomitron用フィルタとして書き出すようにした。
現状ではStylish.rdfからCSSを抽出して、@-moz-document指定されているものを1つのフィルタとして出力。それらにURL無指定の全体適用CSSをくっつけている。
「複数のルールのマッチを許可する」はOFFにしているので、同じ@-moz-documentが複数存在すると、1つしか適用されない。
あと、他人のStylishの管理方法なぞ知らないのでCSSの切り出し方は自分に合わせている。
- 1つのサイトに1つのスタイル
- スタイルの中身は全てを@-moz-documentの中に入れる
- 全体適用のCSSは1つのスタイルにまとめる
userstyles.orgから落としているだけなら問題無いと思う。たぶん。
あとはスクリプト内に使い方を書いているのでそこを読んでそっちを参照して欲しい。
opelish.ahk
Info
- 投稿日
- 2007年9月22日
- タグ
- firefox、opera
- このエントリの固定リンク
- http://diary/log/1555.html
- ブックマークに追加する
-
- コメント
2007
0922
Tagsfirefoxopera