diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a67d74a9..1fafc1154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ ### v1.13.11 +**v1.13.11.2** *(2017-08-12)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.11.2/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.11.2/builds/4chan-X-noupdate.crx)] +- Last Long Reply order will now ignore hidden and filtered replies. + **v1.13.11.1** *(2017-08-10)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.11.1/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.11.1/builds/4chan-X-noupdate.crx)] - Merge v1.13.10.6: Disable 'Redirect to HTTPS' on platforms where we use localStorage for saving settings. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index b7f78bcd3..c0f03e79e 100644 Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js index ec4fff474..a0cf94e3d 100644 --- a/builds/4chan-X-beta.meta.js +++ b/builds/4chan-X-beta.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.13.11.1 +// @version 1.13.11.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js index 74960a3ea..7f188e709 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.13.11.1 +// @version 1.13.11.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -153,7 +153,7 @@ docSet = function() { }; g = { - VERSION: '1.13.11.1', + VERSION: '1.13.11.2', NAMESPACE: '4chan X.', boards: {} }; @@ -10368,6 +10368,9 @@ Index = (function() { return Index.parsedThreads[threadID].isHidden; } }, + isHiddenReply: function(threadID, replyData) { + return PostHiding.isHidden(g.BOARD.ID, threadID, replyData.no) || Filter.isHidden(Build.parseJSON(replyData, g.BOARD.ID)); + }, buildThreads: function(threadIDs, isCatalog) { var ID, OP, err, errors, isStale, k, len1, newPosts, newThreads, obj, thread, threadData, threads; threads = []; @@ -10502,10 +10505,7 @@ Index = (function() { replies = []; for (k = 0, len1 = lastReplies.length; k < len1; k++) { data = lastReplies[k]; - if (PostHiding.isHidden(g.BOARD.ID, thread.ID, data.no)) { - continue; - } - if (Filter.isHidden(Build.parseJSON(data, g.BOARD.ID))) { + if (Index.isHiddenReply(thread.ID, data)) { continue; } reply = Build.catalogReply(thread, data); @@ -10520,12 +10520,13 @@ Index = (function() { $.add(thread.OP.nodes.post, nodes.replies); }, sort: function() { - var lastlong, liveThreadData, liveThreadIDs, threadIDs; + var lastlong, lastlongD, liveThreadData, liveThreadIDs, thread, threadIDs; liveThreadIDs = Index.liveThreadIDs, liveThreadData = Index.liveThreadData; if (!liveThreadData) { return; } Index.sortedThreadIDs = (function() { + var k, len1; switch (Index.currentSort.replace(/-rev$/, '')) { case 'lastreply': return slice.call(liveThreadData).sort(function(a, b) { @@ -10546,6 +10547,9 @@ Index = (function() { ref = thread.last_replies || []; for (i = k = ref.length - 1; k >= 0; i = k += -1) { r = ref[i]; + if (Index.isHiddenReply(thread.no, r)) { + continue; + } len = r.com ? Build.parseComment(r.com).replace(/[^a-z]/ig, '').length : 0; if (len >= Index.lastLongThresholds[+(!!r.ext)]) { return r; @@ -10557,8 +10561,13 @@ Index = (function() { return thread; } }; + lastlongD = {}; + for (k = 0, len1 = liveThreadData.length; k < len1; k++) { + thread = liveThreadData[k]; + lastlongD[thread.no] = lastlong(thread).no; + } return slice.call(liveThreadData).sort(function(a, b) { - return lastlong(b).no - lastlong(a).no; + return lastlongD[b.no] - lastlongD[a.no]; }).map(function(post) { return post.no; }); diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 116eb8d47..725ada1e0 100644 Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js index 02fed2584..522cf8d7f 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.13.11.1 +// @version 1.13.11.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -153,7 +153,7 @@ docSet = function() { }; g = { - VERSION: '1.13.11.1', + VERSION: '1.13.11.2', NAMESPACE: '4chan X.', boards: {} }; @@ -10368,6 +10368,9 @@ Index = (function() { return Index.parsedThreads[threadID].isHidden; } }, + isHiddenReply: function(threadID, replyData) { + return PostHiding.isHidden(g.BOARD.ID, threadID, replyData.no) || Filter.isHidden(Build.parseJSON(replyData, g.BOARD.ID)); + }, buildThreads: function(threadIDs, isCatalog) { var ID, OP, err, errors, isStale, k, len1, newPosts, newThreads, obj, thread, threadData, threads; threads = []; @@ -10502,10 +10505,7 @@ Index = (function() { replies = []; for (k = 0, len1 = lastReplies.length; k < len1; k++) { data = lastReplies[k]; - if (PostHiding.isHidden(g.BOARD.ID, thread.ID, data.no)) { - continue; - } - if (Filter.isHidden(Build.parseJSON(data, g.BOARD.ID))) { + if (Index.isHiddenReply(thread.ID, data)) { continue; } reply = Build.catalogReply(thread, data); @@ -10520,12 +10520,13 @@ Index = (function() { $.add(thread.OP.nodes.post, nodes.replies); }, sort: function() { - var lastlong, liveThreadData, liveThreadIDs, threadIDs; + var lastlong, lastlongD, liveThreadData, liveThreadIDs, thread, threadIDs; liveThreadIDs = Index.liveThreadIDs, liveThreadData = Index.liveThreadData; if (!liveThreadData) { return; } Index.sortedThreadIDs = (function() { + var k, len1; switch (Index.currentSort.replace(/-rev$/, '')) { case 'lastreply': return slice.call(liveThreadData).sort(function(a, b) { @@ -10546,6 +10547,9 @@ Index = (function() { ref = thread.last_replies || []; for (i = k = ref.length - 1; k >= 0; i = k += -1) { r = ref[i]; + if (Index.isHiddenReply(thread.no, r)) { + continue; + } len = r.com ? Build.parseComment(r.com).replace(/[^a-z]/ig, '').length : 0; if (len >= Index.lastLongThresholds[+(!!r.ext)]) { return r; @@ -10557,8 +10561,13 @@ Index = (function() { return thread; } }; + lastlongD = {}; + for (k = 0, len1 = liveThreadData.length; k < len1; k++) { + thread = liveThreadData[k]; + lastlongD[thread.no] = lastlong(thread).no; + } return slice.call(liveThreadData).sort(function(a, b) { - return lastlong(b).no - lastlong(a).no; + return lastlongD[b.no] - lastlongD[a.no]; }).map(function(post) { return post.no; }); diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index d8801bc9c..c28ad2b6f 100644 Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js index d6a985a44..a12bbaae4 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.13.11.1 +// @version 1.13.11.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 74ae16a76..7d3cf9179 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.13.11.1 +// @version 1.13.11.2 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -153,7 +153,7 @@ docSet = function() { }; g = { - VERSION: '1.13.11.1', + VERSION: '1.13.11.2', NAMESPACE: '4chan X.', boards: {} }; @@ -10368,6 +10368,9 @@ Index = (function() { return Index.parsedThreads[threadID].isHidden; } }, + isHiddenReply: function(threadID, replyData) { + return PostHiding.isHidden(g.BOARD.ID, threadID, replyData.no) || Filter.isHidden(Build.parseJSON(replyData, g.BOARD.ID)); + }, buildThreads: function(threadIDs, isCatalog) { var ID, OP, err, errors, isStale, k, len1, newPosts, newThreads, obj, thread, threadData, threads; threads = []; @@ -10502,10 +10505,7 @@ Index = (function() { replies = []; for (k = 0, len1 = lastReplies.length; k < len1; k++) { data = lastReplies[k]; - if (PostHiding.isHidden(g.BOARD.ID, thread.ID, data.no)) { - continue; - } - if (Filter.isHidden(Build.parseJSON(data, g.BOARD.ID))) { + if (Index.isHiddenReply(thread.ID, data)) { continue; } reply = Build.catalogReply(thread, data); @@ -10520,12 +10520,13 @@ Index = (function() { $.add(thread.OP.nodes.post, nodes.replies); }, sort: function() { - var lastlong, liveThreadData, liveThreadIDs, threadIDs; + var lastlong, lastlongD, liveThreadData, liveThreadIDs, thread, threadIDs; liveThreadIDs = Index.liveThreadIDs, liveThreadData = Index.liveThreadData; if (!liveThreadData) { return; } Index.sortedThreadIDs = (function() { + var k, len1; switch (Index.currentSort.replace(/-rev$/, '')) { case 'lastreply': return slice.call(liveThreadData).sort(function(a, b) { @@ -10546,6 +10547,9 @@ Index = (function() { ref = thread.last_replies || []; for (i = k = ref.length - 1; k >= 0; i = k += -1) { r = ref[i]; + if (Index.isHiddenReply(thread.no, r)) { + continue; + } len = r.com ? Build.parseComment(r.com).replace(/[^a-z]/ig, '').length : 0; if (len >= Index.lastLongThresholds[+(!!r.ext)]) { return r; @@ -10557,8 +10561,13 @@ Index = (function() { return thread; } }; + lastlongD = {}; + for (k = 0, len1 = liveThreadData.length; k < len1; k++) { + thread = liveThreadData[k]; + lastlongD[thread.no] = lastlong(thread).no; + } return slice.call(liveThreadData).sort(function(a, b) { - return lastlong(b).no - lastlong(a).no; + return lastlongD[b.no] - lastlongD[a.no]; }).map(function(post) { return post.no; }); diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 01a0d8d5d..e1b3a24f3 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index ac6dd0217..043967530 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.xml b/builds/updates.xml index b087722d5..618a7c76c 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/version.json b/version.json index 81d9ca99a..f774847ce 100644 --- a/version.json +++ b/version.json @@ -1,4 +1,4 @@ { - "version": "1.13.11.1", - "date": "2017-08-10T13:42:33.033Z" + "version": "1.13.11.2", + "date": "2017-08-12T17:44:29.833Z" } \ No newline at end of file