Release 4chan X v1.11.27.0.
This commit is contained in:
parent
7c893c4734
commit
9017963da0
@ -2,6 +2,14 @@
|
||||
|
||||
Sometimes the changelog has notes (not comprehensive) acknowledging people's work. This does not mean the changes are their fault, only that their code was used. All changes to the script are chosen by and the fault of the maintainer (ccd0).
|
||||
|
||||
### v1.11.27
|
||||
|
||||
**v1.11.27.0** *(2016-02-27)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.27.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.27.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
- Based on v1.11.26.5.
|
||||
- (paradox460) Multiline dumplist and related improvements.
|
||||
- (vampiricwulf) Show Purge Position in place of Page Count on /f/.
|
||||
- Add `Beep Quoting You` to updater options (default: off). Beeps when someone replies to you in another tab.
|
||||
|
||||
### v1.11.26
|
||||
|
||||
**v1.11.26.5** *(2016-02-25)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.26.5/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.26.5/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.26.5
|
||||
// @version 1.11.27.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.26.5
|
||||
// @version 1.11.27.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -42,7 +42,7 @@
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
*
|
||||
* Appchan X Copyright © 2013-2015 Zixaphir <zixaphirmoxphar@gmail.com>
|
||||
* Appchan X Copyright © 2013-2016 Zixaphir <zixaphirmoxphar@gmail.com>
|
||||
* http://zixaphir.github.io/appchan-x/
|
||||
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
||||
* https://github.com/aeosynth/4chan-x
|
||||
@ -418,6 +418,7 @@
|
||||
updater: {
|
||||
checkbox: {
|
||||
'Beep': [false, 'Beep on new post to completely read thread.'],
|
||||
'Beep Quoting You': [false, 'Beep on new post quoting you.'],
|
||||
'Auto Scroll': [false, 'Scroll updated posts into view. Only enabled at bottom of page.'],
|
||||
'Bottom Scroll': [false, 'Always scroll to the bottom, not the first new post. Useful for event threads.'],
|
||||
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
||||
@ -439,7 +440,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.26.5',
|
||||
VERSION: '1.11.27.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -10065,7 +10066,9 @@
|
||||
};
|
||||
|
||||
_Class.prototype.dragStart = function(e) {
|
||||
e.dataTransfer.setDragImage(this, e.layerX, e.layerY);
|
||||
var left, ref, top;
|
||||
ref = this.getBoundingClientRect(), left = ref.left, top = ref.top;
|
||||
e.dataTransfer.setDragImage(this, e.clientX - left, e.clientY - top);
|
||||
return $.addClass(this, 'drag');
|
||||
};
|
||||
|
||||
@ -13161,14 +13164,14 @@
|
||||
return;
|
||||
}
|
||||
statsHTML = {
|
||||
innerHTML: "<span id=\"post-count\">?</span> / <span id=\"file-count\">?</span>" + (Conf["IP Count in Stats"] ? " / <span id=\"ip-count\">?</span>" : "") + (Conf["Page Count in Stats"] && g.BOARD.ID !== "f" ? " / <span id=\"page-count\">?</span>" : "")
|
||||
innerHTML: "<span id=\"post-count\">?</span> / <span id=\"file-count\">?</span>" + (Conf["IP Count in Stats"] ? " / <span id=\"ip-count\">?</span>" : "") + (Conf["Page Count in Stats"] ? " / <span id=\"page-count\">?</span>" : "")
|
||||
};
|
||||
statsTitle = 'Posts / Files';
|
||||
if (Conf['IP Count in Stats']) {
|
||||
statsTitle += ' / IPs';
|
||||
}
|
||||
if (Conf['Page Count in Stats'] && g.BOARD.ID !== 'f') {
|
||||
statsTitle += ' / Page';
|
||||
if (Conf['Page Count in Stats']) {
|
||||
statsTitle += (g.BOARD.ID === 'f' ? ' / Purge Position' : ' / Page');
|
||||
}
|
||||
if (Conf['Updater and Stats in Header']) {
|
||||
this.dialog = sc = $.el('span', {
|
||||
@ -13231,7 +13234,7 @@
|
||||
if (newPosts.length) {
|
||||
ThreadStats.lastPost = g.posts[newPosts[newPosts.length - 1]].info.date;
|
||||
}
|
||||
if (((ref1 = ThreadStats.pageCountEl) != null ? ref1.textContent : void 0) !== '1') {
|
||||
if (g.BOARD.ID !== 'f' && ((ref1 = ThreadStats.pageCountEl) != null ? ref1.textContent : void 0) !== '1') {
|
||||
return ThreadStats.fetchPage();
|
||||
}
|
||||
},
|
||||
@ -13264,22 +13267,34 @@
|
||||
});
|
||||
},
|
||||
onThreadsLoad: function() {
|
||||
var k, len1, len2, page, q, ref, ref1, thread;
|
||||
var k, len1, len2, len3, page, purgePos, q, ref, ref1, ref2, thread, u;
|
||||
if (this.status === 200) {
|
||||
ref = this.response;
|
||||
for (k = 0, len1 = ref.length; k < len1; k++) {
|
||||
page = ref[k];
|
||||
ref1 = page.threads;
|
||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||
thread = ref1[q];
|
||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
||||
continue;
|
||||
if (g.BOARD.ID === 'f') {
|
||||
purgePos = 1;
|
||||
ref1 = page.threads;
|
||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||
thread = ref1[q];
|
||||
if (thread.no < ThreadStats.thread.ID) {
|
||||
purgePos++;
|
||||
}
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = purgePos;
|
||||
} else {
|
||||
ref2 = page.threads;
|
||||
for (u = 0, len3 = ref2.length; u < len3; u++) {
|
||||
thread = ref2[u];
|
||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
||||
continue;
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = page.page;
|
||||
(page.page === this.response.length ? $.addClass : $.rmClass)(ThreadStats.pageCountEl, 'warning');
|
||||
ThreadStats.lastPageUpdate = new Date(thread.last_modified * $.SECOND);
|
||||
ThreadStats.retry();
|
||||
return;
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = page.page;
|
||||
(page.page === this.response.length ? $.addClass : $.rmClass)(ThreadStats.pageCountEl, 'warning');
|
||||
ThreadStats.lastPageUpdate = new Date(thread.last_modified * $.SECOND);
|
||||
ThreadStats.retry();
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (this.status === 304) {
|
||||
@ -13288,7 +13303,7 @@
|
||||
},
|
||||
retry: function() {
|
||||
var ref;
|
||||
if (ThreadStats.lastPost > ThreadStats.lastPageUpdate && ((ref = ThreadStats.pageCountEl) != null ? ref.textContent : void 0) !== '1') {
|
||||
if (g.BOARD.ID !== 'f' && ThreadStats.lastPost > ThreadStats.lastPageUpdate && ((ref = ThreadStats.pageCountEl) != null ? ref.textContent : void 0) !== '1') {
|
||||
clearTimeout(ThreadStats.timeout);
|
||||
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
||||
}
|
||||
@ -13301,6 +13316,9 @@
|
||||
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
||||
return;
|
||||
}
|
||||
this.audio = $.el('audio', {
|
||||
src: ThreadUpdater.beep
|
||||
});
|
||||
if (Conf['Updater and Stats in Header']) {
|
||||
this.dialog = sc = $.el('span', {
|
||||
id: 'updater'
|
||||
@ -13403,6 +13421,15 @@
|
||||
cc-by-nc-3.0
|
||||
*/
|
||||
beep: 'data:audio/wav;base64,UklGRjQDAABXQVZFZm10IBAAAAABAAEAgD4AAIA+AAABAAgAc21wbDwAAABBAAADAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYXRhzAIAAGMms8em0tleMV4zIpLVo8nhfSlcPR102Ki+5JspVEkdVtKzs+K1NEhUIT7DwKrcy0g6WygsrM2k1NpiLl0zIY/WpMrjgCdbPhxw2Kq+5Z4qUkkdU9K1s+K5NkVTITzBwqnczko3WikrqM+l1NxlLF0zIIvXpsnjgydZPhxs2ay95aIrUEkdUdC3suK8N0NUIjq+xKrcz002WioppdGm091pK1w0IIjYp8jkhydXPxxq2K295aUrTkoeTs65suK+OUFUIzi7xqrb0VA0WSoootKm0t5tKlo1H4TYqMfkiydWQBxm16+85actTEseS8y7seHAPD9TIza5yKra01QyWSson9On0d5wKVk2H4DYqcfkjidUQB1j1rG75KsvSkseScu8seDCPz1TJDW2yara1FYxWSwnm9Sn0N9zKVg2H33ZqsXkkihSQR1g1bK65K0wSEsfR8i+seDEQTxUJTOzy6rY1VowWC0mmNWoz993KVc3H3rYq8TklSlRQh1d1LS647AyR0wgRMbAsN/GRDpTJTKwzKrX1l4vVy4lldWpzt97KVY4IXbUr8LZljVPRCxhw7W3z6ZISkw1VK+4sMWvXEhSPk6buay9sm5JVkZNiLWqtrJ+TldNTnquqbCwilZXU1BwpKirrpNgWFhTaZmnpquZbFlbVmWOpaOonHZcXlljhaGhpZ1+YWBdYn2cn6GdhmdhYGN3lp2enIttY2Jjco+bnJuOdGZlZXCImJqakHpoZ2Zug5WYmZJ/bGlobX6RlpeSg3BqaW16jZSVkoZ0bGtteImSk5KIeG5tbnaFkJKRinxxbm91gY2QkIt/c3BwdH6Kj4+LgnZxcXR8iI2OjIR5c3J0e4WLjYuFe3VzdHmCioyLhn52dHR5gIiKioeAeHV1eH+GiYqHgXp2dnh9hIiJh4J8eHd4fIKHiIeDfXl4eHyBhoeHhH96eHmA',
|
||||
playBeep: function() {
|
||||
var audio;
|
||||
audio = ThreadUpdater.audio;
|
||||
if (audio.paused) {
|
||||
return audio.play();
|
||||
} else {
|
||||
return $.one(audio, 'ended', ThreadUpdater.playBeep);
|
||||
}
|
||||
},
|
||||
cb: {
|
||||
checkpost: function(e) {
|
||||
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
||||
@ -13585,7 +13612,7 @@
|
||||
return new Notice('info', "The thread is " + change + ".", 30);
|
||||
},
|
||||
parse: function(req) {
|
||||
var ID, OP, board, deletedFiles, deletedPosts, files, firstPost, index, ipCountEl, k, lastPost, len1, len2, len3, len4, newPosts, node, post, postObject, postObjects, posts, q, ref, ref1, ref2, ref3, ref4, ref5, scroll, thread, u, unreadCount, v;
|
||||
var ID, OP, board, deletedFiles, deletedPosts, files, firstPost, index, ipCountEl, k, lastPost, len1, len2, len3, len4, newPosts, node, post, postObject, postObjects, posts, q, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, scroll, thread, u, unreadCount, unreadQYCount, v;
|
||||
postObjects = req.response.posts;
|
||||
OP = postObjects[0];
|
||||
thread = ThreadUpdater.thread;
|
||||
@ -13662,14 +13689,17 @@
|
||||
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
||||
ThreadUpdater.outdateCount = 0;
|
||||
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
||||
unreadQYCount = (ref5 = Unread.postsQuotingYou) != null ? ref5.size : void 0;
|
||||
Main.callbackNodes(Post, posts);
|
||||
if (Conf['Beep'] && d.hidden && unreadCount === 0 && ((ref5 = Unread.posts) != null ? ref5.size : void 0)) {
|
||||
if (!ThreadUpdater.audio) {
|
||||
ThreadUpdater.audio = $.el('audio', {
|
||||
src: ThreadUpdater.beep
|
||||
});
|
||||
if (d.hidden || !d.hasFocus()) {
|
||||
if (Conf['Beep Quoting You'] && ((ref6 = Unread.postsQuotingYou) != null ? ref6.size : void 0) > unreadQYCount) {
|
||||
ThreadUpdater.playBeep();
|
||||
if (Conf['Beep']) {
|
||||
ThreadUpdater.playBeep();
|
||||
}
|
||||
} else if (Conf['Beep'] && ((ref7 = Unread.posts) != null ? ref7.size : void 0) > 0 && unreadCount === 0) {
|
||||
ThreadUpdater.playBeep();
|
||||
}
|
||||
ThreadUpdater.audio.play();
|
||||
}
|
||||
scroll = Conf['Auto Scroll'] && ThreadUpdater.scrollBG() && ThreadUpdater.root.getBoundingClientRect().bottom - doc.clientHeight < 25;
|
||||
firstPost = null;
|
||||
@ -18958,7 +18988,7 @@
|
||||
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
||||
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
||||
"}\n" +
|
||||
"#qr, \n" +
|
||||
"#qr,\n" +
|
||||
"#thread-watcher {\n" +
|
||||
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
||||
"}\n" +
|
||||
@ -20508,11 +20538,17 @@
|
||||
"}\n" +
|
||||
"#dump-list {\n" +
|
||||
" overflow-x: auto;\n" +
|
||||
" overflow-y: hidden;\n" +
|
||||
" overflow-y: auto;\n" +
|
||||
" white-space: nowrap;\n" +
|
||||
" width: 248px;\n" +
|
||||
" max-height: 248px;\n" +
|
||||
" min-height: 90px;\n" +
|
||||
" max-width: 100%;\n" +
|
||||
" min-width: 100%;\n" +
|
||||
" display: -webkit-flex;\n" +
|
||||
" display: flex;\n" +
|
||||
" -webkit-flex-wrap: wrap;\n" +
|
||||
" flex-wrap: wrap;\n" +
|
||||
"}\n" +
|
||||
"#dump-list:hover {\n" +
|
||||
" overflow-x: auto;\n" +
|
||||
@ -20529,9 +20565,12 @@
|
||||
" overflow: hidden;\n" +
|
||||
" position: relative;\n" +
|
||||
" text-shadow: 0 0 2px #000;\n" +
|
||||
" -moz-transition: opacity .25s ease-in-out;\n" +
|
||||
" -webkit-transition: opacity .25s ease-in-out, -webkit-transform .25s ease-in-out;\n" +
|
||||
" transition: opacity .25s ease-in-out, transform .25s ease-in-out, -webkit-transform .25s ease-in-out;\n" +
|
||||
" vertical-align: top;\n" +
|
||||
" background-size: cover;\n" +
|
||||
" -webkit-flex: none;\n" +
|
||||
" flex: none;\n" +
|
||||
"}\n" +
|
||||
".qr-preview:hover,\n" +
|
||||
".qr-preview:focus {\n" +
|
||||
@ -20550,9 +20589,15 @@
|
||||
"}\n" +
|
||||
".qr-preview.drag {\n" +
|
||||
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
||||
" -webkit-transform: scale(.8);\n" +
|
||||
" transform: scale(.8);\n" +
|
||||
"}\n" +
|
||||
".qr-preview.over {\n" +
|
||||
" border-color: #fff;\n" +
|
||||
" -webkit-transform: scale(1.1);\n" +
|
||||
" transform: scale(1.1);\n" +
|
||||
" opacity: 0.9;\n" +
|
||||
" z-index: 10;\n" +
|
||||
"}\n" +
|
||||
".qr-preview > span {\n" +
|
||||
" color: #fff;\n" +
|
||||
@ -20588,7 +20633,7 @@
|
||||
" cursor: pointer;\n" +
|
||||
" font-size: 2em;\n" +
|
||||
" position: absolute;\n" +
|
||||
" top: 50%;\n" +
|
||||
" bottom: 20px;\n" +
|
||||
" right: 10px;\n" +
|
||||
" -moz-transform: translateY(-50%);\n" +
|
||||
"}\n" +
|
||||
@ -20656,7 +20701,7 @@
|
||||
".left>.entry.has-submenu {\n" +
|
||||
" padding-right: 17px !important;\n" +
|
||||
"}\n" +
|
||||
".entry input[type=\"checkbox\"], \n" +
|
||||
".entry input[type=\"checkbox\"],\n" +
|
||||
".entry input[type=\"radio\"] {\n" +
|
||||
" margin: 0px;\n" +
|
||||
" position: relative;\n" +
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.26.5
|
||||
// @version 1.11.27.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -42,7 +42,7 @@
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
*
|
||||
* Appchan X Copyright © 2013-2015 Zixaphir <zixaphirmoxphar@gmail.com>
|
||||
* Appchan X Copyright © 2013-2016 Zixaphir <zixaphirmoxphar@gmail.com>
|
||||
* http://zixaphir.github.io/appchan-x/
|
||||
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
||||
* https://github.com/aeosynth/4chan-x
|
||||
@ -418,6 +418,7 @@
|
||||
updater: {
|
||||
checkbox: {
|
||||
'Beep': [false, 'Beep on new post to completely read thread.'],
|
||||
'Beep Quoting You': [false, 'Beep on new post quoting you.'],
|
||||
'Auto Scroll': [false, 'Scroll updated posts into view. Only enabled at bottom of page.'],
|
||||
'Bottom Scroll': [false, 'Always scroll to the bottom, not the first new post. Useful for event threads.'],
|
||||
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
||||
@ -439,7 +440,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.26.5',
|
||||
VERSION: '1.11.27.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -10065,7 +10066,9 @@
|
||||
};
|
||||
|
||||
_Class.prototype.dragStart = function(e) {
|
||||
e.dataTransfer.setDragImage(this, e.layerX, e.layerY);
|
||||
var left, ref, top;
|
||||
ref = this.getBoundingClientRect(), left = ref.left, top = ref.top;
|
||||
e.dataTransfer.setDragImage(this, e.clientX - left, e.clientY - top);
|
||||
return $.addClass(this, 'drag');
|
||||
};
|
||||
|
||||
@ -13161,14 +13164,14 @@
|
||||
return;
|
||||
}
|
||||
statsHTML = {
|
||||
innerHTML: "<span id=\"post-count\">?</span> / <span id=\"file-count\">?</span>" + (Conf["IP Count in Stats"] ? " / <span id=\"ip-count\">?</span>" : "") + (Conf["Page Count in Stats"] && g.BOARD.ID !== "f" ? " / <span id=\"page-count\">?</span>" : "")
|
||||
innerHTML: "<span id=\"post-count\">?</span> / <span id=\"file-count\">?</span>" + (Conf["IP Count in Stats"] ? " / <span id=\"ip-count\">?</span>" : "") + (Conf["Page Count in Stats"] ? " / <span id=\"page-count\">?</span>" : "")
|
||||
};
|
||||
statsTitle = 'Posts / Files';
|
||||
if (Conf['IP Count in Stats']) {
|
||||
statsTitle += ' / IPs';
|
||||
}
|
||||
if (Conf['Page Count in Stats'] && g.BOARD.ID !== 'f') {
|
||||
statsTitle += ' / Page';
|
||||
if (Conf['Page Count in Stats']) {
|
||||
statsTitle += (g.BOARD.ID === 'f' ? ' / Purge Position' : ' / Page');
|
||||
}
|
||||
if (Conf['Updater and Stats in Header']) {
|
||||
this.dialog = sc = $.el('span', {
|
||||
@ -13231,7 +13234,7 @@
|
||||
if (newPosts.length) {
|
||||
ThreadStats.lastPost = g.posts[newPosts[newPosts.length - 1]].info.date;
|
||||
}
|
||||
if (((ref1 = ThreadStats.pageCountEl) != null ? ref1.textContent : void 0) !== '1') {
|
||||
if (g.BOARD.ID !== 'f' && ((ref1 = ThreadStats.pageCountEl) != null ? ref1.textContent : void 0) !== '1') {
|
||||
return ThreadStats.fetchPage();
|
||||
}
|
||||
},
|
||||
@ -13264,22 +13267,34 @@
|
||||
});
|
||||
},
|
||||
onThreadsLoad: function() {
|
||||
var k, len1, len2, page, q, ref, ref1, thread;
|
||||
var k, len1, len2, len3, page, purgePos, q, ref, ref1, ref2, thread, u;
|
||||
if (this.status === 200) {
|
||||
ref = this.response;
|
||||
for (k = 0, len1 = ref.length; k < len1; k++) {
|
||||
page = ref[k];
|
||||
ref1 = page.threads;
|
||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||
thread = ref1[q];
|
||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
||||
continue;
|
||||
if (g.BOARD.ID === 'f') {
|
||||
purgePos = 1;
|
||||
ref1 = page.threads;
|
||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||
thread = ref1[q];
|
||||
if (thread.no < ThreadStats.thread.ID) {
|
||||
purgePos++;
|
||||
}
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = purgePos;
|
||||
} else {
|
||||
ref2 = page.threads;
|
||||
for (u = 0, len3 = ref2.length; u < len3; u++) {
|
||||
thread = ref2[u];
|
||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
||||
continue;
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = page.page;
|
||||
(page.page === this.response.length ? $.addClass : $.rmClass)(ThreadStats.pageCountEl, 'warning');
|
||||
ThreadStats.lastPageUpdate = new Date(thread.last_modified * $.SECOND);
|
||||
ThreadStats.retry();
|
||||
return;
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = page.page;
|
||||
(page.page === this.response.length ? $.addClass : $.rmClass)(ThreadStats.pageCountEl, 'warning');
|
||||
ThreadStats.lastPageUpdate = new Date(thread.last_modified * $.SECOND);
|
||||
ThreadStats.retry();
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (this.status === 304) {
|
||||
@ -13288,7 +13303,7 @@
|
||||
},
|
||||
retry: function() {
|
||||
var ref;
|
||||
if (ThreadStats.lastPost > ThreadStats.lastPageUpdate && ((ref = ThreadStats.pageCountEl) != null ? ref.textContent : void 0) !== '1') {
|
||||
if (g.BOARD.ID !== 'f' && ThreadStats.lastPost > ThreadStats.lastPageUpdate && ((ref = ThreadStats.pageCountEl) != null ? ref.textContent : void 0) !== '1') {
|
||||
clearTimeout(ThreadStats.timeout);
|
||||
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
||||
}
|
||||
@ -13301,6 +13316,9 @@
|
||||
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
||||
return;
|
||||
}
|
||||
this.audio = $.el('audio', {
|
||||
src: ThreadUpdater.beep
|
||||
});
|
||||
if (Conf['Updater and Stats in Header']) {
|
||||
this.dialog = sc = $.el('span', {
|
||||
id: 'updater'
|
||||
@ -13403,6 +13421,15 @@
|
||||
cc-by-nc-3.0
|
||||
*/
|
||||
beep: 'data:audio/wav;base64,UklGRjQDAABXQVZFZm10IBAAAAABAAEAgD4AAIA+AAABAAgAc21wbDwAAABBAAADAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYXRhzAIAAGMms8em0tleMV4zIpLVo8nhfSlcPR102Ki+5JspVEkdVtKzs+K1NEhUIT7DwKrcy0g6WygsrM2k1NpiLl0zIY/WpMrjgCdbPhxw2Kq+5Z4qUkkdU9K1s+K5NkVTITzBwqnczko3WikrqM+l1NxlLF0zIIvXpsnjgydZPhxs2ay95aIrUEkdUdC3suK8N0NUIjq+xKrcz002WioppdGm091pK1w0IIjYp8jkhydXPxxq2K295aUrTkoeTs65suK+OUFUIzi7xqrb0VA0WSoootKm0t5tKlo1H4TYqMfkiydWQBxm16+85actTEseS8y7seHAPD9TIza5yKra01QyWSson9On0d5wKVk2H4DYqcfkjidUQB1j1rG75KsvSkseScu8seDCPz1TJDW2yara1FYxWSwnm9Sn0N9zKVg2H33ZqsXkkihSQR1g1bK65K0wSEsfR8i+seDEQTxUJTOzy6rY1VowWC0mmNWoz993KVc3H3rYq8TklSlRQh1d1LS647AyR0wgRMbAsN/GRDpTJTKwzKrX1l4vVy4lldWpzt97KVY4IXbUr8LZljVPRCxhw7W3z6ZISkw1VK+4sMWvXEhSPk6buay9sm5JVkZNiLWqtrJ+TldNTnquqbCwilZXU1BwpKirrpNgWFhTaZmnpquZbFlbVmWOpaOonHZcXlljhaGhpZ1+YWBdYn2cn6GdhmdhYGN3lp2enIttY2Jjco+bnJuOdGZlZXCImJqakHpoZ2Zug5WYmZJ/bGlobX6RlpeSg3BqaW16jZSVkoZ0bGtteImSk5KIeG5tbnaFkJKRinxxbm91gY2QkIt/c3BwdH6Kj4+LgnZxcXR8iI2OjIR5c3J0e4WLjYuFe3VzdHmCioyLhn52dHR5gIiKioeAeHV1eH+GiYqHgXp2dnh9hIiJh4J8eHd4fIKHiIeDfXl4eHyBhoeHhH96eHmA',
|
||||
playBeep: function() {
|
||||
var audio;
|
||||
audio = ThreadUpdater.audio;
|
||||
if (audio.paused) {
|
||||
return audio.play();
|
||||
} else {
|
||||
return $.one(audio, 'ended', ThreadUpdater.playBeep);
|
||||
}
|
||||
},
|
||||
cb: {
|
||||
checkpost: function(e) {
|
||||
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
||||
@ -13585,7 +13612,7 @@
|
||||
return new Notice('info', "The thread is " + change + ".", 30);
|
||||
},
|
||||
parse: function(req) {
|
||||
var ID, OP, board, deletedFiles, deletedPosts, files, firstPost, index, ipCountEl, k, lastPost, len1, len2, len3, len4, newPosts, node, post, postObject, postObjects, posts, q, ref, ref1, ref2, ref3, ref4, ref5, scroll, thread, u, unreadCount, v;
|
||||
var ID, OP, board, deletedFiles, deletedPosts, files, firstPost, index, ipCountEl, k, lastPost, len1, len2, len3, len4, newPosts, node, post, postObject, postObjects, posts, q, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, scroll, thread, u, unreadCount, unreadQYCount, v;
|
||||
postObjects = req.response.posts;
|
||||
OP = postObjects[0];
|
||||
thread = ThreadUpdater.thread;
|
||||
@ -13662,14 +13689,17 @@
|
||||
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
||||
ThreadUpdater.outdateCount = 0;
|
||||
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
||||
unreadQYCount = (ref5 = Unread.postsQuotingYou) != null ? ref5.size : void 0;
|
||||
Main.callbackNodes(Post, posts);
|
||||
if (Conf['Beep'] && d.hidden && unreadCount === 0 && ((ref5 = Unread.posts) != null ? ref5.size : void 0)) {
|
||||
if (!ThreadUpdater.audio) {
|
||||
ThreadUpdater.audio = $.el('audio', {
|
||||
src: ThreadUpdater.beep
|
||||
});
|
||||
if (d.hidden || !d.hasFocus()) {
|
||||
if (Conf['Beep Quoting You'] && ((ref6 = Unread.postsQuotingYou) != null ? ref6.size : void 0) > unreadQYCount) {
|
||||
ThreadUpdater.playBeep();
|
||||
if (Conf['Beep']) {
|
||||
ThreadUpdater.playBeep();
|
||||
}
|
||||
} else if (Conf['Beep'] && ((ref7 = Unread.posts) != null ? ref7.size : void 0) > 0 && unreadCount === 0) {
|
||||
ThreadUpdater.playBeep();
|
||||
}
|
||||
ThreadUpdater.audio.play();
|
||||
}
|
||||
scroll = Conf['Auto Scroll'] && ThreadUpdater.scrollBG() && ThreadUpdater.root.getBoundingClientRect().bottom - doc.clientHeight < 25;
|
||||
firstPost = null;
|
||||
@ -18958,7 +18988,7 @@
|
||||
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
||||
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
||||
"}\n" +
|
||||
"#qr, \n" +
|
||||
"#qr,\n" +
|
||||
"#thread-watcher {\n" +
|
||||
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
||||
"}\n" +
|
||||
@ -20508,11 +20538,17 @@
|
||||
"}\n" +
|
||||
"#dump-list {\n" +
|
||||
" overflow-x: auto;\n" +
|
||||
" overflow-y: hidden;\n" +
|
||||
" overflow-y: auto;\n" +
|
||||
" white-space: nowrap;\n" +
|
||||
" width: 248px;\n" +
|
||||
" max-height: 248px;\n" +
|
||||
" min-height: 90px;\n" +
|
||||
" max-width: 100%;\n" +
|
||||
" min-width: 100%;\n" +
|
||||
" display: -webkit-flex;\n" +
|
||||
" display: flex;\n" +
|
||||
" -webkit-flex-wrap: wrap;\n" +
|
||||
" flex-wrap: wrap;\n" +
|
||||
"}\n" +
|
||||
"#dump-list:hover {\n" +
|
||||
" overflow-x: auto;\n" +
|
||||
@ -20529,9 +20565,12 @@
|
||||
" overflow: hidden;\n" +
|
||||
" position: relative;\n" +
|
||||
" text-shadow: 0 0 2px #000;\n" +
|
||||
" -moz-transition: opacity .25s ease-in-out;\n" +
|
||||
" -webkit-transition: opacity .25s ease-in-out, -webkit-transform .25s ease-in-out;\n" +
|
||||
" transition: opacity .25s ease-in-out, transform .25s ease-in-out, -webkit-transform .25s ease-in-out;\n" +
|
||||
" vertical-align: top;\n" +
|
||||
" background-size: cover;\n" +
|
||||
" -webkit-flex: none;\n" +
|
||||
" flex: none;\n" +
|
||||
"}\n" +
|
||||
".qr-preview:hover,\n" +
|
||||
".qr-preview:focus {\n" +
|
||||
@ -20550,9 +20589,15 @@
|
||||
"}\n" +
|
||||
".qr-preview.drag {\n" +
|
||||
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
||||
" -webkit-transform: scale(.8);\n" +
|
||||
" transform: scale(.8);\n" +
|
||||
"}\n" +
|
||||
".qr-preview.over {\n" +
|
||||
" border-color: #fff;\n" +
|
||||
" -webkit-transform: scale(1.1);\n" +
|
||||
" transform: scale(1.1);\n" +
|
||||
" opacity: 0.9;\n" +
|
||||
" z-index: 10;\n" +
|
||||
"}\n" +
|
||||
".qr-preview > span {\n" +
|
||||
" color: #fff;\n" +
|
||||
@ -20588,7 +20633,7 @@
|
||||
" cursor: pointer;\n" +
|
||||
" font-size: 2em;\n" +
|
||||
" position: absolute;\n" +
|
||||
" top: 50%;\n" +
|
||||
" bottom: 20px;\n" +
|
||||
" right: 10px;\n" +
|
||||
" -moz-transform: translateY(-50%);\n" +
|
||||
"}\n" +
|
||||
@ -20656,7 +20701,7 @@
|
||||
".left>.entry.has-submenu {\n" +
|
||||
" padding-right: 17px !important;\n" +
|
||||
"}\n" +
|
||||
".entry input[type=\"checkbox\"], \n" +
|
||||
".entry input[type=\"checkbox\"],\n" +
|
||||
".entry input[type=\"radio\"] {\n" +
|
||||
" margin: 0px;\n" +
|
||||
" position: relative;\n" +
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.26.5
|
||||
// @version 1.11.27.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.26.5
|
||||
// @version 1.11.27.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -42,7 +42,7 @@
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
*
|
||||
* Appchan X Copyright © 2013-2015 Zixaphir <zixaphirmoxphar@gmail.com>
|
||||
* Appchan X Copyright © 2013-2016 Zixaphir <zixaphirmoxphar@gmail.com>
|
||||
* http://zixaphir.github.io/appchan-x/
|
||||
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
||||
* https://github.com/aeosynth/4chan-x
|
||||
@ -418,6 +418,7 @@
|
||||
updater: {
|
||||
checkbox: {
|
||||
'Beep': [false, 'Beep on new post to completely read thread.'],
|
||||
'Beep Quoting You': [false, 'Beep on new post quoting you.'],
|
||||
'Auto Scroll': [false, 'Scroll updated posts into view. Only enabled at bottom of page.'],
|
||||
'Bottom Scroll': [false, 'Always scroll to the bottom, not the first new post. Useful for event threads.'],
|
||||
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
||||
@ -439,7 +440,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.26.5',
|
||||
VERSION: '1.11.27.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -10065,7 +10066,9 @@
|
||||
};
|
||||
|
||||
_Class.prototype.dragStart = function(e) {
|
||||
e.dataTransfer.setDragImage(this, e.layerX, e.layerY);
|
||||
var left, ref, top;
|
||||
ref = this.getBoundingClientRect(), left = ref.left, top = ref.top;
|
||||
e.dataTransfer.setDragImage(this, e.clientX - left, e.clientY - top);
|
||||
return $.addClass(this, 'drag');
|
||||
};
|
||||
|
||||
@ -13161,14 +13164,14 @@
|
||||
return;
|
||||
}
|
||||
statsHTML = {
|
||||
innerHTML: "<span id=\"post-count\">?</span> / <span id=\"file-count\">?</span>" + (Conf["IP Count in Stats"] ? " / <span id=\"ip-count\">?</span>" : "") + (Conf["Page Count in Stats"] && g.BOARD.ID !== "f" ? " / <span id=\"page-count\">?</span>" : "")
|
||||
innerHTML: "<span id=\"post-count\">?</span> / <span id=\"file-count\">?</span>" + (Conf["IP Count in Stats"] ? " / <span id=\"ip-count\">?</span>" : "") + (Conf["Page Count in Stats"] ? " / <span id=\"page-count\">?</span>" : "")
|
||||
};
|
||||
statsTitle = 'Posts / Files';
|
||||
if (Conf['IP Count in Stats']) {
|
||||
statsTitle += ' / IPs';
|
||||
}
|
||||
if (Conf['Page Count in Stats'] && g.BOARD.ID !== 'f') {
|
||||
statsTitle += ' / Page';
|
||||
if (Conf['Page Count in Stats']) {
|
||||
statsTitle += (g.BOARD.ID === 'f' ? ' / Purge Position' : ' / Page');
|
||||
}
|
||||
if (Conf['Updater and Stats in Header']) {
|
||||
this.dialog = sc = $.el('span', {
|
||||
@ -13231,7 +13234,7 @@
|
||||
if (newPosts.length) {
|
||||
ThreadStats.lastPost = g.posts[newPosts[newPosts.length - 1]].info.date;
|
||||
}
|
||||
if (((ref1 = ThreadStats.pageCountEl) != null ? ref1.textContent : void 0) !== '1') {
|
||||
if (g.BOARD.ID !== 'f' && ((ref1 = ThreadStats.pageCountEl) != null ? ref1.textContent : void 0) !== '1') {
|
||||
return ThreadStats.fetchPage();
|
||||
}
|
||||
},
|
||||
@ -13264,22 +13267,34 @@
|
||||
});
|
||||
},
|
||||
onThreadsLoad: function() {
|
||||
var k, len1, len2, page, q, ref, ref1, thread;
|
||||
var k, len1, len2, len3, page, purgePos, q, ref, ref1, ref2, thread, u;
|
||||
if (this.status === 200) {
|
||||
ref = this.response;
|
||||
for (k = 0, len1 = ref.length; k < len1; k++) {
|
||||
page = ref[k];
|
||||
ref1 = page.threads;
|
||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||
thread = ref1[q];
|
||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
||||
continue;
|
||||
if (g.BOARD.ID === 'f') {
|
||||
purgePos = 1;
|
||||
ref1 = page.threads;
|
||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||
thread = ref1[q];
|
||||
if (thread.no < ThreadStats.thread.ID) {
|
||||
purgePos++;
|
||||
}
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = purgePos;
|
||||
} else {
|
||||
ref2 = page.threads;
|
||||
for (u = 0, len3 = ref2.length; u < len3; u++) {
|
||||
thread = ref2[u];
|
||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
||||
continue;
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = page.page;
|
||||
(page.page === this.response.length ? $.addClass : $.rmClass)(ThreadStats.pageCountEl, 'warning');
|
||||
ThreadStats.lastPageUpdate = new Date(thread.last_modified * $.SECOND);
|
||||
ThreadStats.retry();
|
||||
return;
|
||||
}
|
||||
ThreadStats.pageCountEl.textContent = page.page;
|
||||
(page.page === this.response.length ? $.addClass : $.rmClass)(ThreadStats.pageCountEl, 'warning');
|
||||
ThreadStats.lastPageUpdate = new Date(thread.last_modified * $.SECOND);
|
||||
ThreadStats.retry();
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else if (this.status === 304) {
|
||||
@ -13288,7 +13303,7 @@
|
||||
},
|
||||
retry: function() {
|
||||
var ref;
|
||||
if (ThreadStats.lastPost > ThreadStats.lastPageUpdate && ((ref = ThreadStats.pageCountEl) != null ? ref.textContent : void 0) !== '1') {
|
||||
if (g.BOARD.ID !== 'f' && ThreadStats.lastPost > ThreadStats.lastPageUpdate && ((ref = ThreadStats.pageCountEl) != null ? ref.textContent : void 0) !== '1') {
|
||||
clearTimeout(ThreadStats.timeout);
|
||||
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
||||
}
|
||||
@ -13301,6 +13316,9 @@
|
||||
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
||||
return;
|
||||
}
|
||||
this.audio = $.el('audio', {
|
||||
src: ThreadUpdater.beep
|
||||
});
|
||||
if (Conf['Updater and Stats in Header']) {
|
||||
this.dialog = sc = $.el('span', {
|
||||
id: 'updater'
|
||||
@ -13403,6 +13421,15 @@
|
||||
cc-by-nc-3.0
|
||||
*/
|
||||
beep: 'data:audio/wav;base64,UklGRjQDAABXQVZFZm10IBAAAAABAAEAgD4AAIA+AAABAAgAc21wbDwAAABBAAADAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYXRhzAIAAGMms8em0tleMV4zIpLVo8nhfSlcPR102Ki+5JspVEkdVtKzs+K1NEhUIT7DwKrcy0g6WygsrM2k1NpiLl0zIY/WpMrjgCdbPhxw2Kq+5Z4qUkkdU9K1s+K5NkVTITzBwqnczko3WikrqM+l1NxlLF0zIIvXpsnjgydZPhxs2ay95aIrUEkdUdC3suK8N0NUIjq+xKrcz002WioppdGm091pK1w0IIjYp8jkhydXPxxq2K295aUrTkoeTs65suK+OUFUIzi7xqrb0VA0WSoootKm0t5tKlo1H4TYqMfkiydWQBxm16+85actTEseS8y7seHAPD9TIza5yKra01QyWSson9On0d5wKVk2H4DYqcfkjidUQB1j1rG75KsvSkseScu8seDCPz1TJDW2yara1FYxWSwnm9Sn0N9zKVg2H33ZqsXkkihSQR1g1bK65K0wSEsfR8i+seDEQTxUJTOzy6rY1VowWC0mmNWoz993KVc3H3rYq8TklSlRQh1d1LS647AyR0wgRMbAsN/GRDpTJTKwzKrX1l4vVy4lldWpzt97KVY4IXbUr8LZljVPRCxhw7W3z6ZISkw1VK+4sMWvXEhSPk6buay9sm5JVkZNiLWqtrJ+TldNTnquqbCwilZXU1BwpKirrpNgWFhTaZmnpquZbFlbVmWOpaOonHZcXlljhaGhpZ1+YWBdYn2cn6GdhmdhYGN3lp2enIttY2Jjco+bnJuOdGZlZXCImJqakHpoZ2Zug5WYmZJ/bGlobX6RlpeSg3BqaW16jZSVkoZ0bGtteImSk5KIeG5tbnaFkJKRinxxbm91gY2QkIt/c3BwdH6Kj4+LgnZxcXR8iI2OjIR5c3J0e4WLjYuFe3VzdHmCioyLhn52dHR5gIiKioeAeHV1eH+GiYqHgXp2dnh9hIiJh4J8eHd4fIKHiIeDfXl4eHyBhoeHhH96eHmA',
|
||||
playBeep: function() {
|
||||
var audio;
|
||||
audio = ThreadUpdater.audio;
|
||||
if (audio.paused) {
|
||||
return audio.play();
|
||||
} else {
|
||||
return $.one(audio, 'ended', ThreadUpdater.playBeep);
|
||||
}
|
||||
},
|
||||
cb: {
|
||||
checkpost: function(e) {
|
||||
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
||||
@ -13585,7 +13612,7 @@
|
||||
return new Notice('info', "The thread is " + change + ".", 30);
|
||||
},
|
||||
parse: function(req) {
|
||||
var ID, OP, board, deletedFiles, deletedPosts, files, firstPost, index, ipCountEl, k, lastPost, len1, len2, len3, len4, newPosts, node, post, postObject, postObjects, posts, q, ref, ref1, ref2, ref3, ref4, ref5, scroll, thread, u, unreadCount, v;
|
||||
var ID, OP, board, deletedFiles, deletedPosts, files, firstPost, index, ipCountEl, k, lastPost, len1, len2, len3, len4, newPosts, node, post, postObject, postObjects, posts, q, ref, ref1, ref2, ref3, ref4, ref5, ref6, ref7, scroll, thread, u, unreadCount, unreadQYCount, v;
|
||||
postObjects = req.response.posts;
|
||||
OP = postObjects[0];
|
||||
thread = ThreadUpdater.thread;
|
||||
@ -13662,14 +13689,17 @@
|
||||
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
||||
ThreadUpdater.outdateCount = 0;
|
||||
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
||||
unreadQYCount = (ref5 = Unread.postsQuotingYou) != null ? ref5.size : void 0;
|
||||
Main.callbackNodes(Post, posts);
|
||||
if (Conf['Beep'] && d.hidden && unreadCount === 0 && ((ref5 = Unread.posts) != null ? ref5.size : void 0)) {
|
||||
if (!ThreadUpdater.audio) {
|
||||
ThreadUpdater.audio = $.el('audio', {
|
||||
src: ThreadUpdater.beep
|
||||
});
|
||||
if (d.hidden || !d.hasFocus()) {
|
||||
if (Conf['Beep Quoting You'] && ((ref6 = Unread.postsQuotingYou) != null ? ref6.size : void 0) > unreadQYCount) {
|
||||
ThreadUpdater.playBeep();
|
||||
if (Conf['Beep']) {
|
||||
ThreadUpdater.playBeep();
|
||||
}
|
||||
} else if (Conf['Beep'] && ((ref7 = Unread.posts) != null ? ref7.size : void 0) > 0 && unreadCount === 0) {
|
||||
ThreadUpdater.playBeep();
|
||||
}
|
||||
ThreadUpdater.audio.play();
|
||||
}
|
||||
scroll = Conf['Auto Scroll'] && ThreadUpdater.scrollBG() && ThreadUpdater.root.getBoundingClientRect().bottom - doc.clientHeight < 25;
|
||||
firstPost = null;
|
||||
@ -18958,7 +18988,7 @@
|
||||
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
||||
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
||||
"}\n" +
|
||||
"#qr, \n" +
|
||||
"#qr,\n" +
|
||||
"#thread-watcher {\n" +
|
||||
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
||||
"}\n" +
|
||||
@ -20508,11 +20538,17 @@
|
||||
"}\n" +
|
||||
"#dump-list {\n" +
|
||||
" overflow-x: auto;\n" +
|
||||
" overflow-y: hidden;\n" +
|
||||
" overflow-y: auto;\n" +
|
||||
" white-space: nowrap;\n" +
|
||||
" width: 248px;\n" +
|
||||
" max-height: 248px;\n" +
|
||||
" min-height: 90px;\n" +
|
||||
" max-width: 100%;\n" +
|
||||
" min-width: 100%;\n" +
|
||||
" display: -webkit-flex;\n" +
|
||||
" display: flex;\n" +
|
||||
" -webkit-flex-wrap: wrap;\n" +
|
||||
" flex-wrap: wrap;\n" +
|
||||
"}\n" +
|
||||
"#dump-list:hover {\n" +
|
||||
" overflow-x: auto;\n" +
|
||||
@ -20529,9 +20565,12 @@
|
||||
" overflow: hidden;\n" +
|
||||
" position: relative;\n" +
|
||||
" text-shadow: 0 0 2px #000;\n" +
|
||||
" -moz-transition: opacity .25s ease-in-out;\n" +
|
||||
" -webkit-transition: opacity .25s ease-in-out, -webkit-transform .25s ease-in-out;\n" +
|
||||
" transition: opacity .25s ease-in-out, transform .25s ease-in-out, -webkit-transform .25s ease-in-out;\n" +
|
||||
" vertical-align: top;\n" +
|
||||
" background-size: cover;\n" +
|
||||
" -webkit-flex: none;\n" +
|
||||
" flex: none;\n" +
|
||||
"}\n" +
|
||||
".qr-preview:hover,\n" +
|
||||
".qr-preview:focus {\n" +
|
||||
@ -20550,9 +20589,15 @@
|
||||
"}\n" +
|
||||
".qr-preview.drag {\n" +
|
||||
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
||||
" -webkit-transform: scale(.8);\n" +
|
||||
" transform: scale(.8);\n" +
|
||||
"}\n" +
|
||||
".qr-preview.over {\n" +
|
||||
" border-color: #fff;\n" +
|
||||
" -webkit-transform: scale(1.1);\n" +
|
||||
" transform: scale(1.1);\n" +
|
||||
" opacity: 0.9;\n" +
|
||||
" z-index: 10;\n" +
|
||||
"}\n" +
|
||||
".qr-preview > span {\n" +
|
||||
" color: #fff;\n" +
|
||||
@ -20588,7 +20633,7 @@
|
||||
" cursor: pointer;\n" +
|
||||
" font-size: 2em;\n" +
|
||||
" position: absolute;\n" +
|
||||
" top: 50%;\n" +
|
||||
" bottom: 20px;\n" +
|
||||
" right: 10px;\n" +
|
||||
" -moz-transform: translateY(-50%);\n" +
|
||||
"}\n" +
|
||||
@ -20656,7 +20701,7 @@
|
||||
".left>.entry.has-submenu {\n" +
|
||||
" padding-right: 17px !important;\n" +
|
||||
"}\n" +
|
||||
".entry input[type=\"checkbox\"], \n" +
|
||||
".entry input[type=\"checkbox\"],\n" +
|
||||
".entry input[type=\"radio\"] {\n" +
|
||||
" margin: 0px;\n" +
|
||||
" position: relative;\n" +
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.26.5' />
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.27.0' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.26.5' />
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.27.0' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{
|
||||
"version": "1.11.26.5",
|
||||
"date": "2016-02-25T19:15:38.531Z"
|
||||
"version": "1.11.27.0",
|
||||
"date": "2016-02-28T03:14:27.964Z"
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user