Release 4chan X v1.9.16.2.
This commit is contained in:
parent
e87f5dcb0c
commit
d22a2dcf28
@ -3,6 +3,12 @@ The attributions below are for work that has been incorporated into the script a
|
||||
The links to individual versions below are to copies of the script with the update URL removed. If you want automatic updates, install the script from the links on the [main page](https://github.com/ccd0/4chan-x).
|
||||
|
||||
<!-- v1.9.16.x -->
|
||||
### v1.9.16.2
|
||||
*2014-12-14* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.16.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.16.2/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
**ccd0**
|
||||
- Minor bugfixes.
|
||||
|
||||
### v1.9.16.1
|
||||
*2014-12-14* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.16.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.16.1/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
|
||||
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* 4chan X - Version 1.9.16.1
|
||||
* 4chan X - Version 1.9.16.2
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.9.16.1
|
||||
// @version 1.9.16.2
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.9.16.1
|
||||
// @version 1.9.16.2
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -25,7 +25,7 @@
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
* 4chan X - Version 1.9.16.1
|
||||
* 4chan X - Version 1.9.16.2
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
@ -393,7 +393,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.9.16.1',
|
||||
VERSION: '1.9.16.2',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -1013,13 +1013,13 @@
|
||||
}
|
||||
|
||||
Thread.prototype.setPage = function(pageNum) {
|
||||
var icon, info;
|
||||
info = this.OP.nodes.info;
|
||||
var icon, info, quote, _ref;
|
||||
_ref = this.OP.nodes, info = _ref.info, quote = _ref.quote;
|
||||
if (!(icon = $('.page-num', info))) {
|
||||
icon = $.el('span', {
|
||||
className: 'page-num'
|
||||
});
|
||||
$.after($('a[title="Reply to this post"]', info), [$.tn(' '), icon]);
|
||||
$.after(quote, [$.tn(' '), icon]);
|
||||
}
|
||||
icon.title = "This thread is on page " + pageNum + " in the original index.";
|
||||
icon.textContent = "[" + pageNum + "]";
|
||||
@ -1074,7 +1074,7 @@
|
||||
title: type,
|
||||
className: "" + typeLC + "Icon retina"
|
||||
});
|
||||
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || $('[title="Reply to this post"]', this.OP.nodes.info);
|
||||
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || this.OP.nodes.quote;
|
||||
$.after(root, [$.tn(' '), icon]);
|
||||
if (!this.catalogView) {
|
||||
return;
|
||||
@ -1151,6 +1151,7 @@
|
||||
post: post,
|
||||
info: info,
|
||||
nameBlock: $('.nameBlock', info),
|
||||
quote: $('a[title*="Reply to this post"]', info),
|
||||
comment: $('.postMessage', post),
|
||||
links: [],
|
||||
quotelinks: [],
|
||||
@ -1435,6 +1436,8 @@
|
||||
root: root,
|
||||
post: post,
|
||||
info: info,
|
||||
nameBlock: $('.nameBlock', info),
|
||||
quote: $('a[title*="Reply to this post"]', info),
|
||||
comment: $('.postMessage', post),
|
||||
quotelinks: [],
|
||||
backlinks: info.getElementsByClassName('backlink')
|
||||
@ -3925,7 +3928,7 @@
|
||||
},
|
||||
postFromRoot: function(root) {
|
||||
var boardID, index, link, post, postID;
|
||||
link = $('a[title="Link to this post"]', root);
|
||||
link = $('a[title*="Link to this post"]', root);
|
||||
boardID = link.pathname.split('/')[1];
|
||||
postID = link.hash.slice(2);
|
||||
index = root.dataset.clone;
|
||||
@ -6600,7 +6603,7 @@
|
||||
}
|
||||
},
|
||||
node: function() {
|
||||
return $.on($('a[title="Reply to this post"]', this.nodes.info), 'click', QR.quote);
|
||||
return $.on(this.nodes.quote, 'click', QR.quote);
|
||||
},
|
||||
open: function() {
|
||||
var err;
|
||||
@ -6744,7 +6747,7 @@
|
||||
}
|
||||
sel = d.getSelection();
|
||||
post = Get.postFromNode(this);
|
||||
text = ">>" + post + "\n";
|
||||
text = post.board.ID === g.BOARD.ID ? ">>" + post + "\n" : ">>>/" + post.board + "/" + post + "\n";
|
||||
if (sel.toString().trim() && post === Get.postFromNode(sel.anchorNode)) {
|
||||
range = sel.getRangeAt(0);
|
||||
frag = range.cloneContents();
|
||||
@ -7056,7 +7059,7 @@
|
||||
$.rmAll(list);
|
||||
$.add(list, options);
|
||||
list.value = val;
|
||||
if (list.value) {
|
||||
if (list.value === val) {
|
||||
return;
|
||||
}
|
||||
list.value = g.VIEW === 'thread' ? g.THREADID : 'new';
|
||||
@ -11823,7 +11826,7 @@
|
||||
ThreadWatcher.fetchAllStatus();
|
||||
this.db.save();
|
||||
}
|
||||
Thread.callbacks.push({
|
||||
Post.callbacks.push({
|
||||
name: 'Thread Watcher',
|
||||
cb: this.node
|
||||
});
|
||||
@ -11866,11 +11869,18 @@
|
||||
},
|
||||
node: function() {
|
||||
var toggler;
|
||||
toggler = $.el('img', {
|
||||
className: 'watch-thread-link'
|
||||
});
|
||||
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||
return $.before($('input', this.OP.nodes.post), toggler);
|
||||
if (this.isReply) {
|
||||
return;
|
||||
}
|
||||
if (this.isClone) {
|
||||
toggler = $('.watch-thread-link', this.nodes.post);
|
||||
} else {
|
||||
toggler = $.el('img', {
|
||||
className: 'watch-thread-link'
|
||||
});
|
||||
$.before($('input', this.nodes.post), toggler);
|
||||
}
|
||||
return $.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||
},
|
||||
catalogNode: function() {
|
||||
if (ThreadWatcher.isWatched(this.thread)) {
|
||||
@ -12190,7 +12200,7 @@
|
||||
return div;
|
||||
},
|
||||
refresh: function() {
|
||||
var boardID, data, helper, list, nodes, refresher, thread, threadID, threads, toggler, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3;
|
||||
var boardID, data, list, nodes, refresher, threadID, _i, _j, _len, _len1, _ref, _ref1, _ref2;
|
||||
nodes = [];
|
||||
_ref = ThreadWatcher.getAll();
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
@ -12200,24 +12210,25 @@
|
||||
list = ThreadWatcher.list;
|
||||
$.rmAll(list);
|
||||
$.add(list, nodes);
|
||||
threads = g.BOARD.threads;
|
||||
_ref2 = threads.keys;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
threadID = _ref2[_j];
|
||||
thread = threads[threadID];
|
||||
g.threads.forEach(function(thread) {
|
||||
var helper, post, toggler, _j, _len1, _ref2;
|
||||
helper = ThreadWatcher.isWatched(thread) ? ['addClass', 'Unwatch'] : ['rmClass', 'Watch'];
|
||||
if (thread.OP) {
|
||||
toggler = $('.watch-thread-link', thread.OP.nodes.post);
|
||||
$[helper[0]](toggler, 'watched');
|
||||
toggler.title = "" + helper[1] + " Thread";
|
||||
_ref2 = [thread.OP].concat(__slice.call(thread.OP.clones));
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
post = _ref2[_j];
|
||||
toggler = $('.watch-thread-link', post.nodes.post);
|
||||
$[helper[0]](toggler, 'watched');
|
||||
toggler.title = "" + helper[1] + " Thread";
|
||||
}
|
||||
}
|
||||
if (thread.catalogView) {
|
||||
$[helper[0]](thread.catalogView.nodes.root, 'watched');
|
||||
return $[helper[0]](thread.catalogView.nodes.root, 'watched');
|
||||
}
|
||||
}
|
||||
_ref3 = ThreadWatcher.menu.refreshers;
|
||||
for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
|
||||
refresher = _ref3[_k];
|
||||
});
|
||||
_ref2 = ThreadWatcher.menu.refreshers;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
refresher = _ref2[_j];
|
||||
refresher();
|
||||
}
|
||||
if (Index.nodes && Conf['Pin Watched Threads']) {
|
||||
@ -14472,7 +14483,7 @@
|
||||
className: 'dialog'
|
||||
});
|
||||
$.extend(dialog, {
|
||||
innerHTML: "<nav><div class=sections-list></div><p class='imp-exp-result warning'></p><div class=credits><a class=export>Export</a> | <a class=import>Import</a> | <a class=reset>Reset Settings</a> | <input type=file hidden><a href='https://github.com/ccd0/4chan-x' target=_blank>4chan X</a> | <a href='https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md' target=_blank>1.9.16.1</a> | <a href='https://github.com/ccd0/4chan-x/issues' target=_blank>Issues</a> | <a href=javascript:; class='close fa fa-times' title=Close></a></div></nav><div class=section-container><section></section></div>"
|
||||
innerHTML: "<nav><div class=sections-list></div><p class='imp-exp-result warning'></p><div class=credits><a class=export>Export</a> | <a class=import>Import</a> | <a class=reset>Reset Settings</a> | <input type=file hidden><a href='https://github.com/ccd0/4chan-x' target=_blank>4chan X</a> | <a href='https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md' target=_blank>1.9.16.2</a> | <a href='https://github.com/ccd0/4chan-x/issues' target=_blank>Issues</a> | <a href=javascript:; class='close fa fa-times' title=Close></a></div></nav><div class=section-container><section></section></div>"
|
||||
});
|
||||
$.on($('.export', Settings.dialog), 'click', Settings["export"]);
|
||||
$.on($('.import', Settings.dialog), 'click', Settings["import"]);
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.9.16.1
|
||||
// @version 1.9.16.2
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -24,7 +24,7 @@
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
* 4chan X - Version 1.9.16.1
|
||||
* 4chan X - Version 1.9.16.2
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
@ -392,7 +392,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.9.16.1',
|
||||
VERSION: '1.9.16.2',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -1012,13 +1012,13 @@
|
||||
}
|
||||
|
||||
Thread.prototype.setPage = function(pageNum) {
|
||||
var icon, info;
|
||||
info = this.OP.nodes.info;
|
||||
var icon, info, quote, _ref;
|
||||
_ref = this.OP.nodes, info = _ref.info, quote = _ref.quote;
|
||||
if (!(icon = $('.page-num', info))) {
|
||||
icon = $.el('span', {
|
||||
className: 'page-num'
|
||||
});
|
||||
$.after($('a[title="Reply to this post"]', info), [$.tn(' '), icon]);
|
||||
$.after(quote, [$.tn(' '), icon]);
|
||||
}
|
||||
icon.title = "This thread is on page " + pageNum + " in the original index.";
|
||||
icon.textContent = "[" + pageNum + "]";
|
||||
@ -1073,7 +1073,7 @@
|
||||
title: type,
|
||||
className: "" + typeLC + "Icon retina"
|
||||
});
|
||||
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || $('[title="Reply to this post"]', this.OP.nodes.info);
|
||||
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || this.OP.nodes.quote;
|
||||
$.after(root, [$.tn(' '), icon]);
|
||||
if (!this.catalogView) {
|
||||
return;
|
||||
@ -1150,6 +1150,7 @@
|
||||
post: post,
|
||||
info: info,
|
||||
nameBlock: $('.nameBlock', info),
|
||||
quote: $('a[title*="Reply to this post"]', info),
|
||||
comment: $('.postMessage', post),
|
||||
links: [],
|
||||
quotelinks: [],
|
||||
@ -1434,6 +1435,8 @@
|
||||
root: root,
|
||||
post: post,
|
||||
info: info,
|
||||
nameBlock: $('.nameBlock', info),
|
||||
quote: $('a[title*="Reply to this post"]', info),
|
||||
comment: $('.postMessage', post),
|
||||
quotelinks: [],
|
||||
backlinks: info.getElementsByClassName('backlink')
|
||||
@ -3924,7 +3927,7 @@
|
||||
},
|
||||
postFromRoot: function(root) {
|
||||
var boardID, index, link, post, postID;
|
||||
link = $('a[title="Link to this post"]', root);
|
||||
link = $('a[title*="Link to this post"]', root);
|
||||
boardID = link.pathname.split('/')[1];
|
||||
postID = link.hash.slice(2);
|
||||
index = root.dataset.clone;
|
||||
@ -6599,7 +6602,7 @@
|
||||
}
|
||||
},
|
||||
node: function() {
|
||||
return $.on($('a[title="Reply to this post"]', this.nodes.info), 'click', QR.quote);
|
||||
return $.on(this.nodes.quote, 'click', QR.quote);
|
||||
},
|
||||
open: function() {
|
||||
var err;
|
||||
@ -6743,7 +6746,7 @@
|
||||
}
|
||||
sel = d.getSelection();
|
||||
post = Get.postFromNode(this);
|
||||
text = ">>" + post + "\n";
|
||||
text = post.board.ID === g.BOARD.ID ? ">>" + post + "\n" : ">>>/" + post.board + "/" + post + "\n";
|
||||
if (sel.toString().trim() && post === Get.postFromNode(sel.anchorNode)) {
|
||||
range = sel.getRangeAt(0);
|
||||
frag = range.cloneContents();
|
||||
@ -7055,7 +7058,7 @@
|
||||
$.rmAll(list);
|
||||
$.add(list, options);
|
||||
list.value = val;
|
||||
if (list.value) {
|
||||
if (list.value === val) {
|
||||
return;
|
||||
}
|
||||
list.value = g.VIEW === 'thread' ? g.THREADID : 'new';
|
||||
@ -11822,7 +11825,7 @@
|
||||
ThreadWatcher.fetchAllStatus();
|
||||
this.db.save();
|
||||
}
|
||||
Thread.callbacks.push({
|
||||
Post.callbacks.push({
|
||||
name: 'Thread Watcher',
|
||||
cb: this.node
|
||||
});
|
||||
@ -11865,11 +11868,18 @@
|
||||
},
|
||||
node: function() {
|
||||
var toggler;
|
||||
toggler = $.el('img', {
|
||||
className: 'watch-thread-link'
|
||||
});
|
||||
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||
return $.before($('input', this.OP.nodes.post), toggler);
|
||||
if (this.isReply) {
|
||||
return;
|
||||
}
|
||||
if (this.isClone) {
|
||||
toggler = $('.watch-thread-link', this.nodes.post);
|
||||
} else {
|
||||
toggler = $.el('img', {
|
||||
className: 'watch-thread-link'
|
||||
});
|
||||
$.before($('input', this.nodes.post), toggler);
|
||||
}
|
||||
return $.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||
},
|
||||
catalogNode: function() {
|
||||
if (ThreadWatcher.isWatched(this.thread)) {
|
||||
@ -12189,7 +12199,7 @@
|
||||
return div;
|
||||
},
|
||||
refresh: function() {
|
||||
var boardID, data, helper, list, nodes, refresher, thread, threadID, threads, toggler, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3;
|
||||
var boardID, data, list, nodes, refresher, threadID, _i, _j, _len, _len1, _ref, _ref1, _ref2;
|
||||
nodes = [];
|
||||
_ref = ThreadWatcher.getAll();
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
@ -12199,24 +12209,25 @@
|
||||
list = ThreadWatcher.list;
|
||||
$.rmAll(list);
|
||||
$.add(list, nodes);
|
||||
threads = g.BOARD.threads;
|
||||
_ref2 = threads.keys;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
threadID = _ref2[_j];
|
||||
thread = threads[threadID];
|
||||
g.threads.forEach(function(thread) {
|
||||
var helper, post, toggler, _j, _len1, _ref2;
|
||||
helper = ThreadWatcher.isWatched(thread) ? ['addClass', 'Unwatch'] : ['rmClass', 'Watch'];
|
||||
if (thread.OP) {
|
||||
toggler = $('.watch-thread-link', thread.OP.nodes.post);
|
||||
$[helper[0]](toggler, 'watched');
|
||||
toggler.title = "" + helper[1] + " Thread";
|
||||
_ref2 = [thread.OP].concat(__slice.call(thread.OP.clones));
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
post = _ref2[_j];
|
||||
toggler = $('.watch-thread-link', post.nodes.post);
|
||||
$[helper[0]](toggler, 'watched');
|
||||
toggler.title = "" + helper[1] + " Thread";
|
||||
}
|
||||
}
|
||||
if (thread.catalogView) {
|
||||
$[helper[0]](thread.catalogView.nodes.root, 'watched');
|
||||
return $[helper[0]](thread.catalogView.nodes.root, 'watched');
|
||||
}
|
||||
}
|
||||
_ref3 = ThreadWatcher.menu.refreshers;
|
||||
for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
|
||||
refresher = _ref3[_k];
|
||||
});
|
||||
_ref2 = ThreadWatcher.menu.refreshers;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
refresher = _ref2[_j];
|
||||
refresher();
|
||||
}
|
||||
if (Index.nodes && Conf['Pin Watched Threads']) {
|
||||
@ -14471,7 +14482,7 @@
|
||||
className: 'dialog'
|
||||
});
|
||||
$.extend(dialog, {
|
||||
innerHTML: "<nav><div class=sections-list></div><p class='imp-exp-result warning'></p><div class=credits><a class=export>Export</a> | <a class=import>Import</a> | <a class=reset>Reset Settings</a> | <input type=file hidden><a href='https://github.com/ccd0/4chan-x' target=_blank>4chan X</a> | <a href='https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md' target=_blank>1.9.16.1</a> | <a href='https://github.com/ccd0/4chan-x/issues' target=_blank>Issues</a> | <a href=javascript:; class='close fa fa-times' title=Close></a></div></nav><div class=section-container><section></section></div>"
|
||||
innerHTML: "<nav><div class=sections-list></div><p class='imp-exp-result warning'></p><div class=credits><a class=export>Export</a> | <a class=import>Import</a> | <a class=reset>Reset Settings</a> | <input type=file hidden><a href='https://github.com/ccd0/4chan-x' target=_blank>4chan X</a> | <a href='https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md' target=_blank>1.9.16.2</a> | <a href='https://github.com/ccd0/4chan-x/issues' target=_blank>Issues</a> | <a href=javascript:; class='close fa fa-times' title=Close></a></div></nav><div class=section-container><section></section></div>"
|
||||
});
|
||||
$.on($('.export', Settings.dialog), 'click', Settings["export"]);
|
||||
$.on($('.import', Settings.dialog), 'click', Settings["import"]);
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.9.16.1
|
||||
// @version 1.9.16.2
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.9.16.1
|
||||
// @version 1.9.16.2
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -25,7 +25,7 @@
|
||||
// ==/UserScript==
|
||||
|
||||
/*
|
||||
* 4chan X - Version 1.9.16.1
|
||||
* 4chan X - Version 1.9.16.2
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/ccd0/4chan-x/blob/master/LICENSE
|
||||
@ -393,7 +393,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.9.16.1',
|
||||
VERSION: '1.9.16.2',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -1013,13 +1013,13 @@
|
||||
}
|
||||
|
||||
Thread.prototype.setPage = function(pageNum) {
|
||||
var icon, info;
|
||||
info = this.OP.nodes.info;
|
||||
var icon, info, quote, _ref;
|
||||
_ref = this.OP.nodes, info = _ref.info, quote = _ref.quote;
|
||||
if (!(icon = $('.page-num', info))) {
|
||||
icon = $.el('span', {
|
||||
className: 'page-num'
|
||||
});
|
||||
$.after($('a[title="Reply to this post"]', info), [$.tn(' '), icon]);
|
||||
$.after(quote, [$.tn(' '), icon]);
|
||||
}
|
||||
icon.title = "This thread is on page " + pageNum + " in the original index.";
|
||||
icon.textContent = "[" + pageNum + "]";
|
||||
@ -1074,7 +1074,7 @@
|
||||
title: type,
|
||||
className: "" + typeLC + "Icon retina"
|
||||
});
|
||||
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || $('[title="Reply to this post"]', this.OP.nodes.info);
|
||||
root = type !== 'Sticky' && this.isSticky ? $('.stickyIcon', this.OP.nodes.info) : $('.page-num', this.OP.nodes.info) || this.OP.nodes.quote;
|
||||
$.after(root, [$.tn(' '), icon]);
|
||||
if (!this.catalogView) {
|
||||
return;
|
||||
@ -1151,6 +1151,7 @@
|
||||
post: post,
|
||||
info: info,
|
||||
nameBlock: $('.nameBlock', info),
|
||||
quote: $('a[title*="Reply to this post"]', info),
|
||||
comment: $('.postMessage', post),
|
||||
links: [],
|
||||
quotelinks: [],
|
||||
@ -1435,6 +1436,8 @@
|
||||
root: root,
|
||||
post: post,
|
||||
info: info,
|
||||
nameBlock: $('.nameBlock', info),
|
||||
quote: $('a[title*="Reply to this post"]', info),
|
||||
comment: $('.postMessage', post),
|
||||
quotelinks: [],
|
||||
backlinks: info.getElementsByClassName('backlink')
|
||||
@ -3925,7 +3928,7 @@
|
||||
},
|
||||
postFromRoot: function(root) {
|
||||
var boardID, index, link, post, postID;
|
||||
link = $('a[title="Link to this post"]', root);
|
||||
link = $('a[title*="Link to this post"]', root);
|
||||
boardID = link.pathname.split('/')[1];
|
||||
postID = link.hash.slice(2);
|
||||
index = root.dataset.clone;
|
||||
@ -6600,7 +6603,7 @@
|
||||
}
|
||||
},
|
||||
node: function() {
|
||||
return $.on($('a[title="Reply to this post"]', this.nodes.info), 'click', QR.quote);
|
||||
return $.on(this.nodes.quote, 'click', QR.quote);
|
||||
},
|
||||
open: function() {
|
||||
var err;
|
||||
@ -6744,7 +6747,7 @@
|
||||
}
|
||||
sel = d.getSelection();
|
||||
post = Get.postFromNode(this);
|
||||
text = ">>" + post + "\n";
|
||||
text = post.board.ID === g.BOARD.ID ? ">>" + post + "\n" : ">>>/" + post.board + "/" + post + "\n";
|
||||
if (sel.toString().trim() && post === Get.postFromNode(sel.anchorNode)) {
|
||||
range = sel.getRangeAt(0);
|
||||
frag = range.cloneContents();
|
||||
@ -7056,7 +7059,7 @@
|
||||
$.rmAll(list);
|
||||
$.add(list, options);
|
||||
list.value = val;
|
||||
if (list.value) {
|
||||
if (list.value === val) {
|
||||
return;
|
||||
}
|
||||
list.value = g.VIEW === 'thread' ? g.THREADID : 'new';
|
||||
@ -11823,7 +11826,7 @@
|
||||
ThreadWatcher.fetchAllStatus();
|
||||
this.db.save();
|
||||
}
|
||||
Thread.callbacks.push({
|
||||
Post.callbacks.push({
|
||||
name: 'Thread Watcher',
|
||||
cb: this.node
|
||||
});
|
||||
@ -11866,11 +11869,18 @@
|
||||
},
|
||||
node: function() {
|
||||
var toggler;
|
||||
toggler = $.el('img', {
|
||||
className: 'watch-thread-link'
|
||||
});
|
||||
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||
return $.before($('input', this.OP.nodes.post), toggler);
|
||||
if (this.isReply) {
|
||||
return;
|
||||
}
|
||||
if (this.isClone) {
|
||||
toggler = $('.watch-thread-link', this.nodes.post);
|
||||
} else {
|
||||
toggler = $.el('img', {
|
||||
className: 'watch-thread-link'
|
||||
});
|
||||
$.before($('input', this.nodes.post), toggler);
|
||||
}
|
||||
return $.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||
},
|
||||
catalogNode: function() {
|
||||
if (ThreadWatcher.isWatched(this.thread)) {
|
||||
@ -12190,7 +12200,7 @@
|
||||
return div;
|
||||
},
|
||||
refresh: function() {
|
||||
var boardID, data, helper, list, nodes, refresher, thread, threadID, threads, toggler, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3;
|
||||
var boardID, data, list, nodes, refresher, threadID, _i, _j, _len, _len1, _ref, _ref1, _ref2;
|
||||
nodes = [];
|
||||
_ref = ThreadWatcher.getAll();
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
@ -12200,24 +12210,25 @@
|
||||
list = ThreadWatcher.list;
|
||||
$.rmAll(list);
|
||||
$.add(list, nodes);
|
||||
threads = g.BOARD.threads;
|
||||
_ref2 = threads.keys;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
threadID = _ref2[_j];
|
||||
thread = threads[threadID];
|
||||
g.threads.forEach(function(thread) {
|
||||
var helper, post, toggler, _j, _len1, _ref2;
|
||||
helper = ThreadWatcher.isWatched(thread) ? ['addClass', 'Unwatch'] : ['rmClass', 'Watch'];
|
||||
if (thread.OP) {
|
||||
toggler = $('.watch-thread-link', thread.OP.nodes.post);
|
||||
$[helper[0]](toggler, 'watched');
|
||||
toggler.title = "" + helper[1] + " Thread";
|
||||
_ref2 = [thread.OP].concat(__slice.call(thread.OP.clones));
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
post = _ref2[_j];
|
||||
toggler = $('.watch-thread-link', post.nodes.post);
|
||||
$[helper[0]](toggler, 'watched');
|
||||
toggler.title = "" + helper[1] + " Thread";
|
||||
}
|
||||
}
|
||||
if (thread.catalogView) {
|
||||
$[helper[0]](thread.catalogView.nodes.root, 'watched');
|
||||
return $[helper[0]](thread.catalogView.nodes.root, 'watched');
|
||||
}
|
||||
}
|
||||
_ref3 = ThreadWatcher.menu.refreshers;
|
||||
for (_k = 0, _len2 = _ref3.length; _k < _len2; _k++) {
|
||||
refresher = _ref3[_k];
|
||||
});
|
||||
_ref2 = ThreadWatcher.menu.refreshers;
|
||||
for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) {
|
||||
refresher = _ref2[_j];
|
||||
refresher();
|
||||
}
|
||||
if (Index.nodes && Conf['Pin Watched Threads']) {
|
||||
@ -14472,7 +14483,7 @@
|
||||
className: 'dialog'
|
||||
});
|
||||
$.extend(dialog, {
|
||||
innerHTML: "<nav><div class=sections-list></div><p class='imp-exp-result warning'></p><div class=credits><a class=export>Export</a> | <a class=import>Import</a> | <a class=reset>Reset Settings</a> | <input type=file hidden><a href='https://github.com/ccd0/4chan-x' target=_blank>4chan X</a> | <a href='https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md' target=_blank>1.9.16.1</a> | <a href='https://github.com/ccd0/4chan-x/issues' target=_blank>Issues</a> | <a href=javascript:; class='close fa fa-times' title=Close></a></div></nav><div class=section-container><section></section></div>"
|
||||
innerHTML: "<nav><div class=sections-list></div><p class='imp-exp-result warning'></p><div class=credits><a class=export>Export</a> | <a class=import>Import</a> | <a class=reset>Reset Settings</a> | <input type=file hidden><a href='https://github.com/ccd0/4chan-x' target=_blank>4chan X</a> | <a href='https://github.com/ccd0/4chan-x/blob/master/CHANGELOG.md' target=_blank>1.9.16.2</a> | <a href='https://github.com/ccd0/4chan-x/issues' target=_blank>Issues</a> | <a href=javascript:; class='close fa fa-times' title=Close></a></div></nav><div class=section-container><section></section></div>"
|
||||
});
|
||||
$.on($('.export', Settings.dialog), 'click', Settings["export"]);
|
||||
$.on($('.import', Settings.dialog), 'click', Settings["import"]);
|
||||
|
||||
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://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.9.16.1' />
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.9.16.2' />
|
||||
</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://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.9.16.1' />
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.9.16.2' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"description": "Cross-browser userscript for maximum lurking on 4chan.",
|
||||
"meta": {
|
||||
"name": "4chan X",
|
||||
"version": "1.9.16.1",
|
||||
"version": "1.9.16.2",
|
||||
"repo": "https://github.com/ccd0/4chan-x/",
|
||||
"page": "https://github.com/ccd0/4chan-x",
|
||||
"downloads": "https://ccd0.github.io/4chan-x/builds/",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user