dashboard で shift + L で like マークを付けるグリモン。
なんかあんましうまく動いてないような気もするけど。それから minibuffer と LDRize が必須でっす。
unsafeWindowとかよくわかんないので、location.href などという bookmarklet 風味な対応です。
なんかねえ、http://www.tumblr.com/like とか http://www.tumblr.com/unlike なんていうところに post しやがるわけなんですよ。だから一呼吸かかるのかな。ちょっと遅い印象。それからそれから show ページだと autopagerize で繋いだページでは、きちんとハートマークの色がかわらないとかそーいう現象がおきているけど、まあ気にすんな。(いや、気にしている)
love_on_tumblr.user.js
// ==UserScript==
// @name love on tumblr
// @namespace http://www.tumblr.com/
// @description love current post on tumblr dsbd with 'Shift + l'key. if won't work, pray on tumblr!
// @include http://www.tumblr.com/dashboard*
// @include http://www.tumblr.com/show/*
// @version 0.0.1
// ==/UserScript==
if(!window.Minibuffer) return;
var $X = window.Minibuffer.$X;
//var submit_like = function(id,t){ unsefeWindow.submit_like(id,t); };
window.Minibuffer.addCommand({
name: 'tumblr.Like',
command: function(stdin){
stdin.forEach(function(obj){
if (obj.className.match(/not_mine/)){
var id = obj.id.match(/post([\d]+)/)[1];
$X('.//form[starts-with(@id, "unlike_form_")]', obj).forEach(function(e){
var t = (e.style.display != 'none').toString();
location.href = 'javascript:submit_like(' + id + ',' + t + ');'
// submit_like(id, t);
});
}
});
return stdin;
},
});
window.Minibuffer.addShortcutkey({
key: 'L',
description: 'tumblr.Like',
command: function(){
var stdin = [];
try{
stdin = window.Minibuffer.execute('pinned-or-current-node');
} catch (e){}
window.Minibuffer.execute('tumblr.Like', stdin);
window.Minibuffer.execute('clear-pin');
}
});
submit_like() というヤツがあって、それが叩ければいけそうなんだけど、unsafeWindowというかwindowというかDOMというかそーいった基本が全然わけわかめなわけです。
あと、全面的に utatane センセーの DeleteCommand をまるまるヒット&オーイエーならぬコピー&改変です。そのおかげで、pin 立てといて一気に love とかも可能だと思われます。
これ、dashboard + tombloo で rblg と同時に love とかも出来そうだけど、そーするとどーなるんだろーねえ。
追記 : 何回か修正してまっす。