endless summer on dsbd
by
taizooo
2014-09-01 [2014/09/01 20:21:47]
promotion version (Exponential Endless Summer)
@@ -3,165 +3,168 @@
* @description promotion version
* @include http://www.tumblr.com/*
* @license reblog commons license ( cc by 3.0 )
- */
+ */
-var now_url = location.href;
-var oldest_id = 264102; // http://ku.tumblr.com/post/264102
-var latest_id = get_latest_id(document);
-latest_id = (latest_id > 20000000000) ? latest_id : 20000000000;
-console.log(latest_id);
-
-var State = true;
-var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
-var BASE_REMAIN_HEIGHT = 10000;
-var loading = false;
-
-var last_element = get_next_elements(document).pop();
-if (!last_element) {
- return error();
-}
-insert_point = last_element.nextSibling;
-insert_parent = last_element.parentNode;
-
-next_page_load();
-
-window.addEventListener('scroll', function () {
- if (loading) return;
- var remain = document.documentElement.scrollHeight - window.innerHeight - window.pageYOffset;
- if (State && remain < BASE_REMAIN_HEIGHT) {
- next_page_load();
- }
-}, false);
-
-function next_page_load() {
- loading = true;
- var next = get_next(now_url);
- history.pushState("", "", next);
- console.log(next);
- var x = new XMLHttpRequest();
- x.onload = function () {
- if (x.status <= 200 && x.status < 300) {
- load(x);
- } else {
- error();
+(function () {
+ var now_url = location.href;
+ var oldest_id = 264102; // http://ku.tumblr.com/post/264102
+ var latest_id = get_latest_id(document);
+ latest_id = (latest_id > 20000000000) ? latest_id : 20000000000;
+ console.log('latest_id: ' + latest_id);
+
+ var State = true;
+ var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
+ var BASE_REMAIN_HEIGHT = 10000;
+ var loading = false;
+
+ var last_element = get_next_elements(document).pop();
+ if (!last_element) {
+ return error();
+ }
+ insert_point = last_element.nextSibling;
+ insert_parent = last_element.parentNode;
+
+ next_page_load();
+
+ window.addEventListener('scroll', function () {
+ if (loading) return;
+ var remain = document.documentElement.scrollHeight - window.innerHeight - window.pageYOffset;
+ if (State && remain < BASE_REMAIN_HEIGHT) {
next_page_load();
}
- };
- x.open('GET', next, true);
- x.send(null);
-}
-
-function load(x) {
- var html = x.responseText.replace(/<script(?:[ \t\r\n][^>]*)?>[\S\s]*?<\/script[ \t\r\n]*>|<\/?(?:i?frame|html|script|object)(?:[ \t\r\n][^<>]*)?>/gi, ' ');
- var htmlDoc;
- if (document.implementation.createHTMLDocument) {
- htmlDoc = document.implementation.createHTMLDocument('hogehoge')
- } else {
- htmlDoc = document.cloneNode(false);
- if (htmlDoc) {
- htmlDoc.appendChild(htmlDoc.importNode(document.documentElement, false));
+ }, false);
+
+ function next_page_load() {
+ loading = true;
+ var next = get_next(now_url);
+ history.pushState("", "", next);
+ console.log('next: ' + next);
+ var x = new XMLHttpRequest();
+ x.onload = function () {
+ if (x.status <= 200 && x.status < 300) {
+ load(x);
+ } else {
+ error();
+ next_page_load();
+ }
+ };
+ x.open('GET', next, true);
+ x.send(null);
+ }
+
+ function load(x) {
+ var html = x.responseText.replace(/<script(?:[ \t\r\n][^>]*)?>[\S\s]*?<\/script[ \t\r\n]*>|<\/?(?:i?frame|html|script|object)(?:[ \t\r\n][^<>]*)?>/gi, ' ');
+ var htmlDoc;
+ if (document.implementation.createHTMLDocument) {
+ htmlDoc = document.implementation.createHTMLDocument('hogehoge')
} else {
- htmlDoc = document.implementation.createDocument(null, 'html', null);
+ htmlDoc = document.cloneNode(false);
+ if (htmlDoc) {
+ htmlDoc.appendChild(htmlDoc.importNode(document.documentElement, false));
+ } else {
+ htmlDoc = document.implementation.createDocument(null, 'html', null);
+ }
}
- }
- var range = document.createRange();
- range.selectNodeContents(document.documentElement);
- htmlDoc.documentElement.appendChild(range.createContextualFragment(html));
- var docs = get_next_elements(htmlDoc);
- if (!docs.length) {
- error();
- return next_page_load();
- }
- target_rewrite(docs);
- img_cache(docs);
- docs = docs.map(function (doc) {
- return insert_parent.insertBefore(document.importNode(doc, true), insert_point);
- });
- loading = false;
-}
-
-function get_next_elements(doc) {
- var r = doc.evaluate('id("posts")/li[starts-with(@id,"post_")]', doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
- for (var i = 0, l = r.snapshotLength, res = new Array(l); i < l; i++) res[i] = r.snapshotItem(i);
- return res;
-}
-
-function target_rewrite(docs) {
- docs.forEach(function (doc) {
- var as = doc.getElementsByTagName('a');
- for (var i = 0, l = as.length; i < l; i++) {
- var a = as[i],_a = a.getAttribute('href');
- if (_a && !/^javascript:/.test(_a) && !/^#/.test(_a)) a.setAttribute('target', '_blank');
+ var range = document.createRange();
+ range.selectNodeContents(document.documentElement);
+ htmlDoc.documentElement.appendChild(range.createContextualFragment(html));
+ var docs = get_next_elements(htmlDoc);
+ if (!docs.length) {
+ error();
+ return next_page_load();
}
- });
-}
+ target_rewrite(docs);
+ img_cache(docs);
+ docs = docs.map(function (doc) {
+ return insert_parent.insertBefore(document.importNode(doc, true), insert_point);
+ });
+ loading = false;
+ }
-function img_cache(docs) {
- docs.forEach(function (doc) {
- var is = doc.getElementsByTagName('img');
- for (var i = 0, l = is.length; i < l; i++) {
- img = new Image();
- img.src = is[i].src;
- }
- });
-}
+ function get_next_elements(doc) {
+ var r = doc.evaluate('id("posts")/li[starts-with(@id,"post_")]', doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, l = r.snapshotLength, res = new Array(l); i < l; i++) res[i] = r.snapshotItem(i);
+ return res;
+ }
-function error() {
- return console.log('error');
- State = false;
-}
-
-function terminate() {
- return console.log('terminate');
- State = false;
-}
-
-function get_latest_id(doc) {
- return doc.evaluate('number(substring-after(id("posts")/li[starts-with(@id,"post_")]/@id,"post_"))', doc, null, XPathResult.NUMBER_TYPE, null).numberValue;
-}
-
-function get_next(url) {
- var rumdom_id = getRandom();
- return /(?:\/dashboard|(?:\/blog\/[-\w]+)?\/show\/\w+|\/blog\/[-\w]+)/.exec(url)[0] + '/2?offset=' + rumdom_id;
-}
-
-function getRandom() {
- var a = [{
- 'year': '2007',
- 'min': 765,
- 'max': 22716604,
- 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/22716604'
- }, {
- 'year': '2008',
- 'min': 22716605,
- 'max': 67666062,
- 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/67666062'
- }, {
- 'year': '2009',
- 'min': 67666063,
- 'max': 309781568,
- 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/309781568'
- }, {
- 'year': '2010',
- 'min': 309781569,
- 'max': 2542121207,
- 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/2542121207'
- }, {
- 'year': '2011',
- 'min': 2542121208,
- 'max': 15080900593,
- 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/15080900593'
- }, {
- 'year': 'now',
- 'min': 15080900593,
- 'max': latest_id,
- 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/19893333892'
- }];
- var c = Math.floor(Math.random() * a.length);
- var d = Math.floor(Math.random() * (a[c].max - a[c].min + 1)) + a[c].min;
- if (d < oldest_id) {
- return choice();
- }
- console.log([d, a[c].year, a[c].max, a[c].min, c]);
- return d;
-}
+ function target_rewrite(docs) {
+ docs.forEach(function (doc) {
+ var as = doc.getElementsByTagName('a');
+ for (var i = 0, l = as.length; i < l; i++) {
+ var a = as[i],
+ _a = a.getAttribute('href');
+ if (_a && !/^javascript:/.test(_a) && !/^#/.test(_a)) a.setAttribute('target', '_blank');
+ }
+ });
+ }
+
+ function img_cache(docs) {
+ docs.forEach(function (doc) {
+ var is = doc.getElementsByTagName('img');
+ for (var i = 0, l = is.length; i < l; i++) {
+ img = new Image();
+ img.src = is[i].src;
+ }
+ });
+ }
+
+ function error() {
+ return console.log('error');
+ State = false;
+ }
+
+ function terminate() {
+ return console.log('terminate');
+ State = false;
+ }
+
+ function get_latest_id(doc) {
+ return doc.evaluate('number(substring-after(id("posts")/li[starts-with(@id,"post_")]/@id,"post_"))', doc, null, XPathResult.NUMBER_TYPE, null).numberValue;
+ }
+
+ function get_next(url) {
+ var rumdom_id = getRandom();
+ return /(?:\/dashboard|(?:\/blog\/[-\w]+)?\/show\/\w+|\/blog\/[-\w]+)/.exec(url)[0] + '/2?offset=' + rumdom_id;
+ }
+
+ function getRandom() {
+ var a = [{
+ 'year': '2007',
+ 'min': 765,
+ 'max': 22716604,
+ 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/22716604'
+ }, {
+ 'year': '2008',
+ 'min': 22716605,
+ 'max': 67666062,
+ 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/67666062'
+ }, {
+ 'year': '2009',
+ 'min': 67666063,
+ 'max': 309781568,
+ 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/309781568'
+ }, {
+ 'year': '2010',
+ 'min': 309781569,
+ 'max': 2542121207,
+ 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/2542121207'
+ }, {
+ 'year': '2011',
+ 'min': 2542121208,
+ 'max': 15080900593,
+ 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/15080900593'
+ }, {
+ 'year': 'now',
+ 'min': 15080900593,
+ 'max': latest_id,
+ 'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/19893333892'
+ }];
+ var c = Math.floor(Math.random() * a.length);
+ var d = Math.floor(Math.random() * (a[c].max - a[c].min + 1)) + a[c].min;
+ if (d < oldest_id) {
+ return choice();
+ }
+ console.log([d, a[c].year, a[c].max, a[c].min, c]);
+ return d;
+ }
+})()
/*
* @title endless summer on dsbd
* @description promotion version
* @include http://www.tumblr.com/*
* @license reblog commons license ( cc by 3.0 )
*/
(function () {
var now_url = location.href;
var oldest_id = 264102; // http://ku.tumblr.com/post/264102
var latest_id = get_latest_id(document);
latest_id = (latest_id > 20000000000) ? latest_id : 20000000000;
console.log('latest_id: ' + latest_id);
var State = true;
var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
var BASE_REMAIN_HEIGHT = 10000;
var loading = false;
var last_element = get_next_elements(document).pop();
if (!last_element) {
return error();
}
insert_point = last_element.nextSibling;
insert_parent = last_element.parentNode;
next_page_load();
window.addEventListener('scroll', function () {
if (loading) return;
var remain = document.documentElement.scrollHeight - window.innerHeight - window.pageYOffset;
if (State && remain < BASE_REMAIN_HEIGHT) {
next_page_load();
}
}, false);
function next_page_load() {
loading = true;
var next = get_next(now_url);
history.pushState("", "", next);
console.log('next: ' + next);
var x = new XMLHttpRequest();
x.onload = function () {
if (x.status <= 200 && x.status < 300) {
load(x);
} else {
error();
next_page_load();
}
};
x.open('GET', next, true);
x.send(null);
}
function load(x) {
var html = x.responseText.replace(/<script(?:[ \t\r\n][^>]*)?>[\S\s]*?<\/script[ \t\r\n]*>|<\/?(?:i?frame|html|script|object)(?:[ \t\r\n][^<>]*)?>/gi, ' ');
var htmlDoc;
if (document.implementation.createHTMLDocument) {
htmlDoc = document.implementation.createHTMLDocument('hogehoge')
} else {
htmlDoc = document.cloneNode(false);
if (htmlDoc) {
htmlDoc.appendChild(htmlDoc.importNode(document.documentElement, false));
} else {
htmlDoc = document.implementation.createDocument(null, 'html', null);
}
}
var range = document.createRange();
range.selectNodeContents(document.documentElement);
htmlDoc.documentElement.appendChild(range.createContextualFragment(html));
var docs = get_next_elements(htmlDoc);
if (!docs.length) {
error();
return next_page_load();
}
target_rewrite(docs);
img_cache(docs);
docs = docs.map(function (doc) {
return insert_parent.insertBefore(document.importNode(doc, true), insert_point);
});
loading = false;
}
function get_next_elements(doc) {
var r = doc.evaluate('id("posts")/li[starts-with(@id,"post_")]', doc, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0, l = r.snapshotLength, res = new Array(l); i < l; i++) res[i] = r.snapshotItem(i);
return res;
}
function target_rewrite(docs) {
docs.forEach(function (doc) {
var as = doc.getElementsByTagName('a');
for (var i = 0, l = as.length; i < l; i++) {
var a = as[i],
_a = a.getAttribute('href');
if (_a && !/^javascript:/.test(_a) && !/^#/.test(_a)) a.setAttribute('target', '_blank');
}
});
}
function img_cache(docs) {
docs.forEach(function (doc) {
var is = doc.getElementsByTagName('img');
for (var i = 0, l = is.length; i < l; i++) {
img = new Image();
img.src = is[i].src;
}
});
}
function error() {
return console.log('error');
State = false;
}
function terminate() {
return console.log('terminate');
State = false;
}
function get_latest_id(doc) {
return doc.evaluate('number(substring-after(id("posts")/li[starts-with(@id,"post_")]/@id,"post_"))', doc, null, XPathResult.NUMBER_TYPE, null).numberValue;
}
function get_next(url) {
var rumdom_id = getRandom();
return /(?:\/dashboard|(?:\/blog\/[-\w]+)?\/show\/\w+|\/blog\/[-\w]+)/.exec(url)[0] + '/2?offset=' + rumdom_id;
}
function getRandom() {
var a = [{
'year': '2007',
'min': 765,
'max': 22716604,
'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/22716604'
}, {
'year': '2008',
'min': 22716605,
'max': 67666062,
'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/67666062'
}, {
'year': '2009',
'min': 67666063,
'max': 309781568,
'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/309781568'
}, {
'year': '2010',
'min': 309781569,
'max': 2542121207,
'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/2542121207'
}, {
'year': '2011',
'min': 2542121208,
'max': 15080900593,
'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/15080900593'
}, {
'year': 'now',
'min': 15080900593,
'max': latest_id,
'url': 'http://kagurazakaundergroundresistance.tumblr.com/post/19893333892'
}];
var c = Math.floor(Math.random() * a.length);
var d = Math.floor(Math.random() * (a[c].max - a[c].min + 1)) + a[c].min;
if (d < oldest_id) {
return choice();
}
console.log([d, a[c].year, a[c].max, a[c].min, c]);
return d;
}
})()
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。