JavaScript

pluginManager の WikiParser 書いてみた。

明日まで待つことの出来ない我慢弱い子のなので、自分で書いてみた。 やりかたも全くちがっているので、駄目だったら戻します(or 戻してください)。 一応、自分で確認する限りでは問題がなかった。 http://coderepos.org/share/changeset/29577んで、とりあ…

stella.js を微妙に改良

コメント欄にある動画へのリンクを関連動画として抽出するようにしてみた。 前sm5215213 マイリスmylist/9031428 次sm5235691の様なコメントがある場合、 #sm5215213 前 #sm5235691 次 :strelationsの様な感じになるタグに "次sm5235691" ってなっているパタ…

どう書く? - self-printing program

さっくり出来そうなのがあったので、思わずやってみた。 久しぶりの投稿なり。 いわゆるself-printing programです。 今まで出てなかったっぽいので投稿してみました。 実行すると、そのソースコードの内容をそっくりそのまま表示するコードを書いてください…

関数がどうやって呼ばれれているのか調べる

関数がどこから呼ばれているのか知りたいときによく使うコード 関数のどこかに埋めて置くだけ try{(0)()}catch(e){alert(e.stack)} 結果はこんな感じ ("baa",1)@chrome://liberator/content/options.js:136 ("baa",(void 0))@chrome://liberator/content/opt…

PLUGIN_INFO から HTML を生成するスクリプト

http://vimperator.kurinton.net/ PLUGIN_INFO から自動生成するプラグインを書いて作成。 これ用にかいたスクリプトをコミットしてみた。 やや黒いスクリプトだけど…。 汚いのは仕様です。http://coderepos.org/share/browser/lang/javascript/vimperator-p…

データの保存/読み込み in info ディレクトリ

