Tumblr API V2

by bluetidepro

HTML

<!-- http://www.tumblr.com/docs/en/api/v2#posts //-http://jsonviewer.stack.hu/ // http://api.tumblr.com/v2/blog/blog.iamzachreed.com/posts/quote/?api_key=dqtYbaUpm3nHu5kKJDCA2eywPrwqSgP2CfnHAuboBC55JlhQQD&limit=2&offset=0 ->

CSS

body{padding:20px;}h2{font-weight:bold;}

JavaScript

(function ($) {

  $.fn.tumblrPosts = function (options) {

    var defaults = {
      apiKey: '',
      blogName: '',
      containerWidth: 500,
      theme: 'light',
      posts: 5
    },
    
    settings = $.extend({}, defaults, options);

    if (settings.apiKey == "") {
      debug("Please enter a valid API key.");
    }

    if (settings.blogName == "") {
      debug("Please enter your tumblr blog name.");
    }

    var i = 0;
    var $this = $(this);

    function getBlogPosts(i) {
        var postsShowing = i+settings.posts;
        var blogURL = 'http://api.tumblr.com/v2/blog/' + settings.blogName +'.tumblr.com/posts?api_key=' + settings.apiKey + '&notes_info=true&reblog_info=true&limit=' + settings.posts + '&offset=' + i + '&jsonp=?';
        //debug(blogURL);
        $.getJSON(blogURL, function(data) {

          if(data.response.posts != '') {

            if(postsShowing <= data.response.total_posts){
              //debug('Posts: ' + postsShowing + '/' + data.response.total_posts);
            } else {
              //debug('Posts: ' + data.response.total_posts + '/' + data.response.total_posts);
            }

            //debug(data.response.posts.length);

            $.each(data.response.posts, function(index, post) {
              var type = post["type"];
              var slug = post["slug"];
              $this.append('<li>' + slug + '(' + type + ')<hr/></li>');
            });

            //debug(i);

          } else {

            debug('NO MORE POSTS TO LOAD!');

          };

        });
    };

    getBlogPosts(i);

    $('#json_click_handler').on('click', function(event) {
        event.preventDefault();
        i = i + settings.posts;
        getBlogPosts(i);
    });

  };

  // Helpers
  function stripslashes(str) {
    return (str + '').replace(/\0/g, '0').replace(/\\([\\'"])/g, '$1');
  }
  function debug(error) {
    alert(error);
    /*if (typeof console == 'object') console.log(error);
    else if (typeof opera == 'object')...