Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

4Uにやたらとうきうきしたので

LDR Greasemonkey Tumblr

4U
いろいろ作ってみた。もう少しなんかできたら追記する。
LDRizeのSITEINFOも作った

LDR Prefavの設定

id:brazilさんの作ったLDR - Prefavというすごく汎用性の高いScriptがあるのですが、とりあえず設定として、var filtersに

"4U - Enlarge Thumbnail" : function(f){
	if(!f.channel.link.match('^http://4u\.straightline\.jp/')) return;		
	foreach(f.items, function(i){
		i.body = i.body.replace(/\/m\/m_/, '\/l\/l_');
	})
},

というものを追加しておきます。これだけでLDR上で見る4UのThumbnailが大きくなります。LDR - Prefavすごい!
本家のLDR - Prefavに反映されました。ほかの部分も正規表現を使う分低速なmatchから、高速なindexOfに変更されています。

LDRizeのSITEINFO

    {
          domain:    '^http://4u\\.straightline\\.jp/',
          paragraph: 'id("content")/ul[contains(concat(" ",@class," "), " entry-list ")]/li',
          link:      './/p[@class="entry-information"]/a',
    },

LDRizeのSiteinfoって今でも誰でも編集できたっけ?
勝手に追加してもいいのかな?
いけました。

これだけでももうけもの。ここから下は僕の自己満足です。

Replace 4U with Source for LDR Full Feed

こんな感じで満足し終えてみると、そのころになってやっと4Uは実はFlickrdeviantARTから共有しているサイトだということに気づきました(遅すぎる)
なんとなくLDR Full Feed用のSITEINFOも作ったのですが、せっかくなので元ソースのリサイズされていない画像を表示しようかと思ってFilterも作ってみました。

// ==UserScript==
// @name        Replace 4U with Source for LDR Full Feed
// @namespace   http://d.hatena.ne.jp/Constellation/
// @include     http://reader.livedoor.com/reader/*
// @include     http://fastladder.com/reader/*
// @version     0.0.1
// ==/UserScript==

var f = function (doc, url, info){
  var reg = /^http:\/\/4u\.straightline\.jp\/image\//
  if ( !reg.test(url) ) {
    return;
  }
  var entry = $x('//div[contains(@class,"entry-body")]/div[@class="entry-photo"]',doc);
  if (entry) {
    var img = entry.getElementsByTagName('img')[0];
    var source = img.parentNode.href;
    img.setAttribute('src', source);
  }
};

addFilter(f)

function addFilter(filter, i) {
  i = i || 4
  if (window.FullFeed&& window.FullFeed.addDocumentFilter) {
    window.FullFeed.addDocumentFilter(filter)
  }
  else if (i > 1) {
    setTimeout(arguments.callee, 1000, filter, i - 1)
  }
}

function $x(exp, context){
	context = context || document;
	return document.evaluate(exp, context, null, 9, null).singleNodeValue;
}

4U本体が今重くなってるようなので、結構時間がかかるかもしれません。feedのitem自体には元ソースの情報がまったくなかったので、LDR Full Feedで取り込むときにimgのsrcを置き換えているという単純なScriptです。
副作用なのかうれしい誤算なのか、このFilterを通してLDR Full Feedで展開し、TomblooでShare - Photo - LDRすると元ソースのほうの画像がShareOnTumblrできました。Flickrが元ソースだとShare -Photo - FlickrでSOTするとFlickrのほうをSOTしてくれます。自分にまたTumblr廃人への道が開けました。