Release 4chan X v1.11.30.1.
This commit is contained in:
parent
6e3ccfb264
commit
6c8479e7b1
@ -4,6 +4,11 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
|
|||||||
|
|
||||||
### v1.11.30
|
### v1.11.30
|
||||||
|
|
||||||
|
**v1.11.30.1** *(2016-04-04)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.30.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.30.1/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||||
|
- Scrolling to a post hidden by `Reply Pruning` unhides the posts. This includes `Scroll to Last Read Post`.
|
||||||
|
- Opening a thread by the link to the OP turns unhides the posts hidden by `Reply Pruning`.
|
||||||
|
- The `Show Last ___` checkbox to hide or show the posts hidden by `Reply Pruning` is no longer persistent. If `Reply Pruning` is enabled, it will be turned on when the thread is opened unless there is a reason for it to be turned off (quote threading, linking to a hidden post or the OP).
|
||||||
|
|
||||||
**v1.11.30.0** *(2016-04-03)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.30.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.30.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
**v1.11.30.0** *(2016-04-03)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.30.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.30.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||||
- Based on v1.11.29.6.
|
- Based on v1.11.29.6.
|
||||||
- 4chan X now remembers the state of the `Threading` checkbox added to the header menu by the `Quote Threading` feature. This allows you to have threading off by default, yet turn it on when you want it without reloading the page. By default `Quote Threading` will now be on with the `Threading` checkbox off.
|
- 4chan X now remembers the state of the `Threading` checkbox added to the header menu by the `Quote Threading` feature. This allows you to have threading off by default, yet turn it on when you want it without reloading the page. By default `Quote Threading` will now be on with the `Threading` checkbox off.
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.11.30.0
|
// @version 1.11.30.1
|
||||||
// @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.30.0
|
// @version 1.11.30.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -430,10 +430,7 @@
|
|||||||
customCooldown: 0,
|
customCooldown: 0,
|
||||||
customCooldownEnabled: true,
|
customCooldownEnabled: true,
|
||||||
'Thread Quotes': false,
|
'Thread Quotes': false,
|
||||||
replyPruning: {
|
'Max Replies': 1000,
|
||||||
'Prune Replies': true,
|
|
||||||
'Max Replies': 1000
|
|
||||||
},
|
|
||||||
'Autohiding Scrollbar': false
|
'Autohiding Scrollbar': false
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -446,7 +443,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.30.0',
|
VERSION: '1.11.30.1',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -3159,10 +3156,13 @@
|
|||||||
history.replaceState({}, '');
|
history.replaceState({}, '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((hash = location.hash.slice(1)) && (el = $.id(hash))) {
|
if ((hash = location.hash.slice(1))) {
|
||||||
return $.queueTask(function() {
|
ReplyPruning.showIfHidden(hash);
|
||||||
return Header.scrollTo(el);
|
if ((el = $.id(hash))) {
|
||||||
});
|
return $.queueTask(function() {
|
||||||
|
return Header.scrollTo(el);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
scrollTo: function(root, down, needed) {
|
scrollTo: function(root, down, needed) {
|
||||||
@ -13251,10 +13251,7 @@
|
|||||||
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
|
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Conf['Quote Threading'] && Conf['Thread Quotes'] && Conf['Prune Replies']) {
|
this.active = !(Conf['Quote Threading'] && Conf['Thread Quotes']);
|
||||||
Conf['Prune Replies'] = false;
|
|
||||||
$.set('Prune Replies', false);
|
|
||||||
}
|
|
||||||
this.container = $.frag();
|
this.container = $.frag();
|
||||||
this.summary = $.el('span', {
|
this.summary = $.el('span', {
|
||||||
hidden: true,
|
hidden: true,
|
||||||
@ -13267,7 +13264,7 @@
|
|||||||
return $.event('change', null, _this.inputs.enabled);
|
return $.event('change', null, _this.inputs.enabled);
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
label = UI.checkbox('Prune Replies', 'Show Last');
|
label = UI.checkbox('Prune Replies', 'Show Last', this.active);
|
||||||
el = $.el('span', {
|
el = $.el('span', {
|
||||||
title: 'Maximum number of replies to show.'
|
title: 'Maximum number of replies to show.'
|
||||||
}, {
|
}, {
|
||||||
@ -13301,9 +13298,17 @@
|
|||||||
other.checked = false;
|
other.checked = false;
|
||||||
$.event('change', null, other);
|
$.event('change', null, other);
|
||||||
}
|
}
|
||||||
return $.cb.checked.call(this);
|
return ReplyPruning.active = this.checked;
|
||||||
|
},
|
||||||
|
showIfHidden: function(id) {
|
||||||
|
var ref;
|
||||||
|
if ((ref = ReplyPruning.container) != null ? ref.getElementById(id) : void 0) {
|
||||||
|
ReplyPruning.inputs.enabled.checked = false;
|
||||||
|
return $.event('change', null, ReplyPruning.inputs.enabled);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
node: function() {
|
node: function() {
|
||||||
|
var ref;
|
||||||
ReplyPruning.thread = this;
|
ReplyPruning.thread = this;
|
||||||
this.posts.forEach(function(post) {
|
this.posts.forEach(function(post) {
|
||||||
if (post.isReply) {
|
if (post.isReply) {
|
||||||
@ -13313,6 +13318,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (ReplyPruning.active && /^#p\d+$/.test(location.hash) && (0 <= (ref = this.posts.keys.indexOf(location.hash.slice(2))) && ref < 1 + Math.max(ReplyPruning.total - +Conf["Max Replies"], 0))) {
|
||||||
|
ReplyPruning.active = ReplyPruning.inputs.enabled.checked = false;
|
||||||
|
}
|
||||||
$.after(this.OP.nodes.root, ReplyPruning.summary);
|
$.after(this.OP.nodes.root, ReplyPruning.summary);
|
||||||
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
|
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
|
||||||
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
|
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
|
||||||
@ -13336,7 +13344,7 @@
|
|||||||
},
|
},
|
||||||
update: function() {
|
update: function() {
|
||||||
var frag, hidden2, post, posts;
|
var frag, hidden2, post, posts;
|
||||||
hidden2 = Conf['Prune Replies'] ? Math.max(ReplyPruning.total - +Conf["Max Replies"], 0) : 0;
|
hidden2 = ReplyPruning.active ? Math.max(ReplyPruning.total - +Conf["Max Replies"], 0) : 0;
|
||||||
posts = ReplyPruning.thread.posts;
|
posts = ReplyPruning.thread.posts;
|
||||||
if (ReplyPruning.hidden < hidden2) {
|
if (ReplyPruning.hidden < hidden2) {
|
||||||
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
|
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
|
||||||
@ -13364,7 +13372,7 @@
|
|||||||
$.after(ReplyPruning.summary, frag);
|
$.after(ReplyPruning.summary, frag);
|
||||||
$.event('PostsInserted');
|
$.event('PostsInserted');
|
||||||
}
|
}
|
||||||
ReplyPruning.summary.textContent = Conf['Prune Replies'] ? Build.summaryText('+', ReplyPruning.hidden, ReplyPruning.hiddenFiles) : Build.summaryText('-', ReplyPruning.total, ReplyPruning.totalFiles);
|
ReplyPruning.summary.textContent = ReplyPruning.active ? Build.summaryText('+', ReplyPruning.hidden, ReplyPruning.hiddenFiles) : Build.summaryText('-', ReplyPruning.total, ReplyPruning.totalFiles);
|
||||||
return ReplyPruning.summary.hidden = ReplyPruning.total <= +Conf["Max Replies"];
|
return ReplyPruning.summary.hidden = ReplyPruning.total <= +Conf["Max Replies"];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -14772,12 +14780,12 @@
|
|||||||
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
|
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
|
||||||
},
|
},
|
||||||
ready: function() {
|
ready: function() {
|
||||||
Unread.setLine(true);
|
|
||||||
Unread.read();
|
|
||||||
Unread.update();
|
|
||||||
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
|
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
|
||||||
Unread.scroll();
|
Unread.scroll();
|
||||||
}
|
}
|
||||||
|
Unread.setLine(true);
|
||||||
|
Unread.read();
|
||||||
|
Unread.update();
|
||||||
$.on(d, 'scroll visibilitychange', Unread.read);
|
$.on(d, 'scroll visibilitychange', Unread.read);
|
||||||
if (Conf['Unread Line']) {
|
if (Conf['Unread Line']) {
|
||||||
return $.on(d, 'visibilitychange', Unread.setLine);
|
return $.on(d, 'visibilitychange', Unread.setLine);
|
||||||
@ -14791,10 +14799,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
scroll: function() {
|
scroll: function() {
|
||||||
var hash, position, root;
|
var hash, position, ref, root;
|
||||||
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
|
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ReplyPruning.showIfHidden((ref = Unread.position) != null ? ref.data.nodes.root.id : void 0);
|
||||||
position = Unread.positionPrev();
|
position = Unread.positionPrev();
|
||||||
while (position) {
|
while (position) {
|
||||||
root = position.data.nodes.root;
|
root = position.data.nodes.root;
|
||||||
@ -14981,7 +14990,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Unread.hr.hidden || d.hidden || (force === true)) {
|
if (Unread.hr.hidden || d.hidden || (force === true)) {
|
||||||
if (Unread.linePosition = Unread.positionPrev()) {
|
if ((Unread.linePosition = Unread.positionPrev())) {
|
||||||
$.after(Unread.linePosition.data.nodes.root, Unread.hr);
|
$.after(Unread.linePosition.data.nodes.root, Unread.hr);
|
||||||
} else {
|
} else {
|
||||||
$.rm(Unread.hr);
|
$.rm(Unread.hr);
|
||||||
|
|||||||
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.30.0
|
// @version 1.11.30.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -430,10 +430,7 @@
|
|||||||
customCooldown: 0,
|
customCooldown: 0,
|
||||||
customCooldownEnabled: true,
|
customCooldownEnabled: true,
|
||||||
'Thread Quotes': false,
|
'Thread Quotes': false,
|
||||||
replyPruning: {
|
'Max Replies': 1000,
|
||||||
'Prune Replies': true,
|
|
||||||
'Max Replies': 1000
|
|
||||||
},
|
|
||||||
'Autohiding Scrollbar': false
|
'Autohiding Scrollbar': false
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -446,7 +443,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.30.0',
|
VERSION: '1.11.30.1',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -3159,10 +3156,13 @@
|
|||||||
history.replaceState({}, '');
|
history.replaceState({}, '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((hash = location.hash.slice(1)) && (el = $.id(hash))) {
|
if ((hash = location.hash.slice(1))) {
|
||||||
return $.queueTask(function() {
|
ReplyPruning.showIfHidden(hash);
|
||||||
return Header.scrollTo(el);
|
if ((el = $.id(hash))) {
|
||||||
});
|
return $.queueTask(function() {
|
||||||
|
return Header.scrollTo(el);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
scrollTo: function(root, down, needed) {
|
scrollTo: function(root, down, needed) {
|
||||||
@ -13251,10 +13251,7 @@
|
|||||||
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
|
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Conf['Quote Threading'] && Conf['Thread Quotes'] && Conf['Prune Replies']) {
|
this.active = !(Conf['Quote Threading'] && Conf['Thread Quotes']);
|
||||||
Conf['Prune Replies'] = false;
|
|
||||||
$.set('Prune Replies', false);
|
|
||||||
}
|
|
||||||
this.container = $.frag();
|
this.container = $.frag();
|
||||||
this.summary = $.el('span', {
|
this.summary = $.el('span', {
|
||||||
hidden: true,
|
hidden: true,
|
||||||
@ -13267,7 +13264,7 @@
|
|||||||
return $.event('change', null, _this.inputs.enabled);
|
return $.event('change', null, _this.inputs.enabled);
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
label = UI.checkbox('Prune Replies', 'Show Last');
|
label = UI.checkbox('Prune Replies', 'Show Last', this.active);
|
||||||
el = $.el('span', {
|
el = $.el('span', {
|
||||||
title: 'Maximum number of replies to show.'
|
title: 'Maximum number of replies to show.'
|
||||||
}, {
|
}, {
|
||||||
@ -13301,9 +13298,17 @@
|
|||||||
other.checked = false;
|
other.checked = false;
|
||||||
$.event('change', null, other);
|
$.event('change', null, other);
|
||||||
}
|
}
|
||||||
return $.cb.checked.call(this);
|
return ReplyPruning.active = this.checked;
|
||||||
|
},
|
||||||
|
showIfHidden: function(id) {
|
||||||
|
var ref;
|
||||||
|
if ((ref = ReplyPruning.container) != null ? ref.getElementById(id) : void 0) {
|
||||||
|
ReplyPruning.inputs.enabled.checked = false;
|
||||||
|
return $.event('change', null, ReplyPruning.inputs.enabled);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
node: function() {
|
node: function() {
|
||||||
|
var ref;
|
||||||
ReplyPruning.thread = this;
|
ReplyPruning.thread = this;
|
||||||
this.posts.forEach(function(post) {
|
this.posts.forEach(function(post) {
|
||||||
if (post.isReply) {
|
if (post.isReply) {
|
||||||
@ -13313,6 +13318,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (ReplyPruning.active && /^#p\d+$/.test(location.hash) && (0 <= (ref = this.posts.keys.indexOf(location.hash.slice(2))) && ref < 1 + Math.max(ReplyPruning.total - +Conf["Max Replies"], 0))) {
|
||||||
|
ReplyPruning.active = ReplyPruning.inputs.enabled.checked = false;
|
||||||
|
}
|
||||||
$.after(this.OP.nodes.root, ReplyPruning.summary);
|
$.after(this.OP.nodes.root, ReplyPruning.summary);
|
||||||
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
|
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
|
||||||
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
|
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
|
||||||
@ -13336,7 +13344,7 @@
|
|||||||
},
|
},
|
||||||
update: function() {
|
update: function() {
|
||||||
var frag, hidden2, post, posts;
|
var frag, hidden2, post, posts;
|
||||||
hidden2 = Conf['Prune Replies'] ? Math.max(ReplyPruning.total - +Conf["Max Replies"], 0) : 0;
|
hidden2 = ReplyPruning.active ? Math.max(ReplyPruning.total - +Conf["Max Replies"], 0) : 0;
|
||||||
posts = ReplyPruning.thread.posts;
|
posts = ReplyPruning.thread.posts;
|
||||||
if (ReplyPruning.hidden < hidden2) {
|
if (ReplyPruning.hidden < hidden2) {
|
||||||
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
|
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
|
||||||
@ -13364,7 +13372,7 @@
|
|||||||
$.after(ReplyPruning.summary, frag);
|
$.after(ReplyPruning.summary, frag);
|
||||||
$.event('PostsInserted');
|
$.event('PostsInserted');
|
||||||
}
|
}
|
||||||
ReplyPruning.summary.textContent = Conf['Prune Replies'] ? Build.summaryText('+', ReplyPruning.hidden, ReplyPruning.hiddenFiles) : Build.summaryText('-', ReplyPruning.total, ReplyPruning.totalFiles);
|
ReplyPruning.summary.textContent = ReplyPruning.active ? Build.summaryText('+', ReplyPruning.hidden, ReplyPruning.hiddenFiles) : Build.summaryText('-', ReplyPruning.total, ReplyPruning.totalFiles);
|
||||||
return ReplyPruning.summary.hidden = ReplyPruning.total <= +Conf["Max Replies"];
|
return ReplyPruning.summary.hidden = ReplyPruning.total <= +Conf["Max Replies"];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -14772,12 +14780,12 @@
|
|||||||
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
|
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
|
||||||
},
|
},
|
||||||
ready: function() {
|
ready: function() {
|
||||||
Unread.setLine(true);
|
|
||||||
Unread.read();
|
|
||||||
Unread.update();
|
|
||||||
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
|
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
|
||||||
Unread.scroll();
|
Unread.scroll();
|
||||||
}
|
}
|
||||||
|
Unread.setLine(true);
|
||||||
|
Unread.read();
|
||||||
|
Unread.update();
|
||||||
$.on(d, 'scroll visibilitychange', Unread.read);
|
$.on(d, 'scroll visibilitychange', Unread.read);
|
||||||
if (Conf['Unread Line']) {
|
if (Conf['Unread Line']) {
|
||||||
return $.on(d, 'visibilitychange', Unread.setLine);
|
return $.on(d, 'visibilitychange', Unread.setLine);
|
||||||
@ -14791,10 +14799,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
scroll: function() {
|
scroll: function() {
|
||||||
var hash, position, root;
|
var hash, position, ref, root;
|
||||||
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
|
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ReplyPruning.showIfHidden((ref = Unread.position) != null ? ref.data.nodes.root.id : void 0);
|
||||||
position = Unread.positionPrev();
|
position = Unread.positionPrev();
|
||||||
while (position) {
|
while (position) {
|
||||||
root = position.data.nodes.root;
|
root = position.data.nodes.root;
|
||||||
@ -14981,7 +14990,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Unread.hr.hidden || d.hidden || (force === true)) {
|
if (Unread.hr.hidden || d.hidden || (force === true)) {
|
||||||
if (Unread.linePosition = Unread.positionPrev()) {
|
if ((Unread.linePosition = Unread.positionPrev())) {
|
||||||
$.after(Unread.linePosition.data.nodes.root, Unread.hr);
|
$.after(Unread.linePosition.data.nodes.root, Unread.hr);
|
||||||
} else {
|
} else {
|
||||||
$.rm(Unread.hr);
|
$.rm(Unread.hr);
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.30.0
|
// @version 1.11.30.1
|
||||||
// @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.30.0
|
// @version 1.11.30.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -430,10 +430,7 @@
|
|||||||
customCooldown: 0,
|
customCooldown: 0,
|
||||||
customCooldownEnabled: true,
|
customCooldownEnabled: true,
|
||||||
'Thread Quotes': false,
|
'Thread Quotes': false,
|
||||||
replyPruning: {
|
'Max Replies': 1000,
|
||||||
'Prune Replies': true,
|
|
||||||
'Max Replies': 1000
|
|
||||||
},
|
|
||||||
'Autohiding Scrollbar': false
|
'Autohiding Scrollbar': false
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -446,7 +443,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.30.0',
|
VERSION: '1.11.30.1',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -3159,10 +3156,13 @@
|
|||||||
history.replaceState({}, '');
|
history.replaceState({}, '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((hash = location.hash.slice(1)) && (el = $.id(hash))) {
|
if ((hash = location.hash.slice(1))) {
|
||||||
return $.queueTask(function() {
|
ReplyPruning.showIfHidden(hash);
|
||||||
return Header.scrollTo(el);
|
if ((el = $.id(hash))) {
|
||||||
});
|
return $.queueTask(function() {
|
||||||
|
return Header.scrollTo(el);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
scrollTo: function(root, down, needed) {
|
scrollTo: function(root, down, needed) {
|
||||||
@ -13251,10 +13251,7 @@
|
|||||||
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
|
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Conf['Quote Threading'] && Conf['Thread Quotes'] && Conf['Prune Replies']) {
|
this.active = !(Conf['Quote Threading'] && Conf['Thread Quotes']);
|
||||||
Conf['Prune Replies'] = false;
|
|
||||||
$.set('Prune Replies', false);
|
|
||||||
}
|
|
||||||
this.container = $.frag();
|
this.container = $.frag();
|
||||||
this.summary = $.el('span', {
|
this.summary = $.el('span', {
|
||||||
hidden: true,
|
hidden: true,
|
||||||
@ -13267,7 +13264,7 @@
|
|||||||
return $.event('change', null, _this.inputs.enabled);
|
return $.event('change', null, _this.inputs.enabled);
|
||||||
};
|
};
|
||||||
})(this));
|
})(this));
|
||||||
label = UI.checkbox('Prune Replies', 'Show Last');
|
label = UI.checkbox('Prune Replies', 'Show Last', this.active);
|
||||||
el = $.el('span', {
|
el = $.el('span', {
|
||||||
title: 'Maximum number of replies to show.'
|
title: 'Maximum number of replies to show.'
|
||||||
}, {
|
}, {
|
||||||
@ -13301,9 +13298,17 @@
|
|||||||
other.checked = false;
|
other.checked = false;
|
||||||
$.event('change', null, other);
|
$.event('change', null, other);
|
||||||
}
|
}
|
||||||
return $.cb.checked.call(this);
|
return ReplyPruning.active = this.checked;
|
||||||
|
},
|
||||||
|
showIfHidden: function(id) {
|
||||||
|
var ref;
|
||||||
|
if ((ref = ReplyPruning.container) != null ? ref.getElementById(id) : void 0) {
|
||||||
|
ReplyPruning.inputs.enabled.checked = false;
|
||||||
|
return $.event('change', null, ReplyPruning.inputs.enabled);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
node: function() {
|
node: function() {
|
||||||
|
var ref;
|
||||||
ReplyPruning.thread = this;
|
ReplyPruning.thread = this;
|
||||||
this.posts.forEach(function(post) {
|
this.posts.forEach(function(post) {
|
||||||
if (post.isReply) {
|
if (post.isReply) {
|
||||||
@ -13313,6 +13318,9 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (ReplyPruning.active && /^#p\d+$/.test(location.hash) && (0 <= (ref = this.posts.keys.indexOf(location.hash.slice(2))) && ref < 1 + Math.max(ReplyPruning.total - +Conf["Max Replies"], 0))) {
|
||||||
|
ReplyPruning.active = ReplyPruning.inputs.enabled.checked = false;
|
||||||
|
}
|
||||||
$.after(this.OP.nodes.root, ReplyPruning.summary);
|
$.after(this.OP.nodes.root, ReplyPruning.summary);
|
||||||
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
|
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
|
||||||
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
|
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
|
||||||
@ -13336,7 +13344,7 @@
|
|||||||
},
|
},
|
||||||
update: function() {
|
update: function() {
|
||||||
var frag, hidden2, post, posts;
|
var frag, hidden2, post, posts;
|
||||||
hidden2 = Conf['Prune Replies'] ? Math.max(ReplyPruning.total - +Conf["Max Replies"], 0) : 0;
|
hidden2 = ReplyPruning.active ? Math.max(ReplyPruning.total - +Conf["Max Replies"], 0) : 0;
|
||||||
posts = ReplyPruning.thread.posts;
|
posts = ReplyPruning.thread.posts;
|
||||||
if (ReplyPruning.hidden < hidden2) {
|
if (ReplyPruning.hidden < hidden2) {
|
||||||
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
|
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
|
||||||
@ -13364,7 +13372,7 @@
|
|||||||
$.after(ReplyPruning.summary, frag);
|
$.after(ReplyPruning.summary, frag);
|
||||||
$.event('PostsInserted');
|
$.event('PostsInserted');
|
||||||
}
|
}
|
||||||
ReplyPruning.summary.textContent = Conf['Prune Replies'] ? Build.summaryText('+', ReplyPruning.hidden, ReplyPruning.hiddenFiles) : Build.summaryText('-', ReplyPruning.total, ReplyPruning.totalFiles);
|
ReplyPruning.summary.textContent = ReplyPruning.active ? Build.summaryText('+', ReplyPruning.hidden, ReplyPruning.hiddenFiles) : Build.summaryText('-', ReplyPruning.total, ReplyPruning.totalFiles);
|
||||||
return ReplyPruning.summary.hidden = ReplyPruning.total <= +Conf["Max Replies"];
|
return ReplyPruning.summary.hidden = ReplyPruning.total <= +Conf["Max Replies"];
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -14772,12 +14780,12 @@
|
|||||||
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
|
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
|
||||||
},
|
},
|
||||||
ready: function() {
|
ready: function() {
|
||||||
Unread.setLine(true);
|
|
||||||
Unread.read();
|
|
||||||
Unread.update();
|
|
||||||
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
|
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
|
||||||
Unread.scroll();
|
Unread.scroll();
|
||||||
}
|
}
|
||||||
|
Unread.setLine(true);
|
||||||
|
Unread.read();
|
||||||
|
Unread.update();
|
||||||
$.on(d, 'scroll visibilitychange', Unread.read);
|
$.on(d, 'scroll visibilitychange', Unread.read);
|
||||||
if (Conf['Unread Line']) {
|
if (Conf['Unread Line']) {
|
||||||
return $.on(d, 'visibilitychange', Unread.setLine);
|
return $.on(d, 'visibilitychange', Unread.setLine);
|
||||||
@ -14791,10 +14799,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
scroll: function() {
|
scroll: function() {
|
||||||
var hash, position, root;
|
var hash, position, ref, root;
|
||||||
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
|
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ReplyPruning.showIfHidden((ref = Unread.position) != null ? ref.data.nodes.root.id : void 0);
|
||||||
position = Unread.positionPrev();
|
position = Unread.positionPrev();
|
||||||
while (position) {
|
while (position) {
|
||||||
root = position.data.nodes.root;
|
root = position.data.nodes.root;
|
||||||
@ -14981,7 +14990,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Unread.hr.hidden || d.hidden || (force === true)) {
|
if (Unread.hr.hidden || d.hidden || (force === true)) {
|
||||||
if (Unread.linePosition = Unread.positionPrev()) {
|
if ((Unread.linePosition = Unread.positionPrev())) {
|
||||||
$.after(Unread.linePosition.data.nodes.root, Unread.hr);
|
$.after(Unread.linePosition.data.nodes.root, Unread.hr);
|
||||||
} else {
|
} else {
|
||||||
$.rm(Unread.hr);
|
$.rm(Unread.hr);
|
||||||
|
|||||||
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.30.0' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.30.1' />
|
||||||
</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.30.0' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.30.1' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"version": "1.11.30.0",
|
"version": "1.11.30.1",
|
||||||
"date": "2016-04-04T00:26:46.773Z"
|
"date": "2016-04-04T07:32:48.540Z"
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user