Hatena::Grouptwitter

猫吸血鬼ディフリス(@deflis)のTwitterメモっぽいもの

 | 

2008-03-22ニコニコ動画をTwitterに投稿するGMスクリプトの大幅改造版

ニコニコ動画をTwitterに投稿するGMスクリプトの大幅改造版

12:57

こんな感じのリンクを追加します。(wrapper対応)

f:id:deflis:20080322201315j:image

インストール

2008-03-22 20:43 Enterキーで消えない不具合修正

2008-10-01 20:42 ニコニコ動画(秋)に暫定対応


ベース:

http://muumoo.jp/news/2008/01/28/0matanicovideo.html

http://nicovideo.g.hatena.ne.jp/hdkINO33/20080105/1199550328

以下ソース。

// ==UserScript==
// @name      mata nicovideo kai
// @namespace http://twitter.g.hatena.ne.jp/deflis/
// @include   http://www.nicovideo.jp/watch/*
// @author    deflis
// @version   0.2+
// ==/UserScript==
// original : http://muumoo.jp/news/2008/01/28/0matanicovideo.html
// thanks : http://nicovideo.g.hatena.ne.jp/hdkINO33/20080105/1199550328

function MakeMatamiteru(sLink, sMessage){
	Number.prototype.z = function(len){
		var s = '0'.fill(len) + this.toString();
		return s.substr(s.length - len);
	};
	String.prototype.fill = function(len){
		var result = '';
		for(var i = 0; i < len; i++) result += this;
		return result;
	};

	var tag = document.getElementById('matanicovideo');
	var header = document.getElementById("WATCHHEADER");
	var h1 = document.getElementsByTagName('h1')[0];
	if(!h1) return;
	var a = document.createElement('a');
	a.appendChild(document.createTextNode(sLink));
	a.href = 'javascript:void(0);';
	a.addEventListener('click',
		function(){
			var form = document.createElement('form');
			form.setAttribute('id', 'matanicovideoform');
			this.parentNode.parentNode.appendChild(form);
			this.parentNode.parentNode.removeChild(this.parentNode)
			
			var func = function(){
				var subject = h1.getElementsByTagName('a')[0].innerHTML;
				var url = location.href;

				var len = document.getElementById('flvplayer').wrappedJSObject.GetVariable('ContentLength');
				if(len == undefined) {
					len = document.getElementById('flvplayer').wrappedJSObject.GetVariable('nico.ContentLength');
				}
				var lmin = Math.floor(len / 60);
				var lsec = len % 60;

				GM_xmlhttpRequest({
					method: 'POST',
					url: 'http://twitter.com/statuses/update.json',
					headers: { 'Content-type': 'application/x-www-form-urlencoded' },
					data: 'status=' + encodeURIComponent(
						sMessage + ' ' + url + ' ' + subject + ' (' + lmin.z(2) + ':' + lsec.z(2) + ')' +
						((0 < text.value.length) ? ' ' + text.value : '')
					),
					onload: function(res){ GM_log('\u6295\u7a3f\u3057\u307e\u3057\u305f\u3002'); },
					onerror: function(res){ GM_log(res.status + ':' + res.statusText); }
				});
				document.getElementById('matanicovideoform').parentNode.removeChild(document.getElementById('matanicovideoform'));
			}
			
			var text = document.createElement('input');
			text.type = 'text';
			text.value = '';
			text.size = 20;
			
			var a = document.createElement('a');
			a.appendChild(document.createTextNode('[\u307e\u305f\u898b\u3066\u308b!]'));
			a.href = 'javascript:void(0);';
			a.addEventListener('click',func, false);
			
			form.appendChild(a);
			form.appendChild(text);
			form.addEventListener('submit',func, false);
			text.focus();
		}, false);
	tag.appendChild(document.createTextNode(" ["));
	tag.appendChild(a);
	tag.appendChild(document.createTextNode("]"));
}
(function(){
	var header = document.getElementById("des_2");
	var tag = header.getElementsByTagName('table')[0].getElementsByTagName('p')[1];
	var node = document.createElement('span');
	node.setAttribute('id', 'matanicovideo');
	tag.appendChild(node);
//	MakeMatamiteru('link', 'text');
	MakeMatamiteru('見てる', 'ニコニコ動画見てる :');
	MakeMatamiteru('また見てる', 'またニコニコ動画みてる :');
	MakeMatamiteru('まだ見てる', 'まだニコニコ動画見てる :');
	MakeMatamiteru('中毒', '何回も見てるけど中毒にはならないね');
	MakeMatamiteru('これはひどい', 'これはひどいwwwwww');
	MakeMatamiteru('オススメ', 'これオススメ→');
})();

投稿されるコメント(またニコニコ動画見てる)の種類を増やす(減らす)方法

21:10

	MakeMatamiteru('\u898B\u3066\u308B', '\u30CB\u30B3\u30CB\u30B3\u52D5\u753B\u898B\u3066\u308B :');
	MakeMatamiteru('\u307E\u305F\u898B\u3066\u308B', '\u307E\u305F\u30CB\u30B3\u30CB\u30B3\u52D5\u753B\u307F\u3066\u308B :');
	MakeMatamiteru('\u307E\u3060\u898B\u3066\u308B', '\u307E\u3060\u30CB\u30B3\u30CB\u30B3\u52D5\u753B\u898B\u3066\u308B :');
	MakeMatamiteru('\u4E2D\u6BD2', '\u4F55\u56DE\u3082\u898B\u3066\u308B\u3051\u3069\u4E2D\u6BD2\u306B\u306F\u306A\u3089\u306A\u3044\u306D');
	MakeMatamiteru('\u3053\u308C\u306F\u3072\u3069\u3044', '\u3053\u308C\u306F\u3072\u3069\u3044\uFF57\uFF57\uFF57\uFF57\uFF57\uFF57');
	MakeMatamiteru('\u30AA\u30B9\u30B9\u30E1', '\u3053\u308C\u30AA\u30B9\u30B9\u30E1\u2192');

の部分をいじればいけます。Unicodeエンコードされてますが以下と内容的には全く同じです。(ぐりもん文字化け対策)

削りたい場合は相当するものを削ってください。

	MakeMatamiteru('見てる', 'ニコニコ動画見てる :');
	MakeMatamiteru('また見てる', 'またニコニコ動画みてる :');
	MakeMatamiteru('まだ見てる', 'まだニコニコ動画見てる :');
	MakeMatamiteru('中毒', '何回も見てるけど中毒にはならないね');
	MakeMatamiteru('これはひどい', 'これはひどいwwwwww');
	MakeMatamiteru('オススメ', 'これオススメ→');

追加したい場合

たとえばボタンを「ニゴニゴ見てれぅ」、メッセージを「またニゴニゴ動画みてれぅ」にしたものを追加したい場合、

	MakeMatamiteru('ニゴニゴ見てれぅ', 'またニゴニゴ動画みてれぅ :');

このようなのを追加しUTF-8保存してください。*1

 |