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).
|
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
|
||||||
|
|
||||||
**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")]
|
**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==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.11.26.5
|
// @version 1.11.27.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.11.26.5
|
// @version 1.11.27.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -42,7 +42,7 @@
|
|||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/ccd0/4chan-x/blob/master/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/
|
* http://zixaphir.github.io/appchan-x/
|
||||||
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
||||||
* https://github.com/aeosynth/4chan-x
|
* https://github.com/aeosynth/4chan-x
|
||||||
@ -418,6 +418,7 @@
|
|||||||
updater: {
|
updater: {
|
||||||
checkbox: {
|
checkbox: {
|
||||||
'Beep': [false, 'Beep on new post to completely read thread.'],
|
'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.'],
|
'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.'],
|
'Bottom Scroll': [false, 'Always scroll to the bottom, not the first new post. Useful for event threads.'],
|
||||||
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
||||||
@ -439,7 +440,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.26.5',
|
VERSION: '1.11.27.0',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -10065,7 +10066,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
_Class.prototype.dragStart = function(e) {
|
_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');
|
return $.addClass(this, 'drag');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -13161,14 +13164,14 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
statsHTML = {
|
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';
|
statsTitle = 'Posts / Files';
|
||||||
if (Conf['IP Count in Stats']) {
|
if (Conf['IP Count in Stats']) {
|
||||||
statsTitle += ' / IPs';
|
statsTitle += ' / IPs';
|
||||||
}
|
}
|
||||||
if (Conf['Page Count in Stats'] && g.BOARD.ID !== 'f') {
|
if (Conf['Page Count in Stats']) {
|
||||||
statsTitle += ' / Page';
|
statsTitle += (g.BOARD.ID === 'f' ? ' / Purge Position' : ' / Page');
|
||||||
}
|
}
|
||||||
if (Conf['Updater and Stats in Header']) {
|
if (Conf['Updater and Stats in Header']) {
|
||||||
this.dialog = sc = $.el('span', {
|
this.dialog = sc = $.el('span', {
|
||||||
@ -13231,7 +13234,7 @@
|
|||||||
if (newPosts.length) {
|
if (newPosts.length) {
|
||||||
ThreadStats.lastPost = g.posts[newPosts[newPosts.length - 1]].info.date;
|
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();
|
return ThreadStats.fetchPage();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -13264,22 +13267,34 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
onThreadsLoad: function() {
|
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) {
|
if (this.status === 200) {
|
||||||
ref = this.response;
|
ref = this.response;
|
||||||
for (k = 0, len1 = ref.length; k < len1; k++) {
|
for (k = 0, len1 = ref.length; k < len1; k++) {
|
||||||
page = ref[k];
|
page = ref[k];
|
||||||
ref1 = page.threads;
|
if (g.BOARD.ID === 'f') {
|
||||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
purgePos = 1;
|
||||||
thread = ref1[q];
|
ref1 = page.threads;
|
||||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||||
continue;
|
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) {
|
} else if (this.status === 304) {
|
||||||
@ -13288,7 +13303,7 @@
|
|||||||
},
|
},
|
||||||
retry: function() {
|
retry: function() {
|
||||||
var ref;
|
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);
|
clearTimeout(ThreadStats.timeout);
|
||||||
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
||||||
}
|
}
|
||||||
@ -13301,6 +13316,9 @@
|
|||||||
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this.audio = $.el('audio', {
|
||||||
|
src: ThreadUpdater.beep
|
||||||
|
});
|
||||||
if (Conf['Updater and Stats in Header']) {
|
if (Conf['Updater and Stats in Header']) {
|
||||||
this.dialog = sc = $.el('span', {
|
this.dialog = sc = $.el('span', {
|
||||||
id: 'updater'
|
id: 'updater'
|
||||||
@ -13403,6 +13421,15 @@
|
|||||||
cc-by-nc-3.0
|
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',
|
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: {
|
cb: {
|
||||||
checkpost: function(e) {
|
checkpost: function(e) {
|
||||||
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
||||||
@ -13585,7 +13612,7 @@
|
|||||||
return new Notice('info', "The thread is " + change + ".", 30);
|
return new Notice('info', "The thread is " + change + ".", 30);
|
||||||
},
|
},
|
||||||
parse: function(req) {
|
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;
|
postObjects = req.response.posts;
|
||||||
OP = postObjects[0];
|
OP = postObjects[0];
|
||||||
thread = ThreadUpdater.thread;
|
thread = ThreadUpdater.thread;
|
||||||
@ -13662,14 +13689,17 @@
|
|||||||
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
||||||
ThreadUpdater.outdateCount = 0;
|
ThreadUpdater.outdateCount = 0;
|
||||||
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
||||||
|
unreadQYCount = (ref5 = Unread.postsQuotingYou) != null ? ref5.size : void 0;
|
||||||
Main.callbackNodes(Post, posts);
|
Main.callbackNodes(Post, posts);
|
||||||
if (Conf['Beep'] && d.hidden && unreadCount === 0 && ((ref5 = Unread.posts) != null ? ref5.size : void 0)) {
|
if (d.hidden || !d.hasFocus()) {
|
||||||
if (!ThreadUpdater.audio) {
|
if (Conf['Beep Quoting You'] && ((ref6 = Unread.postsQuotingYou) != null ? ref6.size : void 0) > unreadQYCount) {
|
||||||
ThreadUpdater.audio = $.el('audio', {
|
ThreadUpdater.playBeep();
|
||||||
src: ThreadUpdater.beep
|
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;
|
scroll = Conf['Auto Scroll'] && ThreadUpdater.scrollBG() && ThreadUpdater.root.getBoundingClientRect().bottom - doc.clientHeight < 25;
|
||||||
firstPost = null;
|
firstPost = null;
|
||||||
@ -18958,7 +18988,7 @@
|
|||||||
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
||||||
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
"#qr, \n" +
|
"#qr,\n" +
|
||||||
"#thread-watcher {\n" +
|
"#thread-watcher {\n" +
|
||||||
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
@ -20508,11 +20538,17 @@
|
|||||||
"}\n" +
|
"}\n" +
|
||||||
"#dump-list {\n" +
|
"#dump-list {\n" +
|
||||||
" overflow-x: auto;\n" +
|
" overflow-x: auto;\n" +
|
||||||
" overflow-y: hidden;\n" +
|
" overflow-y: auto;\n" +
|
||||||
" white-space: nowrap;\n" +
|
" white-space: nowrap;\n" +
|
||||||
" width: 248px;\n" +
|
" width: 248px;\n" +
|
||||||
|
" max-height: 248px;\n" +
|
||||||
|
" min-height: 90px;\n" +
|
||||||
" max-width: 100%;\n" +
|
" max-width: 100%;\n" +
|
||||||
" min-width: 100%;\n" +
|
" min-width: 100%;\n" +
|
||||||
|
" display: -webkit-flex;\n" +
|
||||||
|
" display: flex;\n" +
|
||||||
|
" -webkit-flex-wrap: wrap;\n" +
|
||||||
|
" flex-wrap: wrap;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
"#dump-list:hover {\n" +
|
"#dump-list:hover {\n" +
|
||||||
" overflow-x: auto;\n" +
|
" overflow-x: auto;\n" +
|
||||||
@ -20529,9 +20565,12 @@
|
|||||||
" overflow: hidden;\n" +
|
" overflow: hidden;\n" +
|
||||||
" position: relative;\n" +
|
" position: relative;\n" +
|
||||||
" text-shadow: 0 0 2px #000;\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" +
|
" vertical-align: top;\n" +
|
||||||
" background-size: cover;\n" +
|
" background-size: cover;\n" +
|
||||||
|
" -webkit-flex: none;\n" +
|
||||||
|
" flex: none;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview:hover,\n" +
|
".qr-preview:hover,\n" +
|
||||||
".qr-preview:focus {\n" +
|
".qr-preview:focus {\n" +
|
||||||
@ -20550,9 +20589,15 @@
|
|||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview.drag {\n" +
|
".qr-preview.drag {\n" +
|
||||||
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
||||||
|
" -webkit-transform: scale(.8);\n" +
|
||||||
|
" transform: scale(.8);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview.over {\n" +
|
".qr-preview.over {\n" +
|
||||||
" border-color: #fff;\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" +
|
"}\n" +
|
||||||
".qr-preview > span {\n" +
|
".qr-preview > span {\n" +
|
||||||
" color: #fff;\n" +
|
" color: #fff;\n" +
|
||||||
@ -20588,7 +20633,7 @@
|
|||||||
" cursor: pointer;\n" +
|
" cursor: pointer;\n" +
|
||||||
" font-size: 2em;\n" +
|
" font-size: 2em;\n" +
|
||||||
" position: absolute;\n" +
|
" position: absolute;\n" +
|
||||||
" top: 50%;\n" +
|
" bottom: 20px;\n" +
|
||||||
" right: 10px;\n" +
|
" right: 10px;\n" +
|
||||||
" -moz-transform: translateY(-50%);\n" +
|
" -moz-transform: translateY(-50%);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
@ -20656,7 +20701,7 @@
|
|||||||
".left>.entry.has-submenu {\n" +
|
".left>.entry.has-submenu {\n" +
|
||||||
" padding-right: 17px !important;\n" +
|
" padding-right: 17px !important;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".entry input[type=\"checkbox\"], \n" +
|
".entry input[type=\"checkbox\"],\n" +
|
||||||
".entry input[type=\"radio\"] {\n" +
|
".entry input[type=\"radio\"] {\n" +
|
||||||
" margin: 0px;\n" +
|
" margin: 0px;\n" +
|
||||||
" position: relative;\n" +
|
" position: relative;\n" +
|
||||||
|
|||||||
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.26.5
|
// @version 1.11.27.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -42,7 +42,7 @@
|
|||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/ccd0/4chan-x/blob/master/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/
|
* http://zixaphir.github.io/appchan-x/
|
||||||
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
||||||
* https://github.com/aeosynth/4chan-x
|
* https://github.com/aeosynth/4chan-x
|
||||||
@ -418,6 +418,7 @@
|
|||||||
updater: {
|
updater: {
|
||||||
checkbox: {
|
checkbox: {
|
||||||
'Beep': [false, 'Beep on new post to completely read thread.'],
|
'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.'],
|
'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.'],
|
'Bottom Scroll': [false, 'Always scroll to the bottom, not the first new post. Useful for event threads.'],
|
||||||
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
||||||
@ -439,7 +440,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.26.5',
|
VERSION: '1.11.27.0',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -10065,7 +10066,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
_Class.prototype.dragStart = function(e) {
|
_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');
|
return $.addClass(this, 'drag');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -13161,14 +13164,14 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
statsHTML = {
|
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';
|
statsTitle = 'Posts / Files';
|
||||||
if (Conf['IP Count in Stats']) {
|
if (Conf['IP Count in Stats']) {
|
||||||
statsTitle += ' / IPs';
|
statsTitle += ' / IPs';
|
||||||
}
|
}
|
||||||
if (Conf['Page Count in Stats'] && g.BOARD.ID !== 'f') {
|
if (Conf['Page Count in Stats']) {
|
||||||
statsTitle += ' / Page';
|
statsTitle += (g.BOARD.ID === 'f' ? ' / Purge Position' : ' / Page');
|
||||||
}
|
}
|
||||||
if (Conf['Updater and Stats in Header']) {
|
if (Conf['Updater and Stats in Header']) {
|
||||||
this.dialog = sc = $.el('span', {
|
this.dialog = sc = $.el('span', {
|
||||||
@ -13231,7 +13234,7 @@
|
|||||||
if (newPosts.length) {
|
if (newPosts.length) {
|
||||||
ThreadStats.lastPost = g.posts[newPosts[newPosts.length - 1]].info.date;
|
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();
|
return ThreadStats.fetchPage();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -13264,22 +13267,34 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
onThreadsLoad: function() {
|
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) {
|
if (this.status === 200) {
|
||||||
ref = this.response;
|
ref = this.response;
|
||||||
for (k = 0, len1 = ref.length; k < len1; k++) {
|
for (k = 0, len1 = ref.length; k < len1; k++) {
|
||||||
page = ref[k];
|
page = ref[k];
|
||||||
ref1 = page.threads;
|
if (g.BOARD.ID === 'f') {
|
||||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
purgePos = 1;
|
||||||
thread = ref1[q];
|
ref1 = page.threads;
|
||||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||||
continue;
|
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) {
|
} else if (this.status === 304) {
|
||||||
@ -13288,7 +13303,7 @@
|
|||||||
},
|
},
|
||||||
retry: function() {
|
retry: function() {
|
||||||
var ref;
|
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);
|
clearTimeout(ThreadStats.timeout);
|
||||||
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
||||||
}
|
}
|
||||||
@ -13301,6 +13316,9 @@
|
|||||||
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this.audio = $.el('audio', {
|
||||||
|
src: ThreadUpdater.beep
|
||||||
|
});
|
||||||
if (Conf['Updater and Stats in Header']) {
|
if (Conf['Updater and Stats in Header']) {
|
||||||
this.dialog = sc = $.el('span', {
|
this.dialog = sc = $.el('span', {
|
||||||
id: 'updater'
|
id: 'updater'
|
||||||
@ -13403,6 +13421,15 @@
|
|||||||
cc-by-nc-3.0
|
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',
|
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: {
|
cb: {
|
||||||
checkpost: function(e) {
|
checkpost: function(e) {
|
||||||
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
||||||
@ -13585,7 +13612,7 @@
|
|||||||
return new Notice('info', "The thread is " + change + ".", 30);
|
return new Notice('info', "The thread is " + change + ".", 30);
|
||||||
},
|
},
|
||||||
parse: function(req) {
|
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;
|
postObjects = req.response.posts;
|
||||||
OP = postObjects[0];
|
OP = postObjects[0];
|
||||||
thread = ThreadUpdater.thread;
|
thread = ThreadUpdater.thread;
|
||||||
@ -13662,14 +13689,17 @@
|
|||||||
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
||||||
ThreadUpdater.outdateCount = 0;
|
ThreadUpdater.outdateCount = 0;
|
||||||
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
||||||
|
unreadQYCount = (ref5 = Unread.postsQuotingYou) != null ? ref5.size : void 0;
|
||||||
Main.callbackNodes(Post, posts);
|
Main.callbackNodes(Post, posts);
|
||||||
if (Conf['Beep'] && d.hidden && unreadCount === 0 && ((ref5 = Unread.posts) != null ? ref5.size : void 0)) {
|
if (d.hidden || !d.hasFocus()) {
|
||||||
if (!ThreadUpdater.audio) {
|
if (Conf['Beep Quoting You'] && ((ref6 = Unread.postsQuotingYou) != null ? ref6.size : void 0) > unreadQYCount) {
|
||||||
ThreadUpdater.audio = $.el('audio', {
|
ThreadUpdater.playBeep();
|
||||||
src: ThreadUpdater.beep
|
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;
|
scroll = Conf['Auto Scroll'] && ThreadUpdater.scrollBG() && ThreadUpdater.root.getBoundingClientRect().bottom - doc.clientHeight < 25;
|
||||||
firstPost = null;
|
firstPost = null;
|
||||||
@ -18958,7 +18988,7 @@
|
|||||||
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
||||||
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
"#qr, \n" +
|
"#qr,\n" +
|
||||||
"#thread-watcher {\n" +
|
"#thread-watcher {\n" +
|
||||||
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
@ -20508,11 +20538,17 @@
|
|||||||
"}\n" +
|
"}\n" +
|
||||||
"#dump-list {\n" +
|
"#dump-list {\n" +
|
||||||
" overflow-x: auto;\n" +
|
" overflow-x: auto;\n" +
|
||||||
" overflow-y: hidden;\n" +
|
" overflow-y: auto;\n" +
|
||||||
" white-space: nowrap;\n" +
|
" white-space: nowrap;\n" +
|
||||||
" width: 248px;\n" +
|
" width: 248px;\n" +
|
||||||
|
" max-height: 248px;\n" +
|
||||||
|
" min-height: 90px;\n" +
|
||||||
" max-width: 100%;\n" +
|
" max-width: 100%;\n" +
|
||||||
" min-width: 100%;\n" +
|
" min-width: 100%;\n" +
|
||||||
|
" display: -webkit-flex;\n" +
|
||||||
|
" display: flex;\n" +
|
||||||
|
" -webkit-flex-wrap: wrap;\n" +
|
||||||
|
" flex-wrap: wrap;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
"#dump-list:hover {\n" +
|
"#dump-list:hover {\n" +
|
||||||
" overflow-x: auto;\n" +
|
" overflow-x: auto;\n" +
|
||||||
@ -20529,9 +20565,12 @@
|
|||||||
" overflow: hidden;\n" +
|
" overflow: hidden;\n" +
|
||||||
" position: relative;\n" +
|
" position: relative;\n" +
|
||||||
" text-shadow: 0 0 2px #000;\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" +
|
" vertical-align: top;\n" +
|
||||||
" background-size: cover;\n" +
|
" background-size: cover;\n" +
|
||||||
|
" -webkit-flex: none;\n" +
|
||||||
|
" flex: none;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview:hover,\n" +
|
".qr-preview:hover,\n" +
|
||||||
".qr-preview:focus {\n" +
|
".qr-preview:focus {\n" +
|
||||||
@ -20550,9 +20589,15 @@
|
|||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview.drag {\n" +
|
".qr-preview.drag {\n" +
|
||||||
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
||||||
|
" -webkit-transform: scale(.8);\n" +
|
||||||
|
" transform: scale(.8);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview.over {\n" +
|
".qr-preview.over {\n" +
|
||||||
" border-color: #fff;\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" +
|
"}\n" +
|
||||||
".qr-preview > span {\n" +
|
".qr-preview > span {\n" +
|
||||||
" color: #fff;\n" +
|
" color: #fff;\n" +
|
||||||
@ -20588,7 +20633,7 @@
|
|||||||
" cursor: pointer;\n" +
|
" cursor: pointer;\n" +
|
||||||
" font-size: 2em;\n" +
|
" font-size: 2em;\n" +
|
||||||
" position: absolute;\n" +
|
" position: absolute;\n" +
|
||||||
" top: 50%;\n" +
|
" bottom: 20px;\n" +
|
||||||
" right: 10px;\n" +
|
" right: 10px;\n" +
|
||||||
" -moz-transform: translateY(-50%);\n" +
|
" -moz-transform: translateY(-50%);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
@ -20656,7 +20701,7 @@
|
|||||||
".left>.entry.has-submenu {\n" +
|
".left>.entry.has-submenu {\n" +
|
||||||
" padding-right: 17px !important;\n" +
|
" padding-right: 17px !important;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".entry input[type=\"checkbox\"], \n" +
|
".entry input[type=\"checkbox\"],\n" +
|
||||||
".entry input[type=\"radio\"] {\n" +
|
".entry input[type=\"radio\"] {\n" +
|
||||||
" margin: 0px;\n" +
|
" margin: 0px;\n" +
|
||||||
" position: relative;\n" +
|
" position: relative;\n" +
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.26.5
|
// @version 1.11.27.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.26.5
|
// @version 1.11.27.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -42,7 +42,7 @@
|
|||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/ccd0/4chan-x/blob/master/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/
|
* http://zixaphir.github.io/appchan-x/
|
||||||
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
* 4chan x Copyright © 2009-2011 James Campos <james.r.campos@gmail.com>
|
||||||
* https://github.com/aeosynth/4chan-x
|
* https://github.com/aeosynth/4chan-x
|
||||||
@ -418,6 +418,7 @@
|
|||||||
updater: {
|
updater: {
|
||||||
checkbox: {
|
checkbox: {
|
||||||
'Beep': [false, 'Beep on new post to completely read thread.'],
|
'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.'],
|
'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.'],
|
'Bottom Scroll': [false, 'Always scroll to the bottom, not the first new post. Useful for event threads.'],
|
||||||
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
'Scroll BG': [false, 'Auto-scroll background tabs.'],
|
||||||
@ -439,7 +440,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.26.5',
|
VERSION: '1.11.27.0',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -10065,7 +10066,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
_Class.prototype.dragStart = function(e) {
|
_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');
|
return $.addClass(this, 'drag');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -13161,14 +13164,14 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
statsHTML = {
|
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';
|
statsTitle = 'Posts / Files';
|
||||||
if (Conf['IP Count in Stats']) {
|
if (Conf['IP Count in Stats']) {
|
||||||
statsTitle += ' / IPs';
|
statsTitle += ' / IPs';
|
||||||
}
|
}
|
||||||
if (Conf['Page Count in Stats'] && g.BOARD.ID !== 'f') {
|
if (Conf['Page Count in Stats']) {
|
||||||
statsTitle += ' / Page';
|
statsTitle += (g.BOARD.ID === 'f' ? ' / Purge Position' : ' / Page');
|
||||||
}
|
}
|
||||||
if (Conf['Updater and Stats in Header']) {
|
if (Conf['Updater and Stats in Header']) {
|
||||||
this.dialog = sc = $.el('span', {
|
this.dialog = sc = $.el('span', {
|
||||||
@ -13231,7 +13234,7 @@
|
|||||||
if (newPosts.length) {
|
if (newPosts.length) {
|
||||||
ThreadStats.lastPost = g.posts[newPosts[newPosts.length - 1]].info.date;
|
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();
|
return ThreadStats.fetchPage();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -13264,22 +13267,34 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
onThreadsLoad: function() {
|
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) {
|
if (this.status === 200) {
|
||||||
ref = this.response;
|
ref = this.response;
|
||||||
for (k = 0, len1 = ref.length; k < len1; k++) {
|
for (k = 0, len1 = ref.length; k < len1; k++) {
|
||||||
page = ref[k];
|
page = ref[k];
|
||||||
ref1 = page.threads;
|
if (g.BOARD.ID === 'f') {
|
||||||
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
purgePos = 1;
|
||||||
thread = ref1[q];
|
ref1 = page.threads;
|
||||||
if (!(thread.no === ThreadStats.thread.ID)) {
|
for (q = 0, len2 = ref1.length; q < len2; q++) {
|
||||||
continue;
|
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) {
|
} else if (this.status === 304) {
|
||||||
@ -13288,7 +13303,7 @@
|
|||||||
},
|
},
|
||||||
retry: function() {
|
retry: function() {
|
||||||
var ref;
|
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);
|
clearTimeout(ThreadStats.timeout);
|
||||||
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
return ThreadStats.timeout = setTimeout(ThreadStats.fetchPage, 5 * $.SECOND);
|
||||||
}
|
}
|
||||||
@ -13301,6 +13316,9 @@
|
|||||||
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
if (g.VIEW !== 'thread' || !Conf['Thread Updater']) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this.audio = $.el('audio', {
|
||||||
|
src: ThreadUpdater.beep
|
||||||
|
});
|
||||||
if (Conf['Updater and Stats in Header']) {
|
if (Conf['Updater and Stats in Header']) {
|
||||||
this.dialog = sc = $.el('span', {
|
this.dialog = sc = $.el('span', {
|
||||||
id: 'updater'
|
id: 'updater'
|
||||||
@ -13403,6 +13421,15 @@
|
|||||||
cc-by-nc-3.0
|
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',
|
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: {
|
cb: {
|
||||||
checkpost: function(e) {
|
checkpost: function(e) {
|
||||||
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
if (e.detail.threadID !== ThreadUpdater.thread.ID) {
|
||||||
@ -13585,7 +13612,7 @@
|
|||||||
return new Notice('info', "The thread is " + change + ".", 30);
|
return new Notice('info', "The thread is " + change + ".", 30);
|
||||||
},
|
},
|
||||||
parse: function(req) {
|
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;
|
postObjects = req.response.posts;
|
||||||
OP = postObjects[0];
|
OP = postObjects[0];
|
||||||
thread = ThreadUpdater.thread;
|
thread = ThreadUpdater.thread;
|
||||||
@ -13662,14 +13689,17 @@
|
|||||||
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
ThreadUpdater.set('status', "+" + posts.length, 'new');
|
||||||
ThreadUpdater.outdateCount = 0;
|
ThreadUpdater.outdateCount = 0;
|
||||||
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
unreadCount = (ref4 = Unread.posts) != null ? ref4.size : void 0;
|
||||||
|
unreadQYCount = (ref5 = Unread.postsQuotingYou) != null ? ref5.size : void 0;
|
||||||
Main.callbackNodes(Post, posts);
|
Main.callbackNodes(Post, posts);
|
||||||
if (Conf['Beep'] && d.hidden && unreadCount === 0 && ((ref5 = Unread.posts) != null ? ref5.size : void 0)) {
|
if (d.hidden || !d.hasFocus()) {
|
||||||
if (!ThreadUpdater.audio) {
|
if (Conf['Beep Quoting You'] && ((ref6 = Unread.postsQuotingYou) != null ? ref6.size : void 0) > unreadQYCount) {
|
||||||
ThreadUpdater.audio = $.el('audio', {
|
ThreadUpdater.playBeep();
|
||||||
src: ThreadUpdater.beep
|
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;
|
scroll = Conf['Auto Scroll'] && ThreadUpdater.scrollBG() && ThreadUpdater.root.getBoundingClientRect().bottom - doc.clientHeight < 25;
|
||||||
firstPost = null;
|
firstPost = null;
|
||||||
@ -18958,7 +18988,7 @@
|
|||||||
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
".dialog:not(#qr):not(#thread-watcher):not(#header-bar) {\n" +
|
||||||
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
" box-shadow: 0 1px 2px rgba(0, 0, 0, .15);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
"#qr, \n" +
|
"#qr,\n" +
|
||||||
"#thread-watcher {\n" +
|
"#thread-watcher {\n" +
|
||||||
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
" box-shadow: -1px 2px 2px rgba(0, 0, 0, 0.25);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
@ -20508,11 +20538,17 @@
|
|||||||
"}\n" +
|
"}\n" +
|
||||||
"#dump-list {\n" +
|
"#dump-list {\n" +
|
||||||
" overflow-x: auto;\n" +
|
" overflow-x: auto;\n" +
|
||||||
" overflow-y: hidden;\n" +
|
" overflow-y: auto;\n" +
|
||||||
" white-space: nowrap;\n" +
|
" white-space: nowrap;\n" +
|
||||||
" width: 248px;\n" +
|
" width: 248px;\n" +
|
||||||
|
" max-height: 248px;\n" +
|
||||||
|
" min-height: 90px;\n" +
|
||||||
" max-width: 100%;\n" +
|
" max-width: 100%;\n" +
|
||||||
" min-width: 100%;\n" +
|
" min-width: 100%;\n" +
|
||||||
|
" display: -webkit-flex;\n" +
|
||||||
|
" display: flex;\n" +
|
||||||
|
" -webkit-flex-wrap: wrap;\n" +
|
||||||
|
" flex-wrap: wrap;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
"#dump-list:hover {\n" +
|
"#dump-list:hover {\n" +
|
||||||
" overflow-x: auto;\n" +
|
" overflow-x: auto;\n" +
|
||||||
@ -20529,9 +20565,12 @@
|
|||||||
" overflow: hidden;\n" +
|
" overflow: hidden;\n" +
|
||||||
" position: relative;\n" +
|
" position: relative;\n" +
|
||||||
" text-shadow: 0 0 2px #000;\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" +
|
" vertical-align: top;\n" +
|
||||||
" background-size: cover;\n" +
|
" background-size: cover;\n" +
|
||||||
|
" -webkit-flex: none;\n" +
|
||||||
|
" flex: none;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview:hover,\n" +
|
".qr-preview:hover,\n" +
|
||||||
".qr-preview:focus {\n" +
|
".qr-preview:focus {\n" +
|
||||||
@ -20550,9 +20589,15 @@
|
|||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview.drag {\n" +
|
".qr-preview.drag {\n" +
|
||||||
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
" box-shadow: 0 0 10px rgba(0,0,0,.5);\n" +
|
||||||
|
" -webkit-transform: scale(.8);\n" +
|
||||||
|
" transform: scale(.8);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".qr-preview.over {\n" +
|
".qr-preview.over {\n" +
|
||||||
" border-color: #fff;\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" +
|
"}\n" +
|
||||||
".qr-preview > span {\n" +
|
".qr-preview > span {\n" +
|
||||||
" color: #fff;\n" +
|
" color: #fff;\n" +
|
||||||
@ -20588,7 +20633,7 @@
|
|||||||
" cursor: pointer;\n" +
|
" cursor: pointer;\n" +
|
||||||
" font-size: 2em;\n" +
|
" font-size: 2em;\n" +
|
||||||
" position: absolute;\n" +
|
" position: absolute;\n" +
|
||||||
" top: 50%;\n" +
|
" bottom: 20px;\n" +
|
||||||
" right: 10px;\n" +
|
" right: 10px;\n" +
|
||||||
" -moz-transform: translateY(-50%);\n" +
|
" -moz-transform: translateY(-50%);\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
@ -20656,7 +20701,7 @@
|
|||||||
".left>.entry.has-submenu {\n" +
|
".left>.entry.has-submenu {\n" +
|
||||||
" padding-right: 17px !important;\n" +
|
" padding-right: 17px !important;\n" +
|
||||||
"}\n" +
|
"}\n" +
|
||||||
".entry input[type=\"checkbox\"], \n" +
|
".entry input[type=\"checkbox\"],\n" +
|
||||||
".entry input[type=\"radio\"] {\n" +
|
".entry input[type=\"radio\"] {\n" +
|
||||||
" margin: 0px;\n" +
|
" margin: 0px;\n" +
|
||||||
" position: relative;\n" +
|
" position: relative;\n" +
|
||||||
|
|||||||
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
<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>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
<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>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"version": "1.11.26.5",
|
"version": "1.11.27.0",
|
||||||
"date": "2016-02-25T19:15:38.531Z"
|
"date": "2016-02-28T03:14:27.964Z"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user