Blogger Sitemap JavaScript
I'm using a javascript that generates a sitemap page with all posts sorted alphabetically and by label.
It extracts the info from this link
https://blogname.blogspot.com/feeds/posts/default?max-results=9999
But a while back blogger introduced pagination to those links and they only display 150 posts now, so the sitemap shows only the last 150 post titles.
Now i have to use multiple links to get all my posts, links like this:
https://blogname.blogspot.com/feeds/posts/default?start-index=1&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=151&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=301&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=451&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=601&max-results=150
The problem is I don't know if it's possible to use multiple links with this javascript, or how to modify it to use more than 1 link for extracting the info.
My javascript knowledge is poor, i tried some noobish modifications but wasn't even close to succeed with any of them.
I also tried manually getting all info from a few links and merging them into a .txt files, than uploaded it on dropbox and pastebin, but the script didn't worked with any other links that are not from my blog, not sure why.
Here's the script i'm talking about:
<script>
//<![CDATA[
var postTitle = new Array();
var postUrl = new Array();
var postPublished = new Array();
var postDate = new Array();
var postLabels = new Array();
var postRecent = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
function bloggersitemap(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postPublished[ii] = o;
if (h < 10) {
postRecent[ii] = true
} else {
postRecent[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();
}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postPublished[e];
postPublished[e] = postPublished[g];
postPublished[g] = f;
var f = postRecent[e];
postRecent[e] = postRecent[g];
postRecent[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postPublished[f];
postPublished[f] = postPublished[h];
postPublished[h] = g;
var g = postRecent[f];
postRecent[f] = postRecent[h];
postRecent[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Post Title";
var m = "Click to sort by title";
var d = "Date";
var k = "Click to sort by date";
var c = "Category";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Click to view all"
}
h += "<table>";
h += "<tr>";
h += '<td class="header1">';
h += '<a href="javascript:toggleTitleSort();" title="' + m + '">' + e + "</a>";
h += "</td>";
h += '<td class="header2">';
h += '<a href="javascript:toggleDateSort();" title="' + k + '">' + d + "</a>";
h += "</td>";
h += '<td class="header3">';
h += '<a href="javascript:allPosts();" title="' + j + '">' + c + "</a>";
h += "</td>";
h += '<td class="header4">';
h += "Read all";
h += "</td>";
h += "</tr>";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
}
}
}
h += "</table>";
if (l == postTitle.length) {
var f = '<span class="toc-note">Show All ' + postTitle.length + " Posts<br/></span>"
} else {
var f = '<span class="toc-note">Show ' + l + " posts by category '";
f += postFilter + "' the " + postTitle.length + " Total Posts<br/></span>"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("<p/>");
document.write('<p class="labels"><a href="/search/label/' + temp1 + '">' + temp1 + "</a></p><ol>");
firsti = a;
do {
document.write("<li>");
document.write('<a class="post-titles" href="' + postUrl[a] + '">' + postTitle[a] + "</a>");
if (postRecent[a] == true) {
document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')
}
document.write("</li>");
a = a + 1
} while (postLabels[a] == temp1);
b = a;
document.write("</ol>");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikEPztAO01GzBUzZ794Iw6rMq0ldkKZIGbNzyc4ZsEKAdx3aFlSCV9c1nYK3ZzHJZmFSh-MihIOpWHUC6tyhjrdLKvoBKt2eTMwqlLXWymMhyphenhyphenprkAX0t8xvMA_a8p8QEYoTVrv1ikU1AN/s1600/new_icon.gif"/>'
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("<br>");
document.write('Post Link : <a href="' + postUrl[a] + '">' + postTitle[a] + "</a><br>");
document.write('Read all : <a href="' + postPublished[a] + '">' + postTitle[a] + "</a><br>");
document.write("<br>")
}
};
//]]>
</script>
<script src="https://blogname.blogspot.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
javascript
add a comment |
I'm using a javascript that generates a sitemap page with all posts sorted alphabetically and by label.
It extracts the info from this link
https://blogname.blogspot.com/feeds/posts/default?max-results=9999
But a while back blogger introduced pagination to those links and they only display 150 posts now, so the sitemap shows only the last 150 post titles.
Now i have to use multiple links to get all my posts, links like this:
https://blogname.blogspot.com/feeds/posts/default?start-index=1&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=151&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=301&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=451&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=601&max-results=150
The problem is I don't know if it's possible to use multiple links with this javascript, or how to modify it to use more than 1 link for extracting the info.
My javascript knowledge is poor, i tried some noobish modifications but wasn't even close to succeed with any of them.
I also tried manually getting all info from a few links and merging them into a .txt files, than uploaded it on dropbox and pastebin, but the script didn't worked with any other links that are not from my blog, not sure why.
Here's the script i'm talking about:
<script>
//<![CDATA[
var postTitle = new Array();
var postUrl = new Array();
var postPublished = new Array();
var postDate = new Array();
var postLabels = new Array();
var postRecent = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
function bloggersitemap(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postPublished[ii] = o;
if (h < 10) {
postRecent[ii] = true
} else {
postRecent[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();
}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postPublished[e];
postPublished[e] = postPublished[g];
postPublished[g] = f;
var f = postRecent[e];
postRecent[e] = postRecent[g];
postRecent[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postPublished[f];
postPublished[f] = postPublished[h];
postPublished[h] = g;
var g = postRecent[f];
postRecent[f] = postRecent[h];
postRecent[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Post Title";
var m = "Click to sort by title";
var d = "Date";
var k = "Click to sort by date";
var c = "Category";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Click to view all"
}
h += "<table>";
h += "<tr>";
h += '<td class="header1">';
h += '<a href="javascript:toggleTitleSort();" title="' + m + '">' + e + "</a>";
h += "</td>";
h += '<td class="header2">';
h += '<a href="javascript:toggleDateSort();" title="' + k + '">' + d + "</a>";
h += "</td>";
h += '<td class="header3">';
h += '<a href="javascript:allPosts();" title="' + j + '">' + c + "</a>";
h += "</td>";
h += '<td class="header4">';
h += "Read all";
h += "</td>";
h += "</tr>";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
}
}
}
h += "</table>";
if (l == postTitle.length) {
var f = '<span class="toc-note">Show All ' + postTitle.length + " Posts<br/></span>"
} else {
var f = '<span class="toc-note">Show ' + l + " posts by category '";
f += postFilter + "' the " + postTitle.length + " Total Posts<br/></span>"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("<p/>");
document.write('<p class="labels"><a href="/search/label/' + temp1 + '">' + temp1 + "</a></p><ol>");
firsti = a;
do {
document.write("<li>");
document.write('<a class="post-titles" href="' + postUrl[a] + '">' + postTitle[a] + "</a>");
if (postRecent[a] == true) {
document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')
}
document.write("</li>");
a = a + 1
} while (postLabels[a] == temp1);
b = a;
document.write("</ol>");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikEPztAO01GzBUzZ794Iw6rMq0ldkKZIGbNzyc4ZsEKAdx3aFlSCV9c1nYK3ZzHJZmFSh-MihIOpWHUC6tyhjrdLKvoBKt2eTMwqlLXWymMhyphenhyphenprkAX0t8xvMA_a8p8QEYoTVrv1ikU1AN/s1600/new_icon.gif"/>'
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("<br>");
document.write('Post Link : <a href="' + postUrl[a] + '">' + postTitle[a] + "</a><br>");
document.write('Read all : <a href="' + postPublished[a] + '">' + postTitle[a] + "</a><br>");
document.write("<br>")
}
};
//]]>
</script>
<script src="https://blogname.blogspot.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
javascript
add a comment |
I'm using a javascript that generates a sitemap page with all posts sorted alphabetically and by label.
It extracts the info from this link
https://blogname.blogspot.com/feeds/posts/default?max-results=9999
But a while back blogger introduced pagination to those links and they only display 150 posts now, so the sitemap shows only the last 150 post titles.
Now i have to use multiple links to get all my posts, links like this:
https://blogname.blogspot.com/feeds/posts/default?start-index=1&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=151&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=301&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=451&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=601&max-results=150
The problem is I don't know if it's possible to use multiple links with this javascript, or how to modify it to use more than 1 link for extracting the info.
My javascript knowledge is poor, i tried some noobish modifications but wasn't even close to succeed with any of them.
I also tried manually getting all info from a few links and merging them into a .txt files, than uploaded it on dropbox and pastebin, but the script didn't worked with any other links that are not from my blog, not sure why.
Here's the script i'm talking about:
<script>
//<![CDATA[
var postTitle = new Array();
var postUrl = new Array();
var postPublished = new Array();
var postDate = new Array();
var postLabels = new Array();
var postRecent = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
function bloggersitemap(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postPublished[ii] = o;
if (h < 10) {
postRecent[ii] = true
} else {
postRecent[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();
}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postPublished[e];
postPublished[e] = postPublished[g];
postPublished[g] = f;
var f = postRecent[e];
postRecent[e] = postRecent[g];
postRecent[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postPublished[f];
postPublished[f] = postPublished[h];
postPublished[h] = g;
var g = postRecent[f];
postRecent[f] = postRecent[h];
postRecent[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Post Title";
var m = "Click to sort by title";
var d = "Date";
var k = "Click to sort by date";
var c = "Category";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Click to view all"
}
h += "<table>";
h += "<tr>";
h += '<td class="header1">';
h += '<a href="javascript:toggleTitleSort();" title="' + m + '">' + e + "</a>";
h += "</td>";
h += '<td class="header2">';
h += '<a href="javascript:toggleDateSort();" title="' + k + '">' + d + "</a>";
h += "</td>";
h += '<td class="header3">';
h += '<a href="javascript:allPosts();" title="' + j + '">' + c + "</a>";
h += "</td>";
h += '<td class="header4">';
h += "Read all";
h += "</td>";
h += "</tr>";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
}
}
}
h += "</table>";
if (l == postTitle.length) {
var f = '<span class="toc-note">Show All ' + postTitle.length + " Posts<br/></span>"
} else {
var f = '<span class="toc-note">Show ' + l + " posts by category '";
f += postFilter + "' the " + postTitle.length + " Total Posts<br/></span>"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("<p/>");
document.write('<p class="labels"><a href="/search/label/' + temp1 + '">' + temp1 + "</a></p><ol>");
firsti = a;
do {
document.write("<li>");
document.write('<a class="post-titles" href="' + postUrl[a] + '">' + postTitle[a] + "</a>");
if (postRecent[a] == true) {
document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')
}
document.write("</li>");
a = a + 1
} while (postLabels[a] == temp1);
b = a;
document.write("</ol>");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikEPztAO01GzBUzZ794Iw6rMq0ldkKZIGbNzyc4ZsEKAdx3aFlSCV9c1nYK3ZzHJZmFSh-MihIOpWHUC6tyhjrdLKvoBKt2eTMwqlLXWymMhyphenhyphenprkAX0t8xvMA_a8p8QEYoTVrv1ikU1AN/s1600/new_icon.gif"/>'
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("<br>");
document.write('Post Link : <a href="' + postUrl[a] + '">' + postTitle[a] + "</a><br>");
document.write('Read all : <a href="' + postPublished[a] + '">' + postTitle[a] + "</a><br>");
document.write("<br>")
}
};
//]]>
</script>
<script src="https://blogname.blogspot.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
javascript
I'm using a javascript that generates a sitemap page with all posts sorted alphabetically and by label.
It extracts the info from this link
https://blogname.blogspot.com/feeds/posts/default?max-results=9999
But a while back blogger introduced pagination to those links and they only display 150 posts now, so the sitemap shows only the last 150 post titles.
Now i have to use multiple links to get all my posts, links like this:
https://blogname.blogspot.com/feeds/posts/default?start-index=1&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=151&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=301&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=451&max-results=150
https://blogname.blogspot.com/feeds/posts/default?start-index=601&max-results=150
The problem is I don't know if it's possible to use multiple links with this javascript, or how to modify it to use more than 1 link for extracting the info.
My javascript knowledge is poor, i tried some noobish modifications but wasn't even close to succeed with any of them.
I also tried manually getting all info from a few links and merging them into a .txt files, than uploaded it on dropbox and pastebin, but the script didn't worked with any other links that are not from my blog, not sure why.
Here's the script i'm talking about:
<script>
//<![CDATA[
var postTitle = new Array();
var postUrl = new Array();
var postPublished = new Array();
var postDate = new Array();
var postLabels = new Array();
var postRecent = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
function bloggersitemap(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postPublished[ii] = o;
if (h < 10) {
postRecent[ii] = true
} else {
postRecent[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();
}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postPublished[e];
postPublished[e] = postPublished[g];
postPublished[g] = f;
var f = postRecent[e];
postRecent[e] = postRecent[g];
postRecent[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postPublished[f];
postPublished[f] = postPublished[h];
postPublished[h] = g;
var g = postRecent[f];
postRecent[f] = postRecent[h];
postRecent[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Post Title";
var m = "Click to sort by title";
var d = "Date";
var k = "Click to sort by date";
var c = "Category";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Click to view all"
}
h += "<table>";
h += "<tr>";
h += '<td class="header1">';
h += '<a href="javascript:toggleTitleSort();" title="' + m + '">' + e + "</a>";
h += "</td>";
h += '<td class="header2">';
h += '<a href="javascript:toggleDateSort();" title="' + k + '">' + d + "</a>";
h += "</td>";
h += '<td class="header3">';
h += '<a href="javascript:allPosts();" title="' + j + '">' + c + "</a>";
h += "</td>";
h += '<td class="header4">';
h += "Read all";
h += "</td>";
h += "</tr>";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
}
}
}
h += "</table>";
if (l == postTitle.length) {
var f = '<span class="toc-note">Show All ' + postTitle.length + " Posts<br/></span>"
} else {
var f = '<span class="toc-note">Show ' + l + " posts by category '";
f += postFilter + "' the " + postTitle.length + " Total Posts<br/></span>"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("<p/>");
document.write('<p class="labels"><a href="/search/label/' + temp1 + '">' + temp1 + "</a></p><ol>");
firsti = a;
do {
document.write("<li>");
document.write('<a class="post-titles" href="' + postUrl[a] + '">' + postTitle[a] + "</a>");
if (postRecent[a] == true) {
document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')
}
document.write("</li>");
a = a + 1
} while (postLabels[a] == temp1);
b = a;
document.write("</ol>");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikEPztAO01GzBUzZ794Iw6rMq0ldkKZIGbNzyc4ZsEKAdx3aFlSCV9c1nYK3ZzHJZmFSh-MihIOpWHUC6tyhjrdLKvoBKt2eTMwqlLXWymMhyphenhyphenprkAX0t8xvMA_a8p8QEYoTVrv1ikU1AN/s1600/new_icon.gif"/>'
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("<br>");
document.write('Post Link : <a href="' + postUrl[a] + '">' + postTitle[a] + "</a><br>");
document.write('Read all : <a href="' + postPublished[a] + '">' + postTitle[a] + "</a><br>");
document.write("<br>")
}
};
//]]>
</script>
<script src="https://blogname.blogspot.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
<script>
//<![CDATA[
var postTitle = new Array();
var postUrl = new Array();
var postPublished = new Array();
var postDate = new Array();
var postLabels = new Array();
var postRecent = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
function bloggersitemap(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postPublished[ii] = o;
if (h < 10) {
postRecent[ii] = true
} else {
postRecent[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();
}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postPublished[e];
postPublished[e] = postPublished[g];
postPublished[g] = f;
var f = postRecent[e];
postRecent[e] = postRecent[g];
postRecent[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postPublished[f];
postPublished[f] = postPublished[h];
postPublished[h] = g;
var g = postRecent[f];
postRecent[f] = postRecent[h];
postRecent[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Post Title";
var m = "Click to sort by title";
var d = "Date";
var k = "Click to sort by date";
var c = "Category";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Click to view all"
}
h += "<table>";
h += "<tr>";
h += '<td class="header1">';
h += '<a href="javascript:toggleTitleSort();" title="' + m + '">' + e + "</a>";
h += "</td>";
h += '<td class="header2">';
h += '<a href="javascript:toggleDateSort();" title="' + k + '">' + d + "</a>";
h += "</td>";
h += '<td class="header3">';
h += '<a href="javascript:allPosts();" title="' + j + '">' + c + "</a>";
h += "</td>";
h += '<td class="header4">';
h += "Read all";
h += "</td>";
h += "</tr>";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
}
}
}
h += "</table>";
if (l == postTitle.length) {
var f = '<span class="toc-note">Show All ' + postTitle.length + " Posts<br/></span>"
} else {
var f = '<span class="toc-note">Show ' + l + " posts by category '";
f += postFilter + "' the " + postTitle.length + " Total Posts<br/></span>"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("<p/>");
document.write('<p class="labels"><a href="/search/label/' + temp1 + '">' + temp1 + "</a></p><ol>");
firsti = a;
do {
document.write("<li>");
document.write('<a class="post-titles" href="' + postUrl[a] + '">' + postTitle[a] + "</a>");
if (postRecent[a] == true) {
document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')
}
document.write("</li>");
a = a + 1
} while (postLabels[a] == temp1);
b = a;
document.write("</ol>");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikEPztAO01GzBUzZ794Iw6rMq0ldkKZIGbNzyc4ZsEKAdx3aFlSCV9c1nYK3ZzHJZmFSh-MihIOpWHUC6tyhjrdLKvoBKt2eTMwqlLXWymMhyphenhyphenprkAX0t8xvMA_a8p8QEYoTVrv1ikU1AN/s1600/new_icon.gif"/>'
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("<br>");
document.write('Post Link : <a href="' + postUrl[a] + '">' + postTitle[a] + "</a><br>");
document.write('Read all : <a href="' + postPublished[a] + '">' + postTitle[a] + "</a><br>");
document.write("<br>")
}
};
//]]>
</script>
<script src="https://blogname.blogspot.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
<script>
//<![CDATA[
var postTitle = new Array();
var postUrl = new Array();
var postPublished = new Array();
var postDate = new Array();
var postLabels = new Array();
var postRecent = new Array();
var sortBy = "titleasc";
var tocLoaded = false;
var numChars = 250;
var postFilter = "";
var numberfeed = 0;
function bloggersitemap(a) {
function b() {
if ("entry" in a.feed) {
var d = a.feed.entry.length;
numberfeed = d;
ii = 0;
for (var h = 0; h < d; h++) {
var n = a.feed.entry[h];
var e = n.title.$t;
var m = n.published.$t.substring(0, 10);
var j;
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "alternate") {
j = n.link[g].href;
break
}
}
var o = "";
for (var g = 0; g < n.link.length; g++) {
if (n.link[g].rel == "enclosure") {
o = n.link[g].href;
break
}
}
var c = "";
if ("category" in n) {
for (var g = 0; g < n.category.length; g++) {
c = n.category[g].term;
var f = c.lastIndexOf(";");
if (f != -1) {
c = c.substring(0, f)
}
postLabels[ii] = c;
postTitle[ii] = e;
postDate[ii] = m;
postUrl[ii] = j;
postPublished[ii] = o;
if (h < 10) {
postRecent[ii] = true
} else {
postRecent[ii] = false
}
ii = ii + 1
}
}
}
}
}
b();
sortBy = "titleasc";
sortPosts(sortBy);
sortlabel();
tocLoaded = true;
displayToc2();
}
function filterPosts(a) {
scroll(0, 0);
postFilter = a;
displayToc(postFilter)
}
function allPosts() {
sortlabel();
postFilter = "";
displayToc(postFilter)
}
function sortPosts(d) {
function c(e, g) {
var f = postTitle[e];
postTitle[e] = postTitle[g];
postTitle[g] = f;
var f = postDate[e];
postDate[e] = postDate[g];
postDate[g] = f;
var f = postUrl[e];
postUrl[e] = postUrl[g];
postUrl[g] = f;
var f = postLabels[e];
postLabels[e] = postLabels[g];
postLabels[g] = f;
var f = postPublished[e];
postPublished[e] = postPublished[g];
postPublished[g] = f;
var f = postRecent[e];
postRecent[e] = postRecent[g];
postRecent[g] = f
}
for (var b = 0; b < postTitle.length - 1; b++) {
for (var a = b + 1; a < postTitle.length; a++) {
if (d == "titleasc") {
if (postTitle[b] > postTitle[a]) {
c(b, a)
}
}
if (d == "titledesc") {
if (postTitle[b] < postTitle[a]) {
c(b, a)
}
}
if (d == "dateoldest") {
if (postDate[b] > postDate[a]) {
c(b, a)
}
}
if (d == "datenewest") {
if (postDate[b] < postDate[a]) {
c(b, a)
}
}
if (d == "orderlabel") {
if (postLabels[b] > postLabels[a]) {
c(b, a)
}
}
}
}
}
function sortlabel() {
sortBy = "orderlabel";
sortPosts(sortBy);
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
firsti = a;
do {
a = a + 1
} while (postLabels[a] == temp1);
b = a;
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function sortPosts2(d, c) {
function e(f, h) {
var g = postTitle[f];
postTitle[f] = postTitle[h];
postTitle[h] = g;
var g = postDate[f];
postDate[f] = postDate[h];
postDate[h] = g;
var g = postUrl[f];
postUrl[f] = postUrl[h];
postUrl[h] = g;
var g = postLabels[f];
postLabels[f] = postLabels[h];
postLabels[h] = g;
var g = postPublished[f];
postPublished[f] = postPublished[h];
postPublished[h] = g;
var g = postRecent[f];
postRecent[f] = postRecent[h];
postRecent[h] = g
}
for (var b = d; b < c - 1; b++) {
for (var a = b + 1; a < c; a++) {
if (postTitle[b] > postTitle[a]) {
e(b, a)
}
}
}
}
function displayToc(a) {
var l = 0;
var h = "";
var e = "Post Title";
var m = "Click to sort by title";
var d = "Date";
var k = "Click to sort by date";
var c = "Category";
var j = "";
if (sortBy == "titleasc") {
m += " (descending)";
k += " (newest first)"
}
if (sortBy == "titledesc") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "dateoldest") {
m += " (ascending)";
k += " (newest first)"
}
if (sortBy == "datenewest") {
m += " (ascending)";
k += " (oldest first)"
}
if (postFilter != "") {
j = "Click to view all"
}
h += "<table>";
h += "<tr>";
h += '<td class="header1">';
h += '<a href="javascript:toggleTitleSort();" title="' + m + '">' + e + "</a>";
h += "</td>";
h += '<td class="header2">';
h += '<a href="javascript:toggleDateSort();" title="' + k + '">' + d + "</a>";
h += "</td>";
h += '<td class="header3">';
h += '<a href="javascript:allPosts();" title="' + j + '">' + c + "</a>";
h += "</td>";
h += '<td class="header4">';
h += "Read all";
h += "</td>";
h += "</tr>";
for (var g = 0; g < postTitle.length; g++) {
if (a == "") {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
} else {
z = postLabels[g].lastIndexOf(a);
if (z != -1) {
h += '<tr><td class="entry1"><a href="' + postUrl[g] + '">' + postTitle[g] + '</a></td><td class="entry2">' + postDate[g] + '</td><td class="entry3">' + postLabels[g] + '</td><td class="entry4"><a href="' + postPublished[g] + '">Read</a></td></tr>';
l++
}
}
}
h += "</table>";
if (l == postTitle.length) {
var f = '<span class="toc-note">Show All ' + postTitle.length + " Posts<br/></span>"
} else {
var f = '<span class="toc-note">Show ' + l + " posts by category '";
f += postFilter + "' the " + postTitle.length + " Total Posts<br/></span>"
}
var b = document.getElementById("toc");
b.innerHTML = f + h
}
function displayToc2() {
var a = 0;
var b = 0;
while (b < postTitle.length) {
temp1 = postLabels[b];
document.write("<p/>");
document.write('<p class="labels"><a href="/search/label/' + temp1 + '">' + temp1 + "</a></p><ol>");
firsti = a;
do {
document.write("<li>");
document.write('<a class="post-titles" href="' + postUrl[a] + '">' + postTitle[a] + "</a>");
if (postRecent[a] == true) {
document.write(' - <strong><span style="color: rgb(255, 0, 0);">New!</span></strong>')
}
document.write("</li>");
a = a + 1
} while (postLabels[a] == temp1);
b = a;
document.write("</ol>");
sortPosts2(firsti, a);
if (b > postTitle.length) {
break
}
}
}
function toggleTitleSort() {
if (sortBy == "titleasc") {
sortBy = "titledesc"
} else {
sortBy = "titleasc"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function toggleDateSort() {
if (sortBy == "datenewest") {
sortBy = "dateoldest"
} else {
sortBy = "datenewest"
}
sortPosts(sortBy);
displayToc(postFilter)
}
function showToc() {
if (tocLoaded) {
displayToc(postFilter);
var a = document.getElementById("toclink")
} else {
alert("Just wait... TOC is loading")
}
}
function hideToc() {
var a = document.getElementById("toc");
a.innerHTML = "";
var b = document.getElementById("toclink");
b.innerHTML = '<a href="#" onclick="scroll(0,0); showToc(); Effect.toggle('toc-result','blind');">?? Display Table of Contents</a> <img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhikEPztAO01GzBUzZ794Iw6rMq0ldkKZIGbNzyc4ZsEKAdx3aFlSCV9c1nYK3ZzHJZmFSh-MihIOpWHUC6tyhjrdLKvoBKt2eTMwqlLXWymMhyphenhyphenprkAX0t8xvMA_a8p8QEYoTVrv1ikU1AN/s1600/new_icon.gif"/>'
}
function looptemp2() {
for (var a = 0; a < numberfeed; a++) {
document.write("<br>");
document.write('Post Link : <a href="' + postUrl[a] + '">' + postTitle[a] + "</a><br>");
document.write('Read all : <a href="' + postPublished[a] + '">' + postTitle[a] + "</a><br>");
document.write("<br>")
}
};
//]]>
</script>
<script src="https://blogname.blogspot.com/feeds/posts/default?max-results=9999&alt=json-in-script&callback=bloggersitemap"></script>
javascript
javascript
asked Nov 17 '18 at 21:15
FuZzy1FuZzy1
277
277
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
- Pass JSON feeds to another function before callback, use spread operator (...) or concat to combine post entries array.
- Check for the last query, then do your callback : bloggersitemap()
var entries = ;
var successQuery = 0;
var totalQuery = 6; //your total feeds query <script> tag
function combineEntries(a) {
if ("entry" in a.feed)
entries = [...entries,...a.feed.entry];
successQuery++;
if (successQuery == totalQuery)
{
bloggersitemap(
{feed:{entry:entries}}
);
entries = ; // avoid further manipulations to entries
}
}
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53355654%2fblogger-sitemap-javascript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
- Pass JSON feeds to another function before callback, use spread operator (...) or concat to combine post entries array.
- Check for the last query, then do your callback : bloggersitemap()
var entries = ;
var successQuery = 0;
var totalQuery = 6; //your total feeds query <script> tag
function combineEntries(a) {
if ("entry" in a.feed)
entries = [...entries,...a.feed.entry];
successQuery++;
if (successQuery == totalQuery)
{
bloggersitemap(
{feed:{entry:entries}}
);
entries = ; // avoid further manipulations to entries
}
}
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
add a comment |
- Pass JSON feeds to another function before callback, use spread operator (...) or concat to combine post entries array.
- Check for the last query, then do your callback : bloggersitemap()
var entries = ;
var successQuery = 0;
var totalQuery = 6; //your total feeds query <script> tag
function combineEntries(a) {
if ("entry" in a.feed)
entries = [...entries,...a.feed.entry];
successQuery++;
if (successQuery == totalQuery)
{
bloggersitemap(
{feed:{entry:entries}}
);
entries = ; // avoid further manipulations to entries
}
}
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
add a comment |
- Pass JSON feeds to another function before callback, use spread operator (...) or concat to combine post entries array.
- Check for the last query, then do your callback : bloggersitemap()
var entries = ;
var successQuery = 0;
var totalQuery = 6; //your total feeds query <script> tag
function combineEntries(a) {
if ("entry" in a.feed)
entries = [...entries,...a.feed.entry];
successQuery++;
if (successQuery == totalQuery)
{
bloggersitemap(
{feed:{entry:entries}}
);
entries = ; // avoid further manipulations to entries
}
}
- Pass JSON feeds to another function before callback, use spread operator (...) or concat to combine post entries array.
- Check for the last query, then do your callback : bloggersitemap()
var entries = ;
var successQuery = 0;
var totalQuery = 6; //your total feeds query <script> tag
function combineEntries(a) {
if ("entry" in a.feed)
entries = [...entries,...a.feed.entry];
successQuery++;
if (successQuery == totalQuery)
{
bloggersitemap(
{feed:{entry:entries}}
);
entries = ; // avoid further manipulations to entries
}
}
edited Nov 22 '18 at 4:58
answered Nov 18 '18 at 23:38
billbill
664
664
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
add a comment |
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
Thanks for your answer. As i said in the first post, i'm pretty noob at coding, i tried to do what you told me, but i'm pretty sure i did it wrong, here's what i did: link
– FuZzy1
Nov 19 '18 at 17:40
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
you forget to add callback in the script src tag.. add callback to combineEntries.. I've updated the answer (passing an object to bloggersitemap).. works just fine, tested
– bill
Nov 21 '18 at 13:31
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
It works now, thanks a lot!
– FuZzy1
Nov 21 '18 at 16:03
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53355654%2fblogger-sitemap-javascript%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown