Posts Tagged ‘Greasemonkey’

twilogに日付毎のページへ飛ぶリンクをつけるGreasemonkey

twilogの日付の隣あたりに日付毎のページへ飛ぶリンクをつけるGreasemonkeyです。
要は下のスクリーンショットみたいに日付ページへ飛ぶリンクをつけるだけです。

カッとなってつけたけどデフォルトでないのが意外。

twilog date linker for Greasemonkey
http://userscripts.org/scripts/show/70683

Twitterへ見ているサイトを投稿するGreasemonkey「Post Now browsing to Twitter」更新

今見ているサイトのURLをコメントとともにTwitterに投稿するGreasemonkeyであるPost Now browsing to Twitterを更新したので更新内容について。
どんな感じのものかは以前の記事を見てください。

今見ているサイトをTwitterに投稿する「Post Now browsing to Twitter」 | Web scratch
http://efcl.info/2009/0929/res1369/

更新点

  • 入力UIの変更

今まではコメントの入力を通常のプロンプトで行っていましたが、入力用のテキストエリアをショートカットを押した際に表示する用にしました。
コメントするUIとポストした際の並びに統一感がでたのと、コメントの入力に対してリアルタイムで合計の文字数をカウントアップします。(140文字をオーバーしても自動でタイトルを切って140文字に納めるのでカウントアップにしてます。)
コメント入力後(未記入でもOK)Ctrl+Enterを押すとTwitterにポストします。
コメント入力をキャンセルしたい場合はESCキーを押すことでキャンセルできます。

また、promptの時とは違いテキストエリアで入力するので、モーダルダイアログのように入力欄が表示されているとき、ページ上のテキストを選択できないということがなくなります。

後は細かい修正。
インストールはこちらから

Post Now browsing to Twitter
http://userscripts.org/scripts/show/46441

