kazukgw
12/20/2015 - 8:56 AM

KindleCloudReaderで書籍一覧をjsonとして出力やつ

KindleCloudReaderで書籍一覧をjsonとして出力やつ

setTimeout(function(){
  var $button = 
    $('<div id="__download_button" style="' + 
    '    position: fixed;' + 
    '    top: 5px;' + 
    '    right: 200px;' + 
    '    border-radius: 5px;' + 
    '    background: gray;' + 
    '    padding: 8px;' + 
    '    border-top: 1px white solid;' + 
    '    border-bottom: 1px black solid;' + 
    '    cursor: pointer;' + 
    '    color: white;' + 
    '">download kindle_books.json</div>');

  var $doc = $($('#KindleLibraryIFrame')[0].contentWindow.document);

  function download() {
    var $containers = $doc.find('.book_container');
    var books = [];
    $containers.each(function(){
      var $c = $(this);
      books.push({
        title: $c.find('.book_title').text(),
        author: $c.find('.book_author').text(),
        cover: $c.find('.book_image').prop('src')
      });
    });
    var bookData= new Blob([JSON.stringify(books, null, 4)], {type: 'text/json'});
    var ev = document.createEvent('MouseEvents');
    var $a = document.createElement('a')
    $a.download = 'kindle_books.json';
    $a.href = window.URL.createObjectURL(bookData);
    $a.dataset.downloadurl = ['text/json', $a.download, $a.href].join(':')
    ev.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    $a.dispatchEvent(ev)
  }

  $doc.find('#header_center').append($button);

  $button.on('click', download);
}, 3000);