技術メモ帳 このページをアンテナに追加 RSSフィード

2007-02-17

[]ニコニコ動画に簡単投稿ブックマークレット 18:09 ニコニコ動画に簡単投稿ブックマークレット - 技術メモ帳 を含むブックマーク ニコニコ動画に簡単投稿ブックマークレット - 技術メモ帳 のブックマークコメント

youtubeとかの動画ページ上で実行すると

ニコニコ動画に簡単投稿できるブックマークレットを適当に作った。

javascript: location.href = %22http://www.nicovideo.jp/watch?v=%22 + escape(location.href) + %22&submit.x=0&submit.y=0A%22;

作ってから気づいたのだが、

すでにニコニコ動画に投稿済みの動画だったときは

自動でその実況ページ?に遷移してくれるみたいなので

投稿ついでに、ニコニコ動画でのコメント見たいときに便利。

既出感を感じつつ。


--

GM_XHR でニコニコ動画のコメント一覧取得して

動画の盛り上がりどころをグラフで可視化するのって面白いんじゃないかな。

で、実はそれが捏造棒グラフだったりして。


[]天空部落にダウンロード用リンク付加するGreasemonkeyスクリプト 18:53 天空部落にダウンロード用リンク付加するGreasemonkeyスクリプト - 技術メモ帳 を含むブックマーク 天空部落にダウンロード用リンク付加するGreasemonkeyスクリプト - 技術メモ帳 のブックマークコメント

中国にあるYoutubeっぽい動画サービスである、

天空部落(語感がかっこいい)の音声ファイルに

ダウンロード用リンクを付加するGreasemonkeyユーザースクリプト作った。


tenkuu_buraku_add_download_link.user.js

// ==UserScript==
// @name           tenkuu_buraku_add_download_link
// @namespace      http://
// @description    
// @include        http://mymedia.yam.com/m/*
// ==/UserScript==

window.addEventListener("load", function(){
	var str = unsafeWindow.document.mymovie.src;
	var mp3filePath = str.match( /mp3player.swf.mp3file=([^&]+)/ )[1];
	
	var e = document.createElement('div');
	e.innerHTML = "<a href='" + mp3filePath + "'>download</a>";
	
	var node = document.getElementsByTagName("h1")[0];
	if(node.className=="heading")
		node.appendChild(e);
},false);

追記:

誤解を招くような表現があったので以下のように訂正させていただきました。

"中国版Youtube" -> "中国にあるYoutubeっぽい動画サービス"

稚拙な表現であった事を心からお詫び申し上げます。

アックイアックイ 2008/02/26 16:35 何処にダウンロードリンクが表示されるんですか?

2007-02-06

[]tabesugi.netとの有限時間いたちごっこ 00:43 tabesugi.netとの有限時間いたちごっこ - 技術メモ帳 を含むブックマーク tabesugi.netとの有限時間いたちごっこ - 技術メモ帳 のブックマークコメント

tabesugi.netの仕様変更に対応してみた。

それにしても、"2007年 如らぎ (1)。"

というような形式になるとは思いもしなかった。

もはや月の概念が消滅している。


しかし、そこに論理的構造さえ存在していれば、

プログラミングが答えを導くのだ。


tabesugi_net_permalink.user.js

// ==UserScript==
// @name         tabesugi.net permalink user script
// @include       http://tabesugi.net/memo/cur/*
// ==/UserScript==

window.addEventListener("load", function(){
	function $T(tagName){
		return document.getElementsByTagName(tagName);
	}
	
	var title = $T("title")[0];
	var date = new Date(document.lastModified);

	var year = date.getYear() + 1900;
	var month = date.getMonth() + 1;
	var rev = title.innerHTML.match( /\(([0-9+-+]+)\)/ )[1];

	if( rev < 0 )
		rev = String.fromCharCode(rev + 'z'.charCodeAt(0) + 1);

	var links = $T("a");
	Array.forEach(links , function(link){
		if( /^\(.*\)$/.test(link.innerHTML) ) {
			var anchor = document.createElement('a');
			anchor.innerHTML = "permalink";
			anchor.href = "http://tabesugi.net/memo/" + year + "/" + month + rev + ".html#" + link.name;
			anchor.style.marginLeft = "10px";

			link.parentNode.appendChild(anchor);
		}
	});
}, false);

追記(2007/02/24):

リファクタリング / Dateオブジェクト使うようにしたりとか。

2007-01-23

[]えきから時刻表の印刷用ページから広告を消すGreasemonkeyスクリプト 00:13 えきから時刻表の印刷用ページから広告を消すGreasemonkeyスクリプト - 技術メモ帳 を含むブックマーク えきから時刻表の印刷用ページから広告を消すGreasemonkeyスクリプト - 技術メモ帳 のブックマークコメント

各駅の時刻表を提供してくれているというすごくありがたい

「えきから時刻表」 というサービスがある。

http://ekikara.jp/


で、その印刷用ページには、当然のように広告が表示されているわけなのだが、

すごく私的かつエゴイズムの極みにより

広告を除去するGreasemonkeyスクリプトとStylish用CSSを作った。


以下のページでテスト。

http://ekikara.jp/newdata/line/2301011/13101011/down-1_1p.htm?