info ディレクトリにデータを保存するためのクラス(?)を書いた。 黒魔術を使い手抜きをすることで、一行で出来た。 function Somali (n) let(V,[l,s,j,t]=liberator.eval('[loadPref,savePref,json,Object]',storage.newObject)) ({load:function(d)let(v=l(…

拡張にグローバルを汚されていないかチェック

拡張にグローバルを汚されていないかチェックするのにほんのり便利なプラグイン。 前回起動時のグローバル変数と現在のそれの差を取って表示する。 Ank Pixiv Tools をインストール直後に :garbages を実行するとこんな具合に。 たまに盛大に汚してくれる拡…

ChromeWindow の最大化とか

普通のウィンドウとはちょっと違うようだ 状態を調べる window.windowState === window.STATE_MAXIMIZED //最大化 window.STATE_NORMAL //通常 window.STATE_MINIMIZED //最小化 状態変更 window.maximize() // 最大化 window.minimize() // 最小化 window.r…

maine_coon.js 次回起動時

http://vimperator.g.hatena.ne.jp/nokturnalmortum/20090107/1231320373 改良して、キャプションバーを隠せるようにしてみた。 けれど、再起動時のウインドウサイズがおかしいっぽい。 最大化状態とかをちゃんと扱えばいいのかな? うーむ 上にずれるってや…

Option#get 修正 とその影響

Option の getter を設定しても、ちゃんと使われていなかったのを修正。 http://vimperator.org/trac/gitweb/?p=liberator.git;a=commit;h=75c1eb1222c77809b3c63cafed1518a24e3e11cf その後、妙なバグ(showtabline 周りが奇怪な挙動になる)が発生したのでそ…

info/ のバグ直した - selectedProfile の罠

services.get("profile").selectedProfile.name でプロファイル名を取得していたせいでバグっていたようだ。 Firefox3 でまともにプロファイル名を得ることは出来ないのかなぁ。 http://vimperator.org/trac/gitweb/?p=liberator.git;a=commit;h=51e29f95be6…

alert.js - タイマー的な物。

新年早々、プラグインをリリース。 変な仕様の変な懲り方をしたプラグイン。 http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/alert.js こんな感じで、指定時間(分で指定 "1.5" "2.0")後にいろいろな方法でアラートを出せる。…

scenaio-actor.js - 機能の有効無効を切り替え可能に

なにやら、おもしろげなのが出ている。 キーを打つのも面倒くさい! http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/scenario-actor.js 勝手コミット 常に有効だと困る気もするので、機能の有効無効を切り替え可能に。 http:…

怪しげパッチ

謎パッチをコミットしてみた。 revert されるかもしれんけど、解決方法もなさそうなので。 setTimeout にすれば大丈夫そうなだけど、わざわざスレッドにしたくらいだしなぁ。

nsITaggingService のバグ?

本日の謎バグについての追加検証。 Firefox 側の問題っぽいな。 バグなのか仕様なのかはわからない。 (別スレッドで、うごかしちゃいけないのかも) とりあえず、実証コード。 (function () { let useThread = 1; let preExec = 1; let taggingService = Cc["…

謎のバグに対するの謎の修正方法

:topen などの補完が効かない人が当てるとそれが直るかもしれないパッチ。 diff --git a/vimperator/content/bookmarks.js b/vimperator/content/bookmarks.js index 277b5cc..ff99e3d 100644 --- a/vimperator/content/bookmarks.js +++ b/vimperator/conte…

プラグインローダ

UNIX系OSならシンボリックリンクがあるので、svn updateするだけで良いんだけど、Windowsだとそうもいかない。腹立たしくなってシェルを書いた。 plugin_loader.js 使えば何もしなくても良いのに。 js <

auto_detect_link.js

IRC next link 話を眺めていたらなぜか思いついたのを入れてみた。 うんこかもしれんけど。 http://coderepos.org/share/changeset/26810/lang/javascript/vimperator-plugins/trunk/auto_detect_link.js

FoxyTunes.js

テケトーに書いてみた。 任意のファイルを再生したりできるかと思ったができないような感じがしてきたのでやる気喪失。 http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/foxytunes.js 怪しげなタグ共を気合いスクリプトで整理…

ニコニコ動画/YouTubeを操作するプラグイン

nicontroller.js youtubeamp.js nico_relalted_videos.js などがすでにあるが、いつのまにかできていた。*1 特長 一つのプラグインで複数のサイトに対応*2 対応サイトであれば、同じコマンドで操作できる。 フルスクリーン表示機能がある*3 ステータスバーに…

プライベート関数を置き換える黒魔術

id:hogelog さんが怪しげな事をやらかそうとしていたので唐突に思いついてみた。 ここでの目的は hints.js の onInput の中にオレオレ処理を追加する事。 しかし、onInput は所謂プライベート関数なので、普通にやっても書き換えたり参照することは出来ない…

FoxyTunesをエコーライン(?)に移動する

FoxyTunes がステータスバーを占領しすぎるので、したに追いやることにした。 背景が黒いと、ボタンが異常にみにくいのでその点でも良い。 コマンド化するから別にいい気もするけど。 autocommands.add( 'VimperatorEnter', /.*/, function () { setTimeout(…

nextlink.js

http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/nextlink.js 以前 auto_detect_link.js も AutoPagerize 対応したけど、こちらのほうがよさげ。 うまく併用できないもんかな。

こまぶくとわな

http://d.hatena.ne.jp/janus_wel/20081206/1228593023#c で教えてもらった commandBookmarklet.js いじってたらいつの間にか別物になっていた ( refactoring 的な意味で。 罠にはまっていたのでさらに修正。 とても罠チックですね。 (参考 -> 罠チック let …

メインクーンで窒息死

微妙に画面を大きく使えるプラグインを書いた。 適用するとこんな感じでコマンドラインが見えなくなる。 ":" を打ったりすれば出てくる仕組み。 http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/maine_coon.js Vimperator 2.0…

Wav を再生する

えらい簡単だったのでプラグインにする必要は無いな。 liberator.modules.util.playSound = let (sound = Cc["@mozilla.org/sound;1"].createInstance(Ci.nsISound)) (sound.init(), function (path) sound.play(makeFileURI(io.getFile(path)))); autocomma…

はてなスター爆撃

Hint の Mode#action に count 引数を加えるコミットをしたので… 10;h などでスターを 10 個付けたりとか出来るようにしてみた。 http://coderepos.org/share/changeset/26132 hints.Mode の機能追加 liberator.modules.hints.addMode(hmap, 'Add hatena sta…

プラグインの遅延処理

setTimeout * 番外編。 JavaScript で何か処理を遅延させたいときの常套手段。 library を使う側を setTimeout で囲む。そうするとその plugin だけ遅延して実行されるので結果的に library が先に読み込まれる。 * library を使う側が考慮しなきゃならない…

HHV強化。

HHV(Happy Hacking Vimperator)を強化してみた。 なんか、酒を飲んでないのに飲んだみたいな感じになってる。 おかしい。

Vimperator プラグイン用ライブラリ

id:suVene さんがコミットしているのを発見! http://coderepos.org/share/browser/lang/javascript/vimperator-plugins/trunk/libly.js こういうのが出てくると、特定のプラグインを先に読むような機構が欲しくなってくるなぁ。 体調が悪いので、dateFormat…