Release 4chan X v1.11.30.1.

This commit is contained in:
ccd0 2016-04-04 00:34:14 -07:00
parent 6e3ccfb264
commit 6c8479e7b1
13 changed files with 107 additions and 75 deletions

View File

@ -4,6 +4,11 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
### 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")]
- 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.

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
// @version 1.11.30.0
// @version 1.11.30.1
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X beta
// @version 1.11.30.0
// @version 1.11.30.1
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@ -430,10 +430,7 @@
customCooldown: 0,
customCooldownEnabled: true,
'Thread Quotes': false,
replyPruning: {
'Prune Replies': true,
'Max Replies': 1000
},
'Max Replies': 1000,
'Autohiding Scrollbar': false
};
@ -446,7 +443,7 @@
doc = d.documentElement;
g = {
VERSION: '1.11.30.0',
VERSION: '1.11.30.1',
NAMESPACE: '4chan X.',
boards: {}
};
@ -3159,10 +3156,13 @@
history.replaceState({}, '');
}
}
if ((hash = location.hash.slice(1)) && (el = $.id(hash))) {
return $.queueTask(function() {
return Header.scrollTo(el);
});
if ((hash = location.hash.slice(1))) {
ReplyPruning.showIfHidden(hash);
if ((el = $.id(hash))) {
return $.queueTask(function() {
return Header.scrollTo(el);
});
}
}
},
scrollTo: function(root, down, needed) {
@ -13251,10 +13251,7 @@
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
return;
}
if (Conf['Quote Threading'] && Conf['Thread Quotes'] && Conf['Prune Replies']) {
Conf['Prune Replies'] = false;
$.set('Prune Replies', false);
}
this.active = !(Conf['Quote Threading'] && Conf['Thread Quotes']);
this.container = $.frag();
this.summary = $.el('span', {
hidden: true,
@ -13267,7 +13264,7 @@
return $.event('change', null, _this.inputs.enabled);
};
})(this));
label = UI.checkbox('Prune Replies', 'Show Last');
label = UI.checkbox('Prune Replies', 'Show Last', this.active);
el = $.el('span', {
title: 'Maximum number of replies to show.'
}, {
@ -13301,9 +13298,17 @@
other.checked = false;
$.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() {
var ref;
ReplyPruning.thread = this;
this.posts.forEach(function(post) {
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);
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
@ -13336,7 +13344,7 @@
},
update: function() {
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;
if (ReplyPruning.hidden < hidden2) {
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
@ -13364,7 +13372,7 @@
$.after(ReplyPruning.summary, frag);
$.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"];
}
};
@ -14772,12 +14780,12 @@
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
},
ready: function() {
Unread.setLine(true);
Unread.read();
Unread.update();
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
Unread.scroll();
}
Unread.setLine(true);
Unread.read();
Unread.update();
$.on(d, 'scroll visibilitychange', Unread.read);
if (Conf['Unread Line']) {
return $.on(d, 'visibilitychange', Unread.setLine);
@ -14791,10 +14799,11 @@
}
},
scroll: function() {
var hash, position, root;
var hash, position, ref, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
ReplyPruning.showIfHidden((ref = Unread.position) != null ? ref.data.nodes.root.id : void 0);
position = Unread.positionPrev();
while (position) {
root = position.data.nodes.root;
@ -14981,7 +14990,7 @@
return;
}
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);
} else {
$.rm(Unread.hr);

Binary file not shown.

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
// @version 1.11.30.0
// @version 1.11.30.1
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@ -430,10 +430,7 @@
customCooldown: 0,
customCooldownEnabled: true,
'Thread Quotes': false,
replyPruning: {
'Prune Replies': true,
'Max Replies': 1000
},
'Max Replies': 1000,
'Autohiding Scrollbar': false
};
@ -446,7 +443,7 @@
doc = d.documentElement;
g = {
VERSION: '1.11.30.0',
VERSION: '1.11.30.1',
NAMESPACE: '4chan X.',
boards: {}
};
@ -3159,10 +3156,13 @@
history.replaceState({}, '');
}
}
if ((hash = location.hash.slice(1)) && (el = $.id(hash))) {
return $.queueTask(function() {
return Header.scrollTo(el);
});
if ((hash = location.hash.slice(1))) {
ReplyPruning.showIfHidden(hash);
if ((el = $.id(hash))) {
return $.queueTask(function() {
return Header.scrollTo(el);
});
}
}
},
scrollTo: function(root, down, needed) {
@ -13251,10 +13251,7 @@
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
return;
}
if (Conf['Quote Threading'] && Conf['Thread Quotes'] && Conf['Prune Replies']) {
Conf['Prune Replies'] = false;
$.set('Prune Replies', false);
}
this.active = !(Conf['Quote Threading'] && Conf['Thread Quotes']);
this.container = $.frag();
this.summary = $.el('span', {
hidden: true,
@ -13267,7 +13264,7 @@
return $.event('change', null, _this.inputs.enabled);
};
})(this));
label = UI.checkbox('Prune Replies', 'Show Last');
label = UI.checkbox('Prune Replies', 'Show Last', this.active);
el = $.el('span', {
title: 'Maximum number of replies to show.'
}, {
@ -13301,9 +13298,17 @@
other.checked = false;
$.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() {
var ref;
ReplyPruning.thread = this;
this.posts.forEach(function(post) {
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);
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
@ -13336,7 +13344,7 @@
},
update: function() {
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;
if (ReplyPruning.hidden < hidden2) {
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
@ -13364,7 +13372,7 @@
$.after(ReplyPruning.summary, frag);
$.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"];
}
};
@ -14772,12 +14780,12 @@
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
},
ready: function() {
Unread.setLine(true);
Unread.read();
Unread.update();
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
Unread.scroll();
}
Unread.setLine(true);
Unread.read();
Unread.update();
$.on(d, 'scroll visibilitychange', Unread.read);
if (Conf['Unread Line']) {
return $.on(d, 'visibilitychange', Unread.setLine);
@ -14791,10 +14799,11 @@
}
},
scroll: function() {
var hash, position, root;
var hash, position, ref, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
ReplyPruning.showIfHidden((ref = Unread.position) != null ? ref.data.nodes.root.id : void 0);
position = Unread.positionPrev();
while (position) {
root = position.data.nodes.root;
@ -14981,7 +14990,7 @@
return;
}
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);
} else {
$.rm(Unread.hr);

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
// @version 1.11.30.0
// @version 1.11.30.1
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
// @version 1.11.30.0
// @version 1.11.30.1
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@ -430,10 +430,7 @@
customCooldown: 0,
customCooldownEnabled: true,
'Thread Quotes': false,
replyPruning: {
'Prune Replies': true,
'Max Replies': 1000
},
'Max Replies': 1000,
'Autohiding Scrollbar': false
};
@ -446,7 +443,7 @@
doc = d.documentElement;
g = {
VERSION: '1.11.30.0',
VERSION: '1.11.30.1',
NAMESPACE: '4chan X.',
boards: {}
};
@ -3159,10 +3156,13 @@
history.replaceState({}, '');
}
}
if ((hash = location.hash.slice(1)) && (el = $.id(hash))) {
return $.queueTask(function() {
return Header.scrollTo(el);
});
if ((hash = location.hash.slice(1))) {
ReplyPruning.showIfHidden(hash);
if ((el = $.id(hash))) {
return $.queueTask(function() {
return Header.scrollTo(el);
});
}
}
},
scrollTo: function(root, down, needed) {
@ -13251,10 +13251,7 @@
if (!(g.VIEW === 'thread' && Conf['Reply Pruning'])) {
return;
}
if (Conf['Quote Threading'] && Conf['Thread Quotes'] && Conf['Prune Replies']) {
Conf['Prune Replies'] = false;
$.set('Prune Replies', false);
}
this.active = !(Conf['Quote Threading'] && Conf['Thread Quotes']);
this.container = $.frag();
this.summary = $.el('span', {
hidden: true,
@ -13267,7 +13264,7 @@
return $.event('change', null, _this.inputs.enabled);
};
})(this));
label = UI.checkbox('Prune Replies', 'Show Last');
label = UI.checkbox('Prune Replies', 'Show Last', this.active);
el = $.el('span', {
title: 'Maximum number of replies to show.'
}, {
@ -13301,9 +13298,17 @@
other.checked = false;
$.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() {
var ref;
ReplyPruning.thread = this;
this.posts.forEach(function(post) {
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);
$.on(ReplyPruning.inputs.enabled, 'change', ReplyPruning.update);
$.on(ReplyPruning.inputs.replies, 'change', ReplyPruning.update);
@ -13336,7 +13344,7 @@
},
update: function() {
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;
if (ReplyPruning.hidden < hidden2) {
while (ReplyPruning.hidden < hidden2 && ReplyPruning.position < posts.keys.length) {
@ -13364,7 +13372,7 @@
$.after(ReplyPruning.summary, frag);
$.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"];
}
};
@ -14772,12 +14780,12 @@
return $.on(d, 'ThreadUpdate', Unread.onUpdate);
},
ready: function() {
Unread.setLine(true);
Unread.read();
Unread.update();
if (Conf['Remember Last Read Post'] && Conf['Scroll to Last Read Post']) {
Unread.scroll();
}
Unread.setLine(true);
Unread.read();
Unread.update();
$.on(d, 'scroll visibilitychange', Unread.read);
if (Conf['Unread Line']) {
return $.on(d, 'visibilitychange', Unread.setLine);
@ -14791,10 +14799,11 @@
}
},
scroll: function() {
var hash, position, root;
var hash, position, ref, root;
if ((hash = location.hash.match(/\d+/)) && hash[0] in Unread.thread.posts) {
return;
}
ReplyPruning.showIfHidden((ref = Unread.position) != null ? ref.data.nodes.root.id : void 0);
position = Unread.positionPrev();
while (position) {
root = position.data.nodes.root;
@ -14981,7 +14990,7 @@
return;
}
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);
} else {
$.rm(Unread.hr);

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.30.0' />
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.30.1' />
</app>
</gupdate>

View File

@ -1,7 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.30.0' />
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.30.1' />
</app>
</gupdate>

View File

@ -1,4 +1,4 @@
{
"version": "1.11.30.0",
"date": "2016-04-04T00:26:46.773Z"
"version": "1.11.30.1",
"date": "2016-04-04T07:32:48.540Z"
}