Hatena::Groupptech

ぷちてく RSSフィード

Archive
 
ProfileProfile

2014-10-06

RAD.js

04:55

RADのスニペットがGistに置かれるようになったので、こっち参照したほうがいい。

RAD、gistに置いてみました。

2014-10-14 - Random Access Diaries

以下はスクレイピングの参考とか、RADとは何かリンクがあるのでどうぞ。すでにソースは古くなってる。


どーもこんちわ。Random Access Diaries(RAD)の良さとかは別の機会に書く。

RADのjs書こうと思って、結構探したけどスニペット/リポジトリ見当たらないので貼った。

RAD.js

@author yuta25 http://profile.hatena.ne.jp/yuta25/

@license Unknown (as-is)

<script id="RAD">
(function(){
  var loading = false;
  var first = true;
  window.goRad = function() {
    if (loading) {
      return;
    }
    loading = true;
    var xhr = new XMLHttpRequest();
    xhr.responseType = 'document';
    xhr.onload = function (e) {
      loading = false;
      if (xhr.status <= 200 && xhr.status < 300) {
        var doc = e.target.response;
        var god = doc.querySelector('#main-inner .entry-inner');
        var rad = document.querySelector('#RAD').parentNode.parentNode.parentNode;
        if (!god || god.parentNode.className.match('no-entry')) {
          goRad();
          return;
        }
        rad.querySelector('.categories').innerHTML='<button href="http://djbudo.hatenablog.com/category/RAD" onclick="goRad()" style="font-size:20px;">RAD</button><span>←button or alt+r to RAD</span>';
        rad.querySelector('.entry-header .date').innerHTML = god.querySelector('.entry-header .date').innerHTML;
        rad.querySelector('.entry-header .entry-title').innerHTML = god.querySelector('.entry-header .entry-title').innerHTML;
        rad.querySelector('.entry-header .entry-title').innerHTML += '<a href="/entry/RAD">  (★RAD★)</a>';
        var card = document.createElement('iframe');
        card.setAttribute('style', 'width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;');
        card.setAttribute('title', doc.title);
        card.setAttribute('src', rad.querySelector('.entry-header .entry-title a').href.replace('entry', 'embed'));
        card.setAttribute('frameborder', '0');
        card.setAttribute('scrolling', 'no');
        // rad.querySelector('.entry-header').insertBefore(card);
        rad.parentNode.insertBefore(card, rad.nextSibling);
        rad.querySelector('.entry-content').innerHTML = god.querySelector('.entry-content').innerHTML;
        rad.querySelector('.entry-content').innerHTML += '<button href="http://djbudo.hatenablog.com/category/RAD" onclick="goRad()" style="font-size:20px;" id="RAD">RAD</button>';
        rad.querySelector('.entry-footer').innerHTML = god.querySelector('.entry-footer').innerHTML;
        var commentBox = rad.querySelector('.comment-box');
        if (commentBox) commentBox.remove();
        window.scroll(0, rad.offsetTop - 72);
        if (!first) {
          var stars = document.querySelectorAll('.entry-footer .hatena-star-container');
          for (var i = 0, length = stars.length; i < length; i++) {
            stars[i].innerHTML = '';
          }
          Hatena.Star.EntryLoader();
        }
        first = false;
      } else {
        // goRad();
        return;
      }
    };
    xhr.open('GET', 'http://219.94.245.80:3000/today?pretend=true', true);
    xhr.send(null);
  };
  goRad();
  var keyPress = function(e) {
    if (!e) e = window.event;
    if (e.keyCode == 174 && e.altKey && loading == false) {
      goRad();
    }
  };
  var keyUp = function(e) {
    if (e.altKey && e.keyCode == 82) {
      goRad();
    }
  };
  document.addEventListener('keypress', keyPress);
  document.addEventListener('keyup', keyUp);
}());
</script>
http://djbudo.hatenablog.com/entries/9999/12/31

using category within js

scraping

#RAD=http://djbudo.hatenablog.com/entries/9999/12/31
#RAD=http://djbudo.hatenablog.com/category/RAD
RAD=http://djbudo.hatenablog.com/entry/RAD
# lwp-request
GET $RAD | sed -ne '/<script id="RAD">/,/<\/script>/p' | sed 's/<\/\?script.*>//g' > rad.js
# shim
wget -q -O - $RAD | sed -ne '/<script id="RAD">/,/<\/script>/p' | sed 's/<\/\?script.*>//g' > rad.js
by hand

view-source:http://djbudo.hatenablog.com/entries/9999/12/31 in Address Bar

c.f.




Did you mean:

https://images-utlab.s3-ap-northeast-1.amazonaws.com/production/QEBTlRI/t_shirt/ca6e04b9ddb5f93b747348dd9bfe80dbdd3cdfee_ll.jpeg


http://utme.uniqlo.com/t/QEBTlRI

https://images-utlab.s3-ap-northeast-1.amazonaws.com/production/IWGGA2Y/t_shirt/1f481dbc3cd18da4f40c77a60ec81edd3769842b_ll.jpeg


http://utme.uniqlo.com/t/IWGGA2Y

kawaii <3

yuta25yuta252014/10/07 09:58こんにちは、

> 結構探したけどスニペット/リポジトリ見当たらないので

す、すいませんでした。githubも個人のやりかけで終わったリポジトリばかりで恥ずかしい…><。ちょっと整理しようと思います。

エンジニアな人とリアルでもオンでもほとんど接点がないことや、コードに自信がないこと、めんどくささなどから、ソース/TIPSを公開して共有するようなことをほぼしてきませんでした

今後もしなにか作ったり、発見した時には、ちょっとは意識しようと思います…!

noromanbanoromanba2014/10/08 01:32>id:yuta25
貼ると時間が止まるのでフレッシュなコード元参照したい、という意図だったんですが、結果責める形になって申し訳ないです。
yutaさん大量の良いコード積極的に公開されてる印象で、てっきりRAD.jsもあるだろうと思い込んだという次第。
ぼくもめんどくさいとかその辺色々あり、コード書いたこと通知しないスタイルなので、無理なさらないで下さい。

RAD、世界変えるサービスだと思ってます。Alt+Rヤバい。♪<RADサイコー! <イエーイーRADサイコー! <yuta25サイコー! ターラッタラタラララーラー トンテケテッ♪

トラックバック - http://ptech.g.hatena.ne.jp/noromanba/20141006