zokuzoku

description

Nov 14

Text Post

愛のタンバリン

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' ? "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 とかも出来そうだけど、そーするとどーなるんだろーねえ。

Page 1 of 1