diff --git a/CHANGELOG.md b/CHANGELOG.md
index d088b348e..710050532 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
### v1.13.10
+**v1.13.10.3** *(2017-07-26)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.10.3/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.10.3/builds/4chan-X-noupdate.crx)]
+- Fix double sticky icon bug on /f/.
+
**v1.13.10.2** *(2017-07-20)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.10.2/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.10.2/builds/4chan-X-noupdate.crx)]
- Add an API for adding captchas to 4chan X's cache (`SaveCaptcha` event).
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index fccb5b5b8..9f54d949d 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 4365e78f9..4a530e778 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.10.2
+// @version 1.13.10.3
// @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 a8bf26268..0bec94144 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.10.2
+// @version 1.13.10.3
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -153,7 +153,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.10.2',
+ VERSION: '1.13.10.3',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -6169,7 +6169,7 @@ Post = (function() {
};
function Post(root, thread, board) {
- var clone, j, len, ref, ref1, ref10, ref11, ref12, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9;
+ var clone, icon, j, k, len, len1, ref, ref1, ref10, ref11, ref12, ref13, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, type;
this.thread = thread;
this.board = board;
this.ID = +root.id.slice(2);
@@ -6181,6 +6181,15 @@ Post = (function() {
this.nodes = this.parseNodes(root);
if (!(this.isReply = $.hasClass(this.nodes.post, 'reply'))) {
this.thread.OP = this;
+ if (this.boardID === 'f') {
+ ref = ['Sticky', 'Closed'];
+ for (j = 0, len = ref.length; j < len; j++) {
+ type = ref[j];
+ if ((icon = $("img[alt=" + type + "]", this.nodes.info))) {
+ $.addClass(icon, (type.toLowerCase()) + "Icon", 'retina');
+ }
+ }
+ }
this.thread.isArchived = !!$('.archivedIcon', this.nodes.info);
this.thread.isSticky = !!$('.stickyIcon', this.nodes.info);
this.thread.isClosed = this.thread.isArchived || !!$('.closedIcon', this.nodes.info);
@@ -6189,15 +6198,15 @@ Post = (function() {
}
}
this.info = {
- subject: ((ref = this.nodes.subject) != null ? ref.textContent : void 0) || void 0,
- name: (ref1 = this.nodes.name) != null ? ref1.textContent : void 0,
- tripcode: (ref2 = this.nodes.tripcode) != null ? ref2.textContent : void 0,
- uniqueID: (ref3 = this.nodes.uniqueID) != null ? ref3.textContent : void 0,
- capcode: (ref4 = this.nodes.capcode) != null ? ref4.textContent.replace('## ', '') : void 0,
- pass: (ref5 = this.nodes.pass) != null ? ref5.title.match(/\d*$/)[0] : void 0,
- flagCode: (ref6 = this.nodes.flag) != null ? (ref7 = ref6.className.match(/flag-(\w+)/)) != null ? ref7[1].toUpperCase() : void 0 : void 0,
- flagCodeTroll: (ref8 = this.nodes.flag) != null ? (ref9 = ref8.src) != null ? (ref10 = ref9.match(/(\w+)\.gif$/)) != null ? ref10[1].toUpperCase() : void 0 : void 0 : void 0,
- flag: (ref11 = this.nodes.flag) != null ? ref11.title : void 0,
+ subject: ((ref1 = this.nodes.subject) != null ? ref1.textContent : void 0) || void 0,
+ name: (ref2 = this.nodes.name) != null ? ref2.textContent : void 0,
+ tripcode: (ref3 = this.nodes.tripcode) != null ? ref3.textContent : void 0,
+ uniqueID: (ref4 = this.nodes.uniqueID) != null ? ref4.textContent : void 0,
+ capcode: (ref5 = this.nodes.capcode) != null ? ref5.textContent.replace('## ', '') : void 0,
+ pass: (ref6 = this.nodes.pass) != null ? ref6.title.match(/\d*$/)[0] : void 0,
+ flagCode: (ref7 = this.nodes.flag) != null ? (ref8 = ref7.className.match(/flag-(\w+)/)) != null ? ref8[1].toUpperCase() : void 0 : void 0,
+ flagCodeTroll: (ref9 = this.nodes.flag) != null ? (ref10 = ref9.src) != null ? (ref11 = ref10.match(/(\w+)\.gif$/)) != null ? ref11[1].toUpperCase() : void 0 : void 0 : void 0,
+ flag: (ref12 = this.nodes.flag) != null ? ref12.title : void 0,
date: this.nodes.date ? new Date(this.nodes.date.dataset.utc * 1000) : void 0
};
if (Conf['Anonymize']) {
@@ -6220,9 +6229,9 @@ Post = (function() {
if (g.posts[this.fullID]) {
this.isRebuilt = true;
this.clones = g.posts[this.fullID].clones;
- ref12 = this.clones;
- for (j = 0, len = ref12.length; j < len; j++) {
- clone = ref12[j];
+ ref13 = this.clones;
+ for (k = 0, len1 = ref13.length; k < len1; k++) {
+ clone = ref13[k];
clone.origin = this;
}
}
@@ -6933,6 +6942,9 @@ Thread = (function() {
title: type,
className: typeLC + "Icon retina"
});
+ if (g.BOARD.ID === 'f') {
+ icon.style.cssText = 'height: 18px; width: 18px;';
+ }
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || this.OP.nodes.quote;
$.after(root, [$.tn(' '), icon]);
if (!this.catalogView) {
@@ -8516,7 +8528,7 @@ Build = (function() {
postLink = Build.postURL(boardID, threadID, ID);
quoteLink = Build.sameThread(boardID, threadID) ? "javascript:quote('" + (+ID) + "');" : "/" + boardID + "/thread/" + threadID + "#q" + ID;
postInfo = {
- innerHTML: "
"
+ innerHTML: ""
};
/* File Info */
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index 0f370fda9..8ff97dde6 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 82573b9b6..81943e209 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.10.2
+// @version 1.13.10.3
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -153,7 +153,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.10.2',
+ VERSION: '1.13.10.3',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -6169,7 +6169,7 @@ Post = (function() {
};
function Post(root, thread, board) {
- var clone, j, len, ref, ref1, ref10, ref11, ref12, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9;
+ var clone, icon, j, k, len, len1, ref, ref1, ref10, ref11, ref12, ref13, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, type;
this.thread = thread;
this.board = board;
this.ID = +root.id.slice(2);
@@ -6181,6 +6181,15 @@ Post = (function() {
this.nodes = this.parseNodes(root);
if (!(this.isReply = $.hasClass(this.nodes.post, 'reply'))) {
this.thread.OP = this;
+ if (this.boardID === 'f') {
+ ref = ['Sticky', 'Closed'];
+ for (j = 0, len = ref.length; j < len; j++) {
+ type = ref[j];
+ if ((icon = $("img[alt=" + type + "]", this.nodes.info))) {
+ $.addClass(icon, (type.toLowerCase()) + "Icon", 'retina');
+ }
+ }
+ }
this.thread.isArchived = !!$('.archivedIcon', this.nodes.info);
this.thread.isSticky = !!$('.stickyIcon', this.nodes.info);
this.thread.isClosed = this.thread.isArchived || !!$('.closedIcon', this.nodes.info);
@@ -6189,15 +6198,15 @@ Post = (function() {
}
}
this.info = {
- subject: ((ref = this.nodes.subject) != null ? ref.textContent : void 0) || void 0,
- name: (ref1 = this.nodes.name) != null ? ref1.textContent : void 0,
- tripcode: (ref2 = this.nodes.tripcode) != null ? ref2.textContent : void 0,
- uniqueID: (ref3 = this.nodes.uniqueID) != null ? ref3.textContent : void 0,
- capcode: (ref4 = this.nodes.capcode) != null ? ref4.textContent.replace('## ', '') : void 0,
- pass: (ref5 = this.nodes.pass) != null ? ref5.title.match(/\d*$/)[0] : void 0,
- flagCode: (ref6 = this.nodes.flag) != null ? (ref7 = ref6.className.match(/flag-(\w+)/)) != null ? ref7[1].toUpperCase() : void 0 : void 0,
- flagCodeTroll: (ref8 = this.nodes.flag) != null ? (ref9 = ref8.src) != null ? (ref10 = ref9.match(/(\w+)\.gif$/)) != null ? ref10[1].toUpperCase() : void 0 : void 0 : void 0,
- flag: (ref11 = this.nodes.flag) != null ? ref11.title : void 0,
+ subject: ((ref1 = this.nodes.subject) != null ? ref1.textContent : void 0) || void 0,
+ name: (ref2 = this.nodes.name) != null ? ref2.textContent : void 0,
+ tripcode: (ref3 = this.nodes.tripcode) != null ? ref3.textContent : void 0,
+ uniqueID: (ref4 = this.nodes.uniqueID) != null ? ref4.textContent : void 0,
+ capcode: (ref5 = this.nodes.capcode) != null ? ref5.textContent.replace('## ', '') : void 0,
+ pass: (ref6 = this.nodes.pass) != null ? ref6.title.match(/\d*$/)[0] : void 0,
+ flagCode: (ref7 = this.nodes.flag) != null ? (ref8 = ref7.className.match(/flag-(\w+)/)) != null ? ref8[1].toUpperCase() : void 0 : void 0,
+ flagCodeTroll: (ref9 = this.nodes.flag) != null ? (ref10 = ref9.src) != null ? (ref11 = ref10.match(/(\w+)\.gif$/)) != null ? ref11[1].toUpperCase() : void 0 : void 0 : void 0,
+ flag: (ref12 = this.nodes.flag) != null ? ref12.title : void 0,
date: this.nodes.date ? new Date(this.nodes.date.dataset.utc * 1000) : void 0
};
if (Conf['Anonymize']) {
@@ -6220,9 +6229,9 @@ Post = (function() {
if (g.posts[this.fullID]) {
this.isRebuilt = true;
this.clones = g.posts[this.fullID].clones;
- ref12 = this.clones;
- for (j = 0, len = ref12.length; j < len; j++) {
- clone = ref12[j];
+ ref13 = this.clones;
+ for (k = 0, len1 = ref13.length; k < len1; k++) {
+ clone = ref13[k];
clone.origin = this;
}
}
@@ -6933,6 +6942,9 @@ Thread = (function() {
title: type,
className: typeLC + "Icon retina"
});
+ if (g.BOARD.ID === 'f') {
+ icon.style.cssText = 'height: 18px; width: 18px;';
+ }
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || this.OP.nodes.quote;
$.after(root, [$.tn(' '), icon]);
if (!this.catalogView) {
@@ -8516,7 +8528,7 @@ Build = (function() {
postLink = Build.postURL(boardID, threadID, ID);
quoteLink = Build.sameThread(boardID, threadID) ? "javascript:quote('" + (+ID) + "');" : "/" + boardID + "/thread/" + threadID + "#q" + ID;
postInfo = {
- innerHTML: ""
+ innerHTML: ""
};
/* File Info */
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index de1a23d06..5923e3a9c 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 a2d70f3d2..2ad1de03b 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.10.2
+// @version 1.13.10.3
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index 0a900b716..a742ecb49 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.10.2
+// @version 1.13.10.3
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -153,7 +153,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.10.2',
+ VERSION: '1.13.10.3',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -6169,7 +6169,7 @@ Post = (function() {
};
function Post(root, thread, board) {
- var clone, j, len, ref, ref1, ref10, ref11, ref12, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9;
+ var clone, icon, j, k, len, len1, ref, ref1, ref10, ref11, ref12, ref13, ref2, ref3, ref4, ref5, ref6, ref7, ref8, ref9, type;
this.thread = thread;
this.board = board;
this.ID = +root.id.slice(2);
@@ -6181,6 +6181,15 @@ Post = (function() {
this.nodes = this.parseNodes(root);
if (!(this.isReply = $.hasClass(this.nodes.post, 'reply'))) {
this.thread.OP = this;
+ if (this.boardID === 'f') {
+ ref = ['Sticky', 'Closed'];
+ for (j = 0, len = ref.length; j < len; j++) {
+ type = ref[j];
+ if ((icon = $("img[alt=" + type + "]", this.nodes.info))) {
+ $.addClass(icon, (type.toLowerCase()) + "Icon", 'retina');
+ }
+ }
+ }
this.thread.isArchived = !!$('.archivedIcon', this.nodes.info);
this.thread.isSticky = !!$('.stickyIcon', this.nodes.info);
this.thread.isClosed = this.thread.isArchived || !!$('.closedIcon', this.nodes.info);
@@ -6189,15 +6198,15 @@ Post = (function() {
}
}
this.info = {
- subject: ((ref = this.nodes.subject) != null ? ref.textContent : void 0) || void 0,
- name: (ref1 = this.nodes.name) != null ? ref1.textContent : void 0,
- tripcode: (ref2 = this.nodes.tripcode) != null ? ref2.textContent : void 0,
- uniqueID: (ref3 = this.nodes.uniqueID) != null ? ref3.textContent : void 0,
- capcode: (ref4 = this.nodes.capcode) != null ? ref4.textContent.replace('## ', '') : void 0,
- pass: (ref5 = this.nodes.pass) != null ? ref5.title.match(/\d*$/)[0] : void 0,
- flagCode: (ref6 = this.nodes.flag) != null ? (ref7 = ref6.className.match(/flag-(\w+)/)) != null ? ref7[1].toUpperCase() : void 0 : void 0,
- flagCodeTroll: (ref8 = this.nodes.flag) != null ? (ref9 = ref8.src) != null ? (ref10 = ref9.match(/(\w+)\.gif$/)) != null ? ref10[1].toUpperCase() : void 0 : void 0 : void 0,
- flag: (ref11 = this.nodes.flag) != null ? ref11.title : void 0,
+ subject: ((ref1 = this.nodes.subject) != null ? ref1.textContent : void 0) || void 0,
+ name: (ref2 = this.nodes.name) != null ? ref2.textContent : void 0,
+ tripcode: (ref3 = this.nodes.tripcode) != null ? ref3.textContent : void 0,
+ uniqueID: (ref4 = this.nodes.uniqueID) != null ? ref4.textContent : void 0,
+ capcode: (ref5 = this.nodes.capcode) != null ? ref5.textContent.replace('## ', '') : void 0,
+ pass: (ref6 = this.nodes.pass) != null ? ref6.title.match(/\d*$/)[0] : void 0,
+ flagCode: (ref7 = this.nodes.flag) != null ? (ref8 = ref7.className.match(/flag-(\w+)/)) != null ? ref8[1].toUpperCase() : void 0 : void 0,
+ flagCodeTroll: (ref9 = this.nodes.flag) != null ? (ref10 = ref9.src) != null ? (ref11 = ref10.match(/(\w+)\.gif$/)) != null ? ref11[1].toUpperCase() : void 0 : void 0 : void 0,
+ flag: (ref12 = this.nodes.flag) != null ? ref12.title : void 0,
date: this.nodes.date ? new Date(this.nodes.date.dataset.utc * 1000) : void 0
};
if (Conf['Anonymize']) {
@@ -6220,9 +6229,9 @@ Post = (function() {
if (g.posts[this.fullID]) {
this.isRebuilt = true;
this.clones = g.posts[this.fullID].clones;
- ref12 = this.clones;
- for (j = 0, len = ref12.length; j < len; j++) {
- clone = ref12[j];
+ ref13 = this.clones;
+ for (k = 0, len1 = ref13.length; k < len1; k++) {
+ clone = ref13[k];
clone.origin = this;
}
}
@@ -6933,6 +6942,9 @@ Thread = (function() {
title: type,
className: typeLC + "Icon retina"
});
+ if (g.BOARD.ID === 'f') {
+ icon.style.cssText = 'height: 18px; width: 18px;';
+ }
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || this.OP.nodes.quote;
$.after(root, [$.tn(' '), icon]);
if (!this.catalogView) {
@@ -8516,7 +8528,7 @@ Build = (function() {
postLink = Build.postURL(boardID, threadID, ID);
quoteLink = Build.sameThread(boardID, threadID) ? "javascript:quote('" + (+ID) + "');" : "/" + boardID + "/thread/" + threadID + "#q" + ID;
postInfo = {
- innerHTML: ""
+ innerHTML: ""
};
/* File Info */
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index 2da95667f..ffb3b7d21 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 ef474216e..3891d78ca 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 619277f94..d6d4af996 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/version.json b/version.json
index a09015822..57bb50bd6 100644
--- a/version.json
+++ b/version.json
@@ -1,4 +1,4 @@
{
- "version": "1.13.10.2",
- "date": "2017-07-20T17:47:35.642Z"
+ "version": "1.13.10.3",
+ "date": "2017-07-26T06:11:58.491Z"
}
\ No newline at end of file