ekikara_kesu_ad.user.js

// ==UserScript==
// @name           ekikara.jp kesu AD
// @namespace      http://
// @description    ekikara.jp kesu AD
// @include        http://ekikara.jp/newdata/line/*
// ==/UserScript==

$X = function (exp, context) {
    if (!context) context = document;
    var resolver = function (prefix) {
        var o = document.createNSResolver(context)(prefix);
        return o ? o : (document.contentType == "text/html") ? "" : "http://www.w3.org/1999/xhtml";
    }
    var exp = document.createExpression(exp, resolver);
    
    var result = exp.evaluate(context, XPathResult.ANY_TYPE, null);
    switch (result.resultType) {
        case XPathResult.STRING_TYPE : return result.stringValue;
        case XPathResult.NUMBER_TYPE : return result.numberValue;
        case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
        case XPathResult.UNORDERED_NODE_ITERATOR_TYPE: {
            result = exp.evaluate(context, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
            var ret = [];
            for (var i = 0, len = result.snapshotLength; i < len ; i++) {
                ret.push(result.snapshotItem(i));
            }
            return ret;
        }
    }
    return null;
}

window.addEventListener("load", function(){
	try{
		var nodes = $X("/html/body/table/tbody/tr/td/table/tbody/tr/td/a");
		nodes[0].style.display = "none";
	}catch(e){}; // momikeshi
},false);

Stylish用 userContent.css も作った

なんか関係ないものまで消しそうな気がするが。

@namespace url(http://www.w3.org/1999/xhtml);

@-moz-document domain("ekikara.jp") {
  body > table > tbody > tr > td > table > tbody > tr > td > a {
    display: none;
  }
}

またしてもしょぼねた。

2007-01-20

[]Listen.jpをFirefoxで試聴できるようにするGreasemonkeyスクリプト 18:26 Listen.jpをFirefoxで試聴できるようにするGreasemonkeyスクリプト - 技術メモ帳 を含むブックマーク Listen.jpをFirefoxで試聴できるようにするGreasemonkeyスクリプト - 技術メモ帳 のブックマークコメント

Listen.jp というサイトを今日というかさっき知ったのだが

どうも、Firefoxでは試聴できないらしい。

alertbox ではじかれてしまった。

現代社会に置いてマイノリティは常に脆弱なのである。

http://listen.jp/store/


だが、責めるわけにはいかない。

この判断は企業として非常に妥当であるからだ。

対応機種が増えるとそれだけ検証作業が増加し、費用がかかる。

その費用は売り上げから減算されてしまうのだ。

したがって、これはマイノリティの側が努力すべき課題なのである。

前置きが長くなった。

というわけで、Greasemonkeyユーザースクリプトを作った。


とりあえず、以下のURLで動作確認した。


まず、chkBrowserという関数でブラウザを判断しているようで、

この関数の戻り値が常にtrueになるように改造。

次に、"http://listen.jp/store/viewAsx.aspx?" というURLに対して

音楽IDを付加したリクエストを送ると ASX なストリームが取得できるようなので

該当URLをwindow.openして、

各環境ごとのasxに関連したソフトウェアを自動起動させるように改造。


firefox_de_listen_jp.user.js

// ==UserScript==
// @name           firefox de listen.jp
// @namespace      http://
// @description    firefox de listen.jp
// @include        http://listen.jp/store/*
// ==/UserScript==

window.addEventListener("load", function(){
  unsafeWindow.chkBrowser = function(){ return true; };
  unsafeWindow.document.openPreviewWindow = function(url){
      var v=url.split("?"); 
      window.open("http://listen.jp/store/viewAsx.aspx?" + v[1]);
  };
},false);

2007-01-17

[]LivedoorReaderのスポンサーフィードを非表示にするGreasemonkeyスクリプト 21:12 LivedoorReaderのスポンサーフィードを非表示にするGreasemonkeyスクリプト - 技術メモ帳 を含むブックマーク LivedoorReaderのスポンサーフィードを非表示にするGreasemonkeyスクリプト - 技術メモ帳 のブックマークコメント

goodbye sponser

// ==UserScript==
// @name           LDR - hide sponser feed
// @namespace      http://
// @description    LDR no sponser feed wo hide simasu
// @include        http://reader.livedoor.com/reader/*
// ==/UserScript==

unsafeWindow.tracking = function(){};

var callbacks = unsafeWindow.LDR.trigger.triggers.before_init.callbacks;
for(var i=0; i<callbacks.length; i++){
	if( callbacks[i].toString().match( /function enable_adfeeds()/ ) ){
		callbacks.delete_at(i);
		break;
	}
}

ななしななし 2007/01/17 22:22 userContent.cssで消えますよ。
@-moz-document domain(”reader.livedoor.com”) {
.adfeeds_body { display: none !important; }
}

lurkerlurker 2007/01/17 22:33 なるほど確かにその通りです。素敵です。

hogehoge 2007/01/18 10:54 最後の wget ステートメントがヲチとしていい味出てますね

lurkerlurker 2007/01/18 21:16 hogeさんはすばらしい感性をお持ちなのでしょうか。
僕と通じるものがありますね。