czaks
9 years ago
1 changed files with 116 additions and 0 deletions
@ -0,0 +1,116 @@ |
|||
/***************************************************************** |
|||
* ------- WARNING! --------- * |
|||
***************************************************************** |
|||
* This script is at the current time undocumented and * |
|||
* unsupported. It is still a work in progress and will likely * |
|||
* change. You are on your own. * |
|||
*****************************************************************/ |
|||
|
|||
+function() { |
|||
|
|||
var uniq = function(a) { |
|||
var b = {}; |
|||
var c = []; |
|||
a.forEach(function(i) { |
|||
if (!b[i]) { |
|||
c.push(i); |
|||
b[i] = true; |
|||
} |
|||
}); |
|||
return c; |
|||
}; |
|||
|
|||
|
|||
if (active_page == 'thread' || active_page == 'index') { |
|||
var board = null; |
|||
|
|||
$(function() { |
|||
board = $('input[name="board"]').first().val(); |
|||
}); |
|||
|
|||
$(document).on('ajax_after_post', function(e, r) { |
|||
var threads = JSON.parse(localStorage.obthreads || '[]'); |
|||
|
|||
var thread = null; |
|||
if (active_page == 'index') { |
|||
thread = r.id|0; |
|||
} |
|||
else { |
|||
thread = $('[id^="thread_"]').first().attr('id').replace("thread_", "")|0; |
|||
} |
|||
|
|||
threads.push([board, thread]); |
|||
threads = uniq(threads); |
|||
localStorage.obthreads = JSON.stringify(threads); |
|||
}); |
|||
} |
|||
|
|||
var loaded = false; |
|||
$(function() { |
|||
loaded = true; |
|||
}); |
|||
|
|||
var activate = function() { |
|||
if (document.location.hash != '#own') return false; |
|||
|
|||
if (loaded) late_activate(); |
|||
else $(function() { late_activate(); }); |
|||
|
|||
return true; |
|||
}; |
|||
|
|||
var late_activate = function() { |
|||
$('[id^="thread_"]').remove(); |
|||
|
|||
var threads = JSON.parse(localStorage.obthreads || '[]'); |
|||
|
|||
threads.forEach(function(v) { |
|||
var board = v[0]; |
|||
var thread = v[1]; |
|||
var url = "/"+board+"/res/"+thread+".html"; |
|||
|
|||
$.get(url, function(html) { |
|||
var s = $(html).find('[id^="thread_"]'); |
|||
|
|||
s[0].bumptime = (new Date(s.find("time").last().attr("datetime"))).getTime(); |
|||
|
|||
var added = false; |
|||
$('[id^="thread_"]').each(function() { |
|||
if (added) return; |
|||
if (s[0].bumptime > this.bumptime) { |
|||
added = true; |
|||
s.insertBefore(this); |
|||
} |
|||
}); |
|||
if (!added) { |
|||
s.appendTo('[name="postcontrols"]'); |
|||
} |
|||
|
|||
s.find('.post.reply').addClass('hidden').hide().slice(-3).removeClass('hidden').show(); |
|||
|
|||
s.find('.post.reply.hidden').next().addClass('hidden').hide(); // Hide <br> elements
|
|||
|
|||
var posts_omitted = s.find('.post.reply.hidden').length; |
|||
var images_omitted = s.find('.post.reply.hidden img').length; |
|||
|
|||
if (posts_omitted > 0) { |
|||
var omitted = $(fmt('<span class="omitted">'+_('{0} posts and {1} images omitted.')+' '+_('Click reply to view.')+'</span>', |
|||
[posts_omitted, images_omitted])); |
|||
|
|||
omitted.appendTo(s.find('.post.op')); |
|||
} |
|||
|
|||
var reply = $('<a href="'+url+'">['+_('Reply')+']</a>').appendTo(s.find('.intro').first()); |
|||
|
|||
$(document).trigger('new_post', s[0]); |
|||
}); |
|||
}); |
|||
}; |
|||
|
|||
$(window).on("hashchange", function() { |
|||
return !activate(); |
|||
}); |
|||
activate(); |
|||
|
|||
|
|||
}(); |
Loading…
Reference in new issue