Tumblr Post Obtainer
Attempting to obtain all of a Tumblr's posts are reformat them in a way I desire
by Zeaklous
CSS
#fromTumblr {
width:8.5in;
min-height:10in;
background:#E9CFB4;
display:inline-block;
position:relative;
padding-top:1in;
}
.post {
float:left;
background:#F8ECC2;
padding:.3in;
margin:.2in;
text-align:center;
width:2.5in;
page-break-inside:avoid;
}
.post p {
text-align:left;
font-size:12pt;
page-break-inside:avoid;
}
.text {
font-size:16pt;
page-break-inside:avoid;
}
.video {
}
.photo {
page-break-inside:avoid;
}
.big {
clear:both;
float:none;
width:auto;
display:block;
}
img {
page-break-inside:inherit;
}
JavaScript
var script = document.createElement('script'),
offset = 0,
limit = 10,
longCharMin = 330,
videoSize = 1,
photoSize = 2;
script.src = 'http://api.tumblr.com/v2/blog/solacingsavant.tumblr.com/posts?api_key=Srhk9qkcJO69pAoB4ltM5uIqpwUBO7kgDqDEaCD9Jo8EafWyHE&limit=' + limit + '&offset=' + offset + '&callback=filter';
indentedAppend(document.getElementsByTagName('head')[0], script);
window.filter = function filter (data) {
var posts = data.response.posts;
var ft = document.createElement('div');
ft.setAttribute("id", "fromTumblr");
indentedAppend(document.body, ft);
addedSection = document.getElementById('fromTumblr');
posts.forEach(function(obj, i) {
if(posts[i].type == "text") {
stripText(posts[i]);
}
else if(posts[i].type == "video") {
stripVideo(posts[i]);
}
});
}
function stripText(post) {
var toAdd = document.createElement('div');
toAdd.className = "post text";
toAdd.innerHTML = post.title + "</br>" + post.body;
var charCount = post.body.replace(/[^A-Z]/gi, "").length;
if(charCount >= longCharMin) { toAdd.className = "post text big"; }
indentedAppend(addedSection, toAdd);
}
function stripVideo(post) {
var toAdd = document.createElement('div');
if(videoSize == 2)
toAdd.className = "post video";
else
toAdd.className = "post video big";
// For thumbnail image only
toAdd.innerHTML = getThumbnail(post.player[0].embed_code) + "</br>" + post.caption;
// For whole video
//toAdd.innerHTML = post.player[0].embed_code + "</br>" + post.caption;
var charCount = post.caption.replace(/[^A-Z]/gi, "").length;
if(charCount >= longCharMin) { toAdd.className = "post video big"; }
indentedAppend(addedSection, toAdd);
}
function indentedAppend(parent,child) {
var indent = "",
elem = parent;
while (elem && elem !== document.body) {
indent += " ";
...