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/",