The Whole World is peaceful.

endless summer on dashboard ver 0.0.3.1

2009-03-06T09:16:34+09:00

endless summer on dashboard ver 0.0.3.5 now on sale!!!

2009-02-15T22:44:25+09:00 

季節外れの夏日に大騒ぎのインターネッツのみなさん、こんばんわ。

不具合修正です。なんか backslush が ¥ マークになってしまっていたみたい。動いてなかった。これで、直ったかな? 不具合は reblog で受け付けます(ウソ)。実際の置き場は http://gist.github.com/26170.txt です。

実際の置き場は http://gist.github.com/26170 です。

Endless_Summer_on_dsbd.user.js

// ==UserScript==
// @name Endless Summer on dsbd
// @namespace http://www.tumblr.com/
// @description random next link on dsbd
// @include http://www.tumblr.com/dashboard/1
// @version 0.0.3.1
// ==/UserScript==
// requires AutoPagerize http://userscripts.org/scripts/show/8551 by swdyh
// using utility $X() http://gist.github.com/3242 by os0x
// notice: put this script ABOVE AutoPagerize
 
(function(){
function getId(doc){
  if(location.pathname.match(/dashboard(\/1?)?$/)) {
    var i = $X('//ol[@id="posts"]/li[@id]', doc);
    if(i.length) i = i[0];
    else return;
    GM_setValue('postno', id = i.id.match(/post([\d]+)/)[1].toString());
  } else return;
}
 
function summerFilter(doc, url, info){
  var content_element = $X('id("posts")', doc)[0];
  content_element.className = 'autopagerize_page_element';
  
  var a = $X('id("pagination")/a[contains(text(), "Next page")]',doc);
  if (a.length) a = a[0];
  else return;
  r = Math.floor(Math.random() * GM_getValue('postno', '6000000'));
  a.href = 'http://www.tumblr.com/dashboard/1000/' + r;
  a.className = 'autopagerize_nextlink';
  a.rel = 'next';
}
 
getId(document);
summerFilter(document, '', '');
 
setTimeout(function(){window.AutoPagerize.addDocumentFilter(summerFilter)},0);
 
// simple version of $X
// $X(exp);
// $X(exp, context);
// @source http://gist.github.com/3242.txt
 
function $X (exp, context) {
  context || (context = document);
  var expr = (context.ownerDocument || context).createExpression(exp, function (prefix) {
    return document.createNSResolver(context.documentElement || context).lookupNamespaceURI(prefix) ||
      context.namespaceURI || document.documentElement.namespaceURI || "";
  });
 
  var result = expr.evaluate(context, XPathResult.ANY_TYPE, null);
    switch (result.resultType) {
      case XPathResult.STRING_TYPE : return result.stringValue;
      case XPathResult.NUMBER_TYPE : return result.numberValue;
      case XPathResult.BOOLEAN_TYPE: return result.booleanValue;
      case XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
        // not ensure the order.
        var ret = [], i = null;
        while (i = result.iterateNext()) ret.push(i);
        return ret;
    }
  return null;
}
})();

ちょっとだけ手直し。

( ver 0.0.1 http://taizooo.tumblr.com/post/60322576/endless-summer-on-dashboard )

( ver 0.0.3 http://taizooo.tumblr.com/post/69415607/endless-summer-on-dashboard-ver-0-0-3 )