Archive for 1月, 2010

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したものが含まれないとそんな問題もある。

ブックマークレットの登録を手助けするブックマークレット

タイトルままですが、ブックマークレットがjavascript:~~~みたいにべた書きしてある場合、ブックマークレットとして登録するのが面倒なので、
それを登録するためのリンク(よくあるツールバーへD&Dするためのリンク)を作成するブックマークレット。

使い方

英語のニュースを読みやすくするブックマークレット – by edvakf in hatena
http://d.hatena.ne.jp/edvakf/20100115/1263539415

上を例にしてみると

ブックマークレットのテキストを選択

  1. べた書きされたブックマークレットのコード部分だけを選択する
  2. ブックマークレット登録補助ブックマークレットを実行
  3. プロンプトが出るので、登録するブックマークレットのタイトルをいれる(英語のニュースを読みやすくするとか)
  4. 選択範囲のすぐしたにいれたタイトルでリンクができるので、それをブックマークレットツールバーへD&Dする。

以上

(function(){
function insertAfter(newNode, node) {
        return node.parentNode.insertBefore(newNode, node.nextSibling);
}
var selection = getSelection();
if (!selection.rangeCount) return false;
var range = selection.getRangeAt(0);
var endNode = range.endContainer;
var a =document.createElement("a");
a.href = range;
var str = document.createTextNode(prompt("ブックマークレットタイトル"));
a.appendChild(str);
insertAfter(a,endNode);
})();

ニコニコ動画のマイリストページに共起タグクラウドを表示する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

Dropbox関係のソフトウェア

なんとなくメモ

  • DropboxPortable
    DropboxをUSBなどから使えるようにするソフト
  • Dropbox Screen Grabber
    Gyazoのようなソフト。ウィンドウのスクリーンショットを取ってpublicフォルダに入れる。
  • Dropboxen
    複数のアカウントとパスを使ってそれぞれ共有させるソフト
  • Conflict Manager
    共有して競合が起きた際に、元のデータとConflictしたデータのdiffを見てどちらを残すかを選ぶソフト

他にもサーバで動かすようなPHPなものなどいろいろある。

DropboxAddons – Dropbox Wiki
http://wiki.dropbox.com/DropboxAddons


これからDropboxアカウント登録をお考えの方は、下のリンクから(紹介者と申込者に250MBの容量がおまけにつくそうです。)
Sync your files online and across computers with @Dropbox. 2GB account is free!


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

WebMoney ぷちカンパ