Nov 14
愛のタンバリン
dashboard で shift + L で like マークを付けるグリモン。
なんかあんましうまく動いてないような気もするけど。それから minibuffer と LDRize が必須でっす。
unsafeWindowとかよくわかんないので、location.href などという bookmarklet 風味な対応です。
なんかねえ、http://www.tumblr.com/like とか http://www.tumblr.com/unlike なんていうところに post しやがるわけなんですよ。だから一呼吸かかるのかな。ちょっと遅い印象。それからそれから show ページだと autopagerize で繋いだページでは、きちんとハートマークの色がかわらないとかそーいう現象がおきているけど、まあ気にすんな。(いや、気にしている)
// ==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' ? "true" : "false"; 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 とかも出来そうだけど、そーするとどーなるんだろーねえ。