diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b61e8173..ae6d56c78 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ The links to individual versions below are to copies of the script with the upda ### v1.10.2 +**v1.10.2.5** *(2015-02-26)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.2.5/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.2.5/builds/4chan-X-noupdate.crx "Chromium version")] +- Merge v1.10.1.16: Fix thread watcher data corruption issue. + **v1.10.2.4** *(2015-02-23)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.2.4/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.2.4/builds/4chan-X-noupdate.crx "Chromium version")] - Header CSS fixes. diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index ffb2c7eba..22d595cb8 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 dfddba073..960828b27 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.10.2.4 +// @version 1.10.2.5 // @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 0795a3e46..65051720e 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X beta -// @version 1.10.2.4 +// @version 1.10.2.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -26,7 +26,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.10.2.4 +* 4chan X * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -393,7 +393,7 @@ doc = d.documentElement; g = { - VERSION: '1.10.2.4', + VERSION: '1.10.2.5', NAMESPACE: '4chan X.', NAME: '4chan X', FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions', @@ -1671,8 +1671,8 @@ var ID, board, boardID, defaultValue, k, len1, postID, thread, threadID, val; boardID = arg.boardID, threadID = arg.threadID, postID = arg.postID, defaultValue = arg.defaultValue; if (board = this.data.boards[boardID]) { - if (!threadID) { - if (postID) { + if (threadID == null) { + if (postID != null) { for (thread = k = 0, len1 = board.length; k < len1; thread = ++k) { ID = board[thread]; if (postID in thread) { @@ -1684,7 +1684,7 @@ val = board; } } else if (thread = board[threadID]) { - val = postID ? thread[postID] : thread; + val = postID != null ? thread[postID] : thread; } } return val || defaultValue; @@ -12610,8 +12610,8 @@ ref = db.data.boards[boardID]; for (threadID in ref) { data = ref[threadID]; - if (!data.isDead && !(threadID in g.BOARD.threads)) { - if (Conf['Auto Prune']) { + if (!(data != null ? data.isDead : void 0) && !(threadID in g.BOARD.threads)) { + if (Conf['Auto Prune'] || !(data && typeof data === 'object')) { ThreadWatcher.db["delete"]({ boardID: boardID, threadID: threadID @@ -12793,11 +12793,13 @@ } for (threadID in threads) { data = threads[threadID]; - all.push({ - boardID: boardID, - threadID: threadID, - data: data - }); + if (data && typeof data === 'object') { + all.push({ + boardID: boardID, + threadID: threadID, + data: data + }); + } } } return all; diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 62b89edc9..1bf55a61a 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 2e9c41390..48806e765 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.10.2.4 +// @version 1.10.2.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -25,7 +25,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.10.2.4 +* 4chan X * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -392,7 +392,7 @@ doc = d.documentElement; g = { - VERSION: '1.10.2.4', + VERSION: '1.10.2.5', NAMESPACE: '4chan X.', NAME: '4chan X', FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions', @@ -1670,8 +1670,8 @@ var ID, board, boardID, defaultValue, k, len1, postID, thread, threadID, val; boardID = arg.boardID, threadID = arg.threadID, postID = arg.postID, defaultValue = arg.defaultValue; if (board = this.data.boards[boardID]) { - if (!threadID) { - if (postID) { + if (threadID == null) { + if (postID != null) { for (thread = k = 0, len1 = board.length; k < len1; thread = ++k) { ID = board[thread]; if (postID in thread) { @@ -1683,7 +1683,7 @@ val = board; } } else if (thread = board[threadID]) { - val = postID ? thread[postID] : thread; + val = postID != null ? thread[postID] : thread; } } return val || defaultValue; @@ -12609,8 +12609,8 @@ ref = db.data.boards[boardID]; for (threadID in ref) { data = ref[threadID]; - if (!data.isDead && !(threadID in g.BOARD.threads)) { - if (Conf['Auto Prune']) { + if (!(data != null ? data.isDead : void 0) && !(threadID in g.BOARD.threads)) { + if (Conf['Auto Prune'] || !(data && typeof data === 'object')) { ThreadWatcher.db["delete"]({ boardID: boardID, threadID: threadID @@ -12792,11 +12792,13 @@ } for (threadID in threads) { data = threads[threadID]; - all.push({ - boardID: boardID, - threadID: threadID, - data: data - }); + if (data && typeof data === 'object') { + all.push({ + boardID: boardID, + threadID: threadID, + data: data + }); + } } } return all; diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 847bc08a5..d74876e43 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 51b4e504a..853df4d33 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.10.2.4 +// @version 1.10.2.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 85c948a11..08cc24184 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.10.2.4 +// @version 1.10.2.5 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -26,7 +26,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.10.2.4 +* 4chan X * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -393,7 +393,7 @@ doc = d.documentElement; g = { - VERSION: '1.10.2.4', + VERSION: '1.10.2.5', NAMESPACE: '4chan X.', NAME: '4chan X', FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions', @@ -1671,8 +1671,8 @@ var ID, board, boardID, defaultValue, k, len1, postID, thread, threadID, val; boardID = arg.boardID, threadID = arg.threadID, postID = arg.postID, defaultValue = arg.defaultValue; if (board = this.data.boards[boardID]) { - if (!threadID) { - if (postID) { + if (threadID == null) { + if (postID != null) { for (thread = k = 0, len1 = board.length; k < len1; thread = ++k) { ID = board[thread]; if (postID in thread) { @@ -1684,7 +1684,7 @@ val = board; } } else if (thread = board[threadID]) { - val = postID ? thread[postID] : thread; + val = postID != null ? thread[postID] : thread; } } return val || defaultValue; @@ -12610,8 +12610,8 @@ ref = db.data.boards[boardID]; for (threadID in ref) { data = ref[threadID]; - if (!data.isDead && !(threadID in g.BOARD.threads)) { - if (Conf['Auto Prune']) { + if (!(data != null ? data.isDead : void 0) && !(threadID in g.BOARD.threads)) { + if (Conf['Auto Prune'] || !(data && typeof data === 'object')) { ThreadWatcher.db["delete"]({ boardID: boardID, threadID: threadID @@ -12793,11 +12793,13 @@ } for (threadID in threads) { data = threads[threadID]; - all.push({ - boardID: boardID, - threadID: threadID, - data: data - }); + if (data && typeof data === 'object') { + all.push({ + boardID: boardID, + threadID: threadID, + data: data + }); + } } } return all; diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index 6f76db8b7..23154d6ec 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 bf71d4e5d..367ce5a4c 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 bc1384481..9db8e04f3 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/package.json b/package.json index 4c9dd8097..33a2c89cf 100755 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Cross-browser userscript for maximum lurking on 4chan.", "meta": { "name": "4chan X", - "version": "1.10.2.4", + "version": "1.10.2.5", "repo": "https://github.com/ccd0/4chan-x/", "page": "https://github.com/ccd0/4chan-x", "downloads": "https://ccd0.github.io/4chan-x/builds/",