gaeの日記 #2

2009-06-25 (木)

[][] 微妙な機能の削除とPluginScriptの設定追加 21:04  微妙な機能の削除とPluginScriptの設定追加 - gaeの日記 #2 を含むブックマーク はてなブックマーク -  微妙な機能の削除とPluginScriptの設定追加 - gaeの日記 #2

  • 2009-06-25
    • config はてなスターの設定項目削除
    • * はてなスターを表示する処理を削除
    • uc PluginScriptの設定を追加
    • p 何も表示されないページを追加

昨日思いついてしまった「任意のスクリプトを実行できる機能」を追加しました。残念ながらログインしなければ使えません。

またアニメ見てる」のような機能をしょぼいカレンダーから呼び出したりできるかもしれません。


ついでに「何も表示されないページ」を追加しました。勝手に追加したスクリプトで番組表を表示したいときとかに使えるかもしれません。(/p/text でテキスト版の番組表を表示してみたりとか...試してないのでできないかもしれません)


ためしに番組表に「text」というリンクを追加して、クリックしたら番組のテキストがpromptで表示されるものを作ってみた図。

f:id:gae:20090625205500p:image

使ったスクリプト。

http://cal.syoboi.jp/plugin_script/text.js

// コピペ用テキスト表示?
if (window.location.pathname == '/') {
	// 番組表の表モードは div.pid-item でそれ以外は tr.pid-item が1番組分の枠
	$('tr.pid-item, div.pid-item').each(function(){
		var box = this;
		// リンクのURLからPIDを抜き出す
		var id = $('a.pidlink', box)[0].href.match(/tid\/(\d+).*#(\d+)/);
		var pid = id[2];
		
		// [text] のリンク作成
		var a = $('<a>[text]</a>');
		a.css('margin-left', '8px');
		a.click(function(){
			// json.phpでPIDからタイトルとかサブタイトルをお取り寄せ(番組表のhtmlから取得するのはすごく疲れるため)
			var params = {
				Req: 'ProgramByPID,TitleMedium,SubTitles',
				PID: pid
			};
			$.getJSON('/json.php', params, function(data,status){
				if (status == 'success') {
					// 表示するテキストの組み立て
					var p = data.Programs[pid];
					var t = data.Titles[p.TID];
					var st = (data.SubTitles != undefined ? data.SubTitles[p.TID][p.Count] : '');
					
					var text = t.Title;
					if (p.Count != '') text += ' #'+p.Count;
					
					if (p.SubTitle2 != '') text += ' 「'+p.SubTitle2+'」';
					else if (st != '') text += ' 「'+st+'」';
					
					if (p.ProgComment != '') text += ' '+p.ProgComment;
					
					if (p.ChName != '') text += ' @'+p.ChName;
					
					prompt(text, text);
				}
				else {
					// エラー
					alert(status);
				}
			});
		});
		
		$('span.buttons', this).append(a);
	});
}

タグの構造やclassの指定方法がまずくて、なかなかうまいこといきません。センスの無さに絶望。