forked from leftypol/leftypol
thread-stats.js: reduce duplicated code
This commit is contained in:
parent
7ffb81d1f8
commit
5811945459
1 changed files with 39 additions and 55 deletions
|
@ -12,8 +12,8 @@ if (active_page == 'thread') {
|
|||
$(document).ready(function() {
|
||||
// Check if page uses unique ID.
|
||||
let IDsupport = ($('.poster_id').length > 0);
|
||||
let thread_id = (document.location.pathname + document.location.search).split('/');
|
||||
thread_id = thread_id[thread_id.length -1].split('+')[0].split('.')[0];
|
||||
let threadId = (document.location.pathname + document.location.search).split('/');
|
||||
threadId = threadId[threadId.length -1].split('+')[0].split('.')[0];
|
||||
|
||||
$('.clear').before('<div id="thread_stats"></div>');
|
||||
|
||||
|
@ -26,9 +26,37 @@ if (active_page == 'thread') {
|
|||
el.prepend('| <span id="thread_stats_posts">0</span> replies | ');
|
||||
delete el;
|
||||
|
||||
function update_thread_stats() {
|
||||
let op = $('#thread_' + thread_id).find('div.post.op:not(.post-hover):not(.inline)').first();
|
||||
let replies = $('#thread_' + thread_id).find('div.post.reply:not(.post-hover):not(.inline)');
|
||||
function fetchPageNumber() {
|
||||
$.getJSON('//' + document.location.host + '/' + boardName + '/threads.json', function(data) {
|
||||
let found;
|
||||
let page = '???';
|
||||
let threadIdInt = parseInt(threadId);
|
||||
for (let i = 0; data[i]; i++) {
|
||||
let threads = data[i].threads;
|
||||
for (let j = 0; threads[j]; j++) {
|
||||
if (parseInt(threads[j].no) === threadIdInt) {
|
||||
page = data[i].page +1;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
let threadStatsPage = $('#thread_stats_page');
|
||||
threadStatsPage.text(page);
|
||||
if (!found) {
|
||||
threadStatsPage.css('color', 'red');
|
||||
} else {
|
||||
threadStatsPage.css('color', '');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function updateThreadStats() {
|
||||
let op = $('#thread_' + threadId).find('div.post.op:not(.post-hover):not(.inline)').first();
|
||||
let replies = $('#thread_' + threadId).find('div.post.reply:not(.post-hover):not(.inline)');
|
||||
// Post count.
|
||||
$('#thread_stats_posts').text(replies.length);
|
||||
// Image count.
|
||||
|
@ -70,61 +98,17 @@ if (active_page == 'thread') {
|
|||
};
|
||||
$('#thread_stats_uids').text(size(ids));
|
||||
}
|
||||
$.getJSON('//' + document.location.host + '/' + board_name + '/threads.json', function(data) {
|
||||
let found;
|
||||
let page = '???';
|
||||
let threadId = parseInt(thread_id);
|
||||
for (let i = 0; data[i]; i++) {
|
||||
let threads = data[i].threads;
|
||||
for (let j = 0; threads[j]; j++) {
|
||||
if (parseInt(threads[j].no) === threadId) {
|
||||
page = data[i].page +1;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
let threadStatsPage = $('#thread_stats_page');
|
||||
threadStatsPage.text(page);
|
||||
if (!found) {
|
||||
threadStatsPage.css('color', 'red');
|
||||
} else {
|
||||
threadStatsPage.css('color', '');
|
||||
}
|
||||
});
|
||||
|
||||
fetchPageNumber();
|
||||
}
|
||||
|
||||
// Load the current page the thread is on.
|
||||
// Uses ajax call so it gets loaded on a delay (depending on network resources available).
|
||||
setInterval(function() {
|
||||
$.getJSON('//' + document.location.host + '/' + board_name + '/threads.json', function(data) {
|
||||
let found;
|
||||
let page = '???';
|
||||
for (let i = 0; data[i]; i++) {
|
||||
let threads = data[i].threads;
|
||||
for (let j = 0; threads[j]; j++) {
|
||||
if (parseInt(threads[j].no) == parseInt(thread_id)) {
|
||||
page = data[i].page +1;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (found) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
$('#thread_stats_page').text(page);
|
||||
if (!found) $('#thread_stats_page').css('color','red');
|
||||
else $('#thread_stats_page').css('color','');
|
||||
});
|
||||
}, 30000);
|
||||
setInterval(fetchPageNumber, 30000);
|
||||
|
||||
$('body').append('<style>.posts_by_id{display:none;}.poster_id:hover+.posts_by_id{display:initial}</style>');
|
||||
update_thread_stats();
|
||||
$('#update_thread').click(update_thread_stats);
|
||||
$(document).on('new_post', update_thread_stats);
|
||||
updateThreadStats();
|
||||
$('#update_thread').click(updateThreadStats);
|
||||
$(document).on('new_post', updateThreadStats);
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue