Hatena::ブログ(Diary)

ロックスターになりたい

 | 

2007-08-25

作者のシロさんにコメントいただいた通り、以下のメモのような小細工をしなくても今はもういろいろできます。


LDRize.getLinkNode が重要。とおもったけどgetLinkURLもあった。どっちが何をしてるのかよくわかんない。

よめばわかった。

getLinkNodeに渡されるnodeはparagraphのノード。getLinkURLはattributeとしてリンク先のURLを保持しているノード自身を返す。getLinkNodeも単体で呼ばれたりする。nodeが常にnullでくるならLDRize.current_paragraphみればいいからgetLinkURLに細工するのですむけど...

動かしてみて見る。

ピンを立てるときは常にnull. getLinkURLが呼び出される。これだ!

単体で呼ばれることがあるけどいつなのかは不明。



  getLinkNode : function(node){
      if(!LDRize.info['link']) return;
      node = node || LDRize.current_parapraph;
      if(!node) return false;
      var links = $X(LDRize.info['link'], node);
      if(!links || links.length == 0) return;
      return links[0];
  },
  getLinkURL : function(node){
      if(!LDRize.current_parapraph) LDRize.scrollNext();
      var link = LDRize.getLinkNode(node);
      if(!link) return false;
      var url;
      if(link.nodeName.toLowerCase() == "embed"){
          url = link.src;
      }else{
          url = link.href;
      }
      return url;
  },

linkのルール記述次第ではある。

単純にtumblrのルール記述がよくないだけ?

'o'に渡すためのurlを取り出すためのxpathが書かれているので(取り出すのはurl自体ではなくてurlを把持しているノード。embedのときはsrcを、その他のときはhrefを取り出す。embed, a を対象としてる。

reblog用のurlを抽出してるわけじゃないのでなんか細工が必要。

  1. ほかのGMでLDRize.getLinkNodeを上書きするという泥縄
  2. siteinfoにxpathルール記述を増やす(要するにいろんな情報をスクレイピングするためのルール)

window.LDRize.command の command: function ( urls ) {

はLDRize.getLinkNodeの結果の文字列が帰ってくる。ちょっとやりにくい。


LDRize.reblog.user.js だ。

getLinkNodeを上書きしてcommandの中のforEachでformつくってpostさせる。特権あったら楽ができるんだけどな...

シロシロ 2007/08/25 05:47 こんにちは。LDRizeを作った者です。
window.LDRize.commandにpushしたcommandにurlのリストだけが来るのは不便だと思ったので、
2007.08.24版ではピンを立てたノード自体のリストも渡すようにしました。(引数の仕様が変わってしまいましたが…)
ついでにcommand側からsiteinfoを一時的に変更可能にしました。
こちらはサンプルを書いてみましたので、必要であれば…。
http://white.s151.xrea.com/wiki/index.php?diary%2F2007-08-25%2FLDRize.window.command%A4%CB%A4%C4%A4%A4%A4%C6

ku0522ku0522 2007/08/25 12:41 うへー。こんな僻地までチェックしていただいてありがとうございます。感激です。LDRizeはなんかこんなかんじのやつがあればいいのにともやもやしてたものまさにそれというかんじで、しかもみためまでかっこよくて倒れそうでした。さっそく教えていただいたサンプルを参考に、ピンを付けてreblogするものを作って気づいたことを書いてみたので読んでいただけるとうれしいです! http://ido.nu/kuma/2007/08/26/ldrize-minibuffer-command-impression/

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

 |