diff --git a/builds/4chan-X.js b/builds/4chan-X.js index 3c41e4a81..4c38bce6c 100644 --- a/builds/4chan-X.js +++ b/builds/4chan-X.js @@ -6848,7 +6848,7 @@ value: Conf['Interval'] })); $.on(window, 'online offline', ThreadUpdater.cb.online); - $.on(d, 'QRPostSuccessful', ThreadUpdater.cb.post); + $.on(d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost); $.on(d, 'visibilitychange', ThreadUpdater.cb.visibility); return ThreadUpdater.cb.online(); }, @@ -6881,8 +6881,8 @@ } }, checkpost: function() { - if (!(g.DEAD || ThreadUpdater.foundPost || ThreadUpdater.checkPostCount >= 10)) { - return setTimeout(ThreadUpdater.update, ++ThreadUpdater.checkPostCount * 500); + if (!(g.DEAD || ThreadUpdater.foundPost || ThreadUpdater.checkPostCount >= 5)) { + return setTimeout(ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND); } ThreadUpdater.checkPostCount = 0; delete ThreadUpdater.foundPost; @@ -6960,7 +6960,7 @@ ThreadUpdater.set('status', text, klass); } if (ThreadUpdater.postID) { - ThreadUpdater.cb.checkpost(this.status); + ThreadUpdater.cb.checkpost(); } return delete ThreadUpdater.req; } @@ -7061,7 +7061,7 @@ return $.after(root, [$.tn(' '), icon]); }, parse: function(postObjects) { - var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, scroll, _i, _len, _ref; + var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, root, scroll, _i, _len, _ref; OP = postObjects[0]; Build.spoilerRange[ThreadUpdater.thread.board] = OP.custom_spoiler; @@ -7102,10 +7102,8 @@ post.kill(true); deletedFiles.push(post); } - if (ThreadUpdater.postID) { - if (ID === ThreadUpdater.postID) { - ThreadUpdater.foundPost = true; - } + if (ThreadUpdater.postID && ThreadUpdater.postID === ID) { + ThreadUpdater.foundPost = true; } } if (!count) { @@ -7130,19 +7128,22 @@ if (!posts.hasOwnProperty(key)) { continue; } + root = post.nodes.root; if (post.cb) { if (!post.cb.call(post)) { - $.add(ThreadUpdater.root, post.nodes.root); + $.add(ThreadUpdater.root, root); } } else { - $.add(ThreadUpdater.root, post.nodes.root); + $.add(ThreadUpdater.root, root); } } if (scroll) { if (Conf['Bottom Scroll']) { doc.scrollTop = d.body.clientHeight; } else { - Header.scrollToPost(nodes[0]); + if (root) { + Header.scrollToPost(root); + } } } $.queueTask(function() { diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 62efede23..c3c2726dc 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -6869,7 +6869,7 @@ value: Conf['Interval'] })); $.on(window, 'online offline', ThreadUpdater.cb.online); - $.on(d, 'QRPostSuccessful', ThreadUpdater.cb.post); + $.on(d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost); $.on(d, 'visibilitychange', ThreadUpdater.cb.visibility); return ThreadUpdater.cb.online(); }, @@ -6902,8 +6902,8 @@ } }, checkpost: function() { - if (!(g.DEAD || ThreadUpdater.foundPost || ThreadUpdater.checkPostCount >= 10)) { - return setTimeout(ThreadUpdater.update, ++ThreadUpdater.checkPostCount * 500); + if (!(g.DEAD || ThreadUpdater.foundPost || ThreadUpdater.checkPostCount >= 5)) { + return setTimeout(ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND); } ThreadUpdater.checkPostCount = 0; delete ThreadUpdater.foundPost; @@ -6981,7 +6981,7 @@ ThreadUpdater.set('status', text, klass); } if (ThreadUpdater.postID) { - ThreadUpdater.cb.checkpost(this.status); + ThreadUpdater.cb.checkpost(); } return delete ThreadUpdater.req; } @@ -7082,7 +7082,7 @@ return $.after(root, [$.tn(' '), icon]); }, parse: function(postObjects) { - var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, scroll, _i, _len, _ref; + var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, root, scroll, _i, _len, _ref; OP = postObjects[0]; Build.spoilerRange[ThreadUpdater.thread.board] = OP.custom_spoiler; @@ -7123,10 +7123,8 @@ post.kill(true); deletedFiles.push(post); } - if (ThreadUpdater.postID) { - if (ID === ThreadUpdater.postID) { - ThreadUpdater.foundPost = true; - } + if (ThreadUpdater.postID && ThreadUpdater.postID === ID) { + ThreadUpdater.foundPost = true; } } if (!count) { @@ -7151,19 +7149,22 @@ if (!posts.hasOwnProperty(key)) { continue; } + root = post.nodes.root; if (post.cb) { if (!post.cb.call(post)) { - $.add(ThreadUpdater.root, post.nodes.root); + $.add(ThreadUpdater.root, root); } } else { - $.add(ThreadUpdater.root, post.nodes.root); + $.add(ThreadUpdater.root, root); } } if (scroll) { if (Conf['Bottom Scroll']) { doc.scrollTop = d.body.clientHeight; } else { - Header.scrollToPost(nodes[0]); + if (root) { + Header.scrollToPost(root); + } } } $.queueTask(function() { diff --git a/builds/crx/script.js b/builds/crx/script.js index 171a9e174..d305ee0d7 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -6847,7 +6847,7 @@ value: Conf['Interval'] })); $.on(window, 'online offline', ThreadUpdater.cb.online); - $.on(d, 'QRPostSuccessful', ThreadUpdater.cb.post); + $.on(d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost); $.on(d, 'visibilitychange', ThreadUpdater.cb.visibility); return ThreadUpdater.cb.online(); }, @@ -6880,8 +6880,8 @@ } }, checkpost: function() { - if (!(g.DEAD || ThreadUpdater.foundPost || ThreadUpdater.checkPostCount >= 10)) { - return setTimeout(ThreadUpdater.update, ++ThreadUpdater.checkPostCount * 500); + if (!(g.DEAD || ThreadUpdater.foundPost || ThreadUpdater.checkPostCount >= 5)) { + return setTimeout(ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND); } ThreadUpdater.checkPostCount = 0; delete ThreadUpdater.foundPost; @@ -6959,7 +6959,7 @@ ThreadUpdater.set('status', text, klass); } if (ThreadUpdater.postID) { - ThreadUpdater.cb.checkpost(this.status); + ThreadUpdater.cb.checkpost(); } return delete ThreadUpdater.req; } @@ -7060,7 +7060,7 @@ return $.after(root, [$.tn(' '), icon]); }, parse: function(postObjects) { - var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, scroll, _i, _len, _ref; + var ID, OP, count, deletedFiles, deletedPosts, files, index, key, node, num, post, postObject, posts, root, scroll, _i, _len, _ref; OP = postObjects[0]; Build.spoilerRange[ThreadUpdater.thread.board] = OP.custom_spoiler; @@ -7101,10 +7101,8 @@ post.kill(true); deletedFiles.push(post); } - if (ThreadUpdater.postID) { - if (ID === ThreadUpdater.postID) { - ThreadUpdater.foundPost = true; - } + if (ThreadUpdater.postID && ThreadUpdater.postID === ID) { + ThreadUpdater.foundPost = true; } } if (!count) { @@ -7129,19 +7127,22 @@ if (!posts.hasOwnProperty(key)) { continue; } + root = post.nodes.root; if (post.cb) { if (!post.cb.call(post)) { - $.add(ThreadUpdater.root, post.nodes.root); + $.add(ThreadUpdater.root, root); } } else { - $.add(ThreadUpdater.root, post.nodes.root); + $.add(ThreadUpdater.root, root); } } if (scroll) { if (Conf['Bottom Scroll']) { d.body.scrollTop = d.body.clientHeight; } else { - Header.scrollToPost(nodes[0]); + if (root) { + Header.scrollToPost(root); + } } } $.queueTask(function() { diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee index d4beba2e6..2a9ae7d8e 100644 --- a/src/Monitoring/ThreadUpdater.coffee +++ b/src/Monitoring/ThreadUpdater.coffee @@ -68,7 +68,7 @@ ThreadUpdater = ThreadUpdater.cb.interval.call $.el 'input', value: Conf['Interval'] $.on window, 'online offline', ThreadUpdater.cb.online - $.on d, 'QRPostSuccessful', ThreadUpdater.cb.post + $.on d, 'QRPostSuccessful', ThreadUpdater.cb.checkpost $.on d, 'visibilitychange', ThreadUpdater.cb.visibility ThreadUpdater.cb.online() @@ -84,7 +84,7 @@ ThreadUpdater = if ThreadUpdater.online = navigator.onLine ThreadUpdater.outdateCount = 0 ThreadUpdater.set 'timer', ThreadUpdater.getInterval() - + ThreadUpdater.update() ThreadUpdater.set 'status', null, null @@ -97,8 +97,8 @@ ThreadUpdater = ThreadUpdater.outdateCount = 0 setTimeout ThreadUpdater.update, 1000 if ThreadUpdater.seconds > 2 checkpost: -> - unless g.DEAD or ThreadUpdater.foundPost or ThreadUpdater.checkPostCount >= 10 - return setTimeout ThreadUpdater.update, ++ThreadUpdater.checkPostCount * 500 + unless g.DEAD or ThreadUpdater.foundPost or ThreadUpdater.checkPostCount >= 5 + return setTimeout ThreadUpdater.update, ++ThreadUpdater.checkPostCount * $.SECOND ThreadUpdater.checkPostCount = 0 delete ThreadUpdater.foundPost delete ThreadUpdater.postID @@ -158,7 +158,7 @@ ThreadUpdater = ThreadUpdater.set 'status', text, klass if ThreadUpdater.postID - ThreadUpdater.cb.checkpost @status + ThreadUpdater.cb.checkpost() delete ThreadUpdater.req @@ -280,9 +280,9 @@ ThreadUpdater = else if post.file and !post.file.isDead and not files.contains ID post.kill true deletedFiles.push post - if ThreadUpdater.postID - if ID is ThreadUpdater.postID - ThreadUpdater.foundPost = true + + if ThreadUpdater.postID and ThreadUpdater.postID is ID + ThreadUpdater.foundPost = true unless count ThreadUpdater.set 'status', null, null @@ -304,17 +304,18 @@ ThreadUpdater = for key, post of posts continue unless posts.hasOwnProperty key + root = post.nodes.root if post.cb unless post.cb.call post - $.add ThreadUpdater.root, post.nodes.root + $.add ThreadUpdater.root, root else - $.add ThreadUpdater.root, post.nodes.root + $.add ThreadUpdater.root, root if scroll if Conf['Bottom Scroll'] <% if (type === 'crx') { %>d.body<% } else { %>doc<% } %>.scrollTop = d.body.clientHeight else - Header.scrollToPost nodes[0] + Header.scrollToPost root if root $.queueTask -> # Enable 4chan features.