Jetpackで何かを作ってみる(作り方など

最近Jetpackをいじり始めたので、何かを作りながら作り方を学んでみる。

作ったものなど


  1. Copy shorten URL with is.gd
    クリックするとクリップボードに今のURLを短縮したものがコピーされる。
    いわゆるクリップボード機能&ステータスバーに挿入を使ってみたかった。
  2. LDR_StatusBar_Notify
    LDRの未読件数をステータスバーに表示
    LivedoorReader StatusBar Notify
    http://d.hatena.ne.jp/zuzu_sion/20090520/1242900564
    を現在のバージョンで動くように修正しただけです。
    昔のバージョンではimportがなかったり、Jetpackが大文字でも動いてたらしい。
  3. clipboard_display
    クリップボードの内容をステータスバーに表示。

    いわゆるクリップボード機能を使ってm(ry
    クリップボードが変更した際に知らせてくれるようなAPIはなかったのでintervalで回してるだけ。

  4. Nico_make_volume_corrections
    ニコニコ動画で再生開始時にSettingで決めたボリュームにする。

    manifestで設定画面が簡単に作れるのはいい感じ。
    いわゆるGreasemonkey的なものなJetpack
    サイトの範囲を指定するのにはpageModsを使用する
    Labs/Jetpack/JEP/17 – MozillaWiki
    unsafeWindowはwrappedJSObjectを使っちゃってるが、javascript:プロトコルでブックマークレット的にやる方がよいです。
    これがXPCNativeWrapperとunsafeWindowの間でデータを送受信する | へびにっき 参考になります。

JetpackのAPIは
プロファイルフォルダ\extensions\jetpack@labs.mozilla.com\content\js
のjsを読むと何があるか分かる。
解説はLabs/Jetpack/JEPs – MozillaWikiを見て、検索をかける(たいていの場合まめ畑がかかります)

azu さんのjetpackに関するメモに返信 に自分がメモったことに対してteramakoさんからの指摘が書いてあります。
今Jetpackでどんなことがどのようにできるのかが何となく書いてあります。

Jetpack – MDC
https://developer.mozilla.org/ja/Jetpack
簡素だがAPI解説がまとまってる
Jetpack APIリファレンス | Screw-Axis
http://screw-axis.com/jetpack/jetpack-api-referencejetpack-api-reference/
ちょこっと古いけどわかりやすい
[Jetpack] – Cli@
http://d.hatena.ne.jp/efcl/searchdiary?word=%2a%5bJetpack%5d
なんかリンクいろいろ
30分で作るJetpack Feature (1) 概要 – JavaScriptとかPerlとかPHPとかさくらとか勉強する
http://d.hatena.ne.jp/lesamoureuses/20090715/1247637734
チュートリアル

JetpackにはSlideBarという機能もあるが今回全く触れてない。
All-in-One  Sidebarみたいなものを使えるらしい。


Greasemonkey使ってないスクリプトを削除するメモ

Greasemonkeyで使ってないスクリプトを削除したい。

gm_scriptsディレクトリにあるconfig.xmlを編集

^(?!.*enabled="true").*$

を空に置換して有効になっているものだけを取り出す

^\n

も空に置換して空の改行をなくす

^.*?filename="(.*?)".*?basedir="(.*?)".*?$
を下のように置換して使っているファイルのパスを出す。
\2/\1

なんかゴミが残ったりするので上の正規表現が適当なせい。

ここまでの手順で、使っているスクリプトの.jsまでのファイルパスが抽出できる。
で、こっからどうやってそれらのファイルだけを取り出せばいいのかがよくわからない。
こんな感じででる。(なんかいろいろおかしい)

./googlenotebookcustomizer.user.js
pastedscripinstaller3.user.js.
simplestylegoogle_mania.user.js
hb_display_comment/hb_display_comment.user.js
.....

リストに載っているものを移動するときに(その方法すら浮かんでない)Requireしたものが含まれないとそんな問題もある。

ニコニコ動画のマイリストページに共起タグクラウドを表示するGreasemonkey

ニコニコ動画の検索ページに共起タグクラウドを表示するChrome用ユーザスクリプト作ってみた – あたご型護衛艦日記
http://d.hatena.ne.jp/aTaGo/20100112/1263285275

という便利なものがあったので公開マイリストページにもタグクラウドを表示するGreasemonkeyを書いてみた。

// ==UserScript==
// @name           Mylist TagCloud
// @namespace      http://efcl.info/
// @include        http://www.nicovideo.jp/mylist/*
// ==/UserScript==
evalInPage(function(){

	var as = my.currentItems
	var ids = "";
	if(as.length > 1){
		insertcallback();
		for(var i = 0; i < as.length; i++){
			var smid = as[i].item_data.video_id;
			ids += smid + "+";
		}
		//console.log(ids);
		var uri = "http://nicotag.sakura.ne.jp/getcollocationtag.php?smid=" + ids + "&rand=" + Math.floor(Math.random()*1000);;
		calljsonp(uri);
	}

function calljsonp(uri){
	var scr = document.createElement('script');
	scr.type = "text/javascript";
	scr.src = uri;
	document.body.appendChild(scr);
}

function insertcallback(){
	var callscr = document.createElement('script');
	callscr.type = "text/javascript";
	callscr.text = ''
			+ 'function callback(val){'
			+ 'var footer = document.querySelectorAll("div#SYS_box_mylist_body");'
			+ 'var foot = footer[0];'
			+ 'var div = document.createElement("div");'
			+ 'div.innerHTML = val;'
			+ 'foot.parentNode.insertBefore(div, foot);'
			+ '}';
	document.body.appendChild(callscr);
}
})
function evalInPage(fun) {
  location.href = "javascript:void (" + fun + ")()";
}

JSONPでしか取得できないような気がしたので、ほぼそのままな感じ。
確かめてないけどChromeでも動くかも。

Googleの検索結果画面にTwitter検索の結果も表示するGreasemonkey(焼き直し)

Googleの検索結果画面にTwitter検索の結果も表示するGreasemonkeyスクリプトです。

以前、Twitter Search Results on Google for Greasemonkey [ http://userscripts.org/scripts/show/43451 ]を元に書いたものの焼き直しです。

Googleの検索結果にtwitter検索の結果を同時に表示するGreasemonkey | Web scratch
http://efcl.info/2009/0826/res1266/

また一から書き直してみた。
機能はほとんど変わってません。

少し似た目が変わったのと、その場でTwitter検索の結果を継ぎ足せるようにしたぐらいです。
インストールはこちらから

Twitter search(ja) result on Google for Greasemonkey
http://userscripts.org/scripts/show/65540

TwitterのWebページをサイドバーで使うためのまとめ

Twitterのウェブサイトをクライアントとして使うのに役立つGreasemonkeyとCSS | Web scratch
http://efcl.info/2009/0317/res613/

以前書いたような記事と似たような記事を書きましたが、今回はシンプルにサイドバーでTwitterのWebページを表示する方法です。
Greasemonkeyがサイドバーでも動作するようになったので、かなり快適になり、またWebページを表示するだけなのでAPIを使わないのが特徴です。


最終的な似た目

最終的な似た目


まずはCSSでサイドバーに合わせた形にする必要があります。

nukumori wiki – Firefoxのサイドバーでtwitter.comするCSS
http://nukumori.org/hiki/?TwitterSidebarCSS

にあるCSSを使ってサイドバーに合わせたものにしていきます。
使い方は書いてあるのでそれをよく読んでCSSを反映させます。
(ブックマークするのはhttp://twitter.com/?sidebar という適当なクリエを付けたURLです。
http://twitter.com/だと通常見るときと混ざってしまうため。)

ブックマークではなくCustom Buttonsを使ってtwitterをサイドバーに表示するボタンを作成する方法もあります。
Twitterをサイドバーに表示するボタンを作成しておきました。

  • userChrome.css
    少し自分向けに修正したCSS(通常のTwitterページ向けも混ざってる)

次により使い易くするためのGreasemonkeyを入れていく。

Ctrl+Enterでポストする。

自分の投稿や、特定のワードが入ってる投稿を色分けする
tyoro.exe: 投稿内容からマッチングしてスタイル変えるグリモン書いたよ!

自動更新の差分を自動で取得
Twitter webの自動差分更新Greasemonkeyスクリプトを書いてみた « H.LOG


自分は入れてませんが基本的にはTwitterのWebページと同じなので、

など入れるのもありかもしれない。


Greasemonkeyでサイト既存の関数を上書きする

サイトに新たに機能を付け加えるのではなくて、元々サイトに存在してる関数を少しだけいじってやった方が簡単な場合があります。
そういうときにGreasemonkeyからサイトに元々ある既存関数を上書きする方法です。

SmartLDR更新 – 素人がプログラミングを勉強するブログ
http://d.hatena.ne.jp/javascripter/20090324/1237903880

ここで紹介されているlocation.hrefとjavascript:プロトコルを使ったハックを使うと比較的簡単に関数の上書きができます。
例えばmyFuncという関数を上書きしたい場合は以下のようにjavascript:プロトコルからmyFuncを再定義すると上書きができます。

function evalInPage(fun) {
  location.href = "javascript:void (" + fun + ")()";
}

evalInPage(function () {
myFunc = function(){
	上書きする内容
}
});

location.hrefとjavascript:プロトコルを使って実行するとXPCNativeWrapperの外側でスクリプトを評価できる(Greasemonkey内の評価ではなくなる)ので、unsafeWindowを使わなくても既存の関数に触ることができます。
逆にGreasemonkey内の評価ではなくなるので、GM_関数は使えなくなります。(感覚的にはブックマークレットを実行するのと同じ)
これを同期的に扱いたいならJSDeferredを使って下のように組み込むといいらしい。

unsafeExec on JSDeferred – 枕を欹てて聴く
http://d.hatena.ne.jp/Constellation/20090326/1238073714

9washのRTフォーマットを一般的なものに変更するのにこの方法を使ってみた。
9washはブラウザから利用できるWeb twitterクライアントです。
軽くて使い易いので、いいクライアントだと思いますが、RTのフォーマットが[RT:数字id @ユーザー名]みたいになっていて、使いにくかったのでその部分の関数を上書きして、よく使われているようなRT @ユーザー名:の書式に変えるようにしてみました。

9wash twitter clientについて
http://tw.9wash.com/about


LDR all-in-one Hatena extensionを修正

Fastladder まわり ( はてなまわり機能追加 ) – KBDAHOLIC – やぬすさんとこ
http://d.hatena.ne.jp/janus_wel/20090111/1231678843

LDR all-in-one Hatena extension.user.jsが動かなくなっていたため、勝手に修正しました。

はてなスター周りはばっさりカットしてしまった。
なので、基本的な機能ははてなブックマーク数とコメント表示をするGreasemonkeyというもの。

修正点

Greasemonkeyではwindow.evalが使えない、eval.call(window, src) – はてなダイアリー – 無料で簡単。広告のないシンプルなブログをはじめよう!
http://d.hatena.ne.jp/brazil/20060821/1156164845

JSONをパースするために使われていた上のテクニック部分がエラーを吐いて動いてなかったので、ネイティブJSONを使ってみました。(Firefox3.5~だったかな。)
sabdbox周りの変更が原因らしいです。

gist: 233723 – GitHub
http://gist.github.com/233723

Firefox Developers Conference 2009 アウトラインメモ

Firefox Developers Conference 2009に参加して適当にメモを取っていたので一応公開。
とても読みづらく、まとまっていません。 またトークセッションなど力尽きているところもあるので真剣に読んではいけない。

Read the rest of this entry »

プロフィール: azu(あず)
Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
  • OS:Vista
  • ブラウザ:Firefox
  • Twitterのアカウントはこちら
  • azu_re
  • メールアドレス(Twitterの方が確実)
  • info@ドメイン名
リンク
あわせて読みたい