2009年4月8日水曜日

Mitterツールバー無くても自動保存したいぢゃない

このエントリーをはてなブックマークに追加
つーことで、変なコード書いた。
Mitter kbd rating changerに機能を追加した。
リクエストパラメタにautoclose=trueがあったらレーティング/コメント無しで保存できるようにした。
後は俺俺ニコニコ動画UserJSのpopupのURLの所にautoclose=trueを追加してポップアップウインドウを出すようにすれば完璧っ!
ナニを言っているか分からないって?
コード見てね(^^;;;

// ==UserScript==
// @name Mitter kbd rating changer
// @namespace http://d.hatena.ne.jp/janus_wel/
// @description change video rating in Mitter with keyboard operation
// @include http://mitter.jp/*/videos
// @include http://mitter.jp/bookmarklet/*
// ==/UserScript==

( function () {
const imgPath = '/images/rating/edit/';
const ext = '.gif';
const max = 5;
const min = 0;
const doc = window.content.document;

doc.addEventListener(
'keypress',
function (event) {
switch (event.which) {
case 119: // w
if (doc.activeElement.localName !== 'INPUT') { event.preventDefault(); raiseRating();}
break;
case 113: // q
if (doc.activeElement.localName !== 'INPUT') { event.preventDefault(); cutRating(); }
break;
case 103: //g
if (doc.activeElement.localName !== 'INPUT') { event.preventDefault(); goSubmit(); }
break;
default:
break;
}
},
false
);

chkParam();

// stuff
function raiseRating() {
var rating = doc.getElementById('rating_star');
if (!rating) return;
var p = parseInt(rating.value, 10);

if (p >= max) return;
rating.value = ++p;
doc.getElementById('rating-star-img').src = imgPath + p + ext;
}
function cutRating() {
var rating = doc.getElementById('rating_star');
if (!rating) return;
var p = parseInt(rating.value, 10);

if (p <= min) return;
rating.value = --p;
doc.getElementById('rating-star-img').src = imgPath + p + ext;
}
function goSubmit() {
var form = doc.getElementsByTagName("form");
form[0].submit();
}


function chkParam(){
var qs = location.search;
var m=qs.match(/autoclose=true/)
if( m ) goSubmit();
}


} )();
// vim:sw=4 ts=4 et:

0 件のコメント :

コメントを投稿