mosleの日記

2006-10-13 Gmailだけで自分自身とチャットする方法(bookmarklet) - メモ取り用 このエントリーを含むブックマーク

Gmailのchatは、ログに残ります。ですのでメモ取り、集約に便利。

でも、アカウントが二つ要る or | and 相手をオンラインにしなければならない。かといって、新規メール→下書き保存はめんどくさい。

「自分にチャットできたらいいのに…」と思いました。(Gmailで解決したいんですよ僕は)


ちょっと前まで


この方法(メモをどこに保存するか決められなくて困る【確かに】)でちょっとしたメモを取るのに、meebo(http://www.meebo.com/)を利用してたんですが、ウィンドウが2つ要るのと毎回ログインするのがだんだん嫌になってきたので方法を探ってみました。

なんかそういうものがあるのかもしれません(もしくはもっと簡単にできる?)が、余計なもの入れたくないたちなので簡単な方法で考えてみました。

左下にQuick Contacts(クイックコンタクト)が並んでる(デフォルト)環境のみ想定してます。(SafariGmail上でのチャットに対応してないので無理ですね)

JavaScriptの仕様がちょこちょこ変わるみたいなので、bookmarkletという形で書きます。


その方法


以下のブックマークレットを登録し、Gmailログイン状態の時に実行してください。(意味わからなければgmailを見ているときにブラウザのアドレス欄に貼り付けてEnterでもいいですよ)

javascript:(function(){var fc=String.fromCharCode,o=window.js,z=["$",""];if(o&&typeof(o._$)!="function"){for(var i=0;i<26;i++)z.push(fc(65+i),fc(97+i));var f,Z=z,l=z.length;for(var i=0;i<l;i++){for(var j=0;j<l;j++){var x=z[i]+Z[j];if(x&&typeof(o[x])=="function"&&o[x].toString().match(/<button cl/)){f=x;break;}}if(f==x){break;}}if(f){o._$=o[f];o[f]=function(a,b,c,d){if(!a&&b.match(/^chat_/)){a=true}return o._$(a,b,c,d);}}else{alert("NG")}}setTimeout("window.js._BZ_Signin(0,{})",100)})()

んーなんとか500バイトに収まった。(FirefoxとIE6で動作確認済み)

クイックコンタクト(Quick Contacts)の自分のアカウントマウスを持っていっても普段はチャットのボタンが押せませんが上記ブックマークレットを実行すると、押せるようになり自分とチャットできます!(ログにも残りますよ!)

f:id:mosle:20061013143817g:image

f:id:mosle:20061013143915g:image

Greasemonkeyスクリプトを書くと、メンテを求められそうなので誰かに期待(サポートとかも含めて…)


一応整形済みソース

javascript:(
	function(){
		var fc=String.fromCharCode,o=window.js,z=["$",""];
		if(o||typeof(o._$)!="function"){
			for(var i=0;i<26;i++){
				z.push(fc(65+i),fc(97+i));
			}
			var f,Z=z,l=z.length;
			for(var i=0;i<l;i++){
				for(var j=0;j<l;j++){
					var x = z[i]+Z[j];
					if(x&&typeof(o[x])=="function"&&o[x].toString().match(/<button cl/)){f=x;break;}
				}
				if(f==x){break;}
			}
			if(f){
				o._$=o[f];
				o[f]=function(a,b,c,d){
						if(!a&&b.match(/^chat_/)){a=true;}
						return o._$(a,b,c,d);
				};
				
			}
			else{
				alert("NG");
			}
		}
		setTimeout("window.js._BZ_Signin(0,{})",100)
	})()



免責


詳しくはソースってことでお願いします。かなり想像入ってますので、動かない場合もあるかもしれません。(動いたバージョン番号で分けるべきと思います…)

お決まりの自己責任で。


Gmailの仕様が変わった時や、僕が想定してるGmailでない場合使えないこともあろうかと思います。

「自分自身とチャットするなぞけしからん」とGoogle先生にアカウント消されても知りません。

その辺ご理解ください。


このブックマークレットは、ポップアップの「チャット」ボタンを全て有効にするので、

前回のようにダミーアカウントを取るだけ取っておいて、offlineモードでチャット=メモするのも良いかと思います。

(他人がオフラインでも書けますが急にオンラインになって困りそうなのでやらないほうが無難です)



もっといい方法あれば教えてください。

natsuminatsumi 2006/10/18 10:35 私は英語版のGoogle Talk 1.0.0.99を使っていますが、検索ボックスに自分のアカウントを入れて出てきた自分の名前にマウスオーバーして出てきた自分にあるchatボタンを押すか、右上にある逆三角からchatを選択して、今まで自分とチャットをしてきました。皆そうしているものだと思っていましたが、実際これは既知のことなのでしょうか?
mosleさんは日本語の環境でGoogle Talkを使いたいというこだわりから、このようなブックマークレットを作ったのでしょうか?

moslemosle 2006/10/18 11:00 >natsumiさん
ありがとうございます
「ブラウザ上のGmail”のみ”」でやりたい(Google Talkなりを使わずに)という内容なんです。
わかりにくかったかな。すみません

harukaharuka 2006/10/18 11:01 日本語環境のGoogle Talk でも、natsumiさんの方法でできます。

natsuminatsumi 2006/10/18 18:00 >mosleさん ありがとうございます。なるほど、分かりました!
>harukaさん 日本語環境では出来ないと思っていました。ありがとうございます。

夏 2007/04/07 18:00 何で、チャットってそんなに無いんですか?意味が分かりません。         意味を教えて下さい。宜しくお願いします。お願いします。チャットやりたいです。 やらせて下さい。

夏 2007/04/07 18:00 何で、チャットってそんなに無いんですか?意味が分かりません。         意味を教えて下さい。宜しくお願いします。お願いします。チャットやりたいです。 やらせて下さい。

夏 2007/04/07 18:00 何で、チャットってそんなに無いんですか?意味が分かりません。         意味を教えて下さい。宜しくお願いします。お願いします。チャットやりたいです。 やらせて下さい。

Connection: close