Release 4chan X v1.11.31.1.

This commit is contained in:
ccd0 2016-04-23 01:55:33 -07:00
parent ba784d5403
commit 7026b06cb8
13 changed files with 74 additions and 120 deletions

View File

@ -4,6 +4,11 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
### v1.11.31 ### v1.11.31
**v1.11.31.1** *(2016-04-23)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.31.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.31.1/builds/4chan-X-noupdate.crx "Chromium version")]
- Fix regression from v1.11.31.0 causing "Post successful" notifications not to appear.
- Fix fullscreen for Vimeo embeds.
- Update Twitch embedding.
**v1.11.31.0** *(2016-04-21)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.31.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.31.0/builds/4chan-X-noupdate.crx "Chromium version")] **v1.11.31.0** *(2016-04-21)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.31.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.31.0/builds/4chan-X-noupdate.crx "Chromium version")]
- Based on v1.11.30.3. - Based on v1.11.30.3.
- Fix scrolling issue that happened when `Reply Pruning` removes posts from above you in a thread. - Fix scrolling issue that happened when `Reply Pruning` removes posts from above you in a thread.

Binary file not shown.

View File

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

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.11.31.0 // @version 1.11.31.1
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -129,7 +129,7 @@ d = document;
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.31.0', VERSION: '1.11.31.1',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -12872,7 +12872,7 @@ Embedding = (function() {
} }
$.on(embed, 'click', Embedding.cb.toggle); $.on(embed, 'click', Embedding.cb.toggle);
$.after(link, [$.tn(' '), embed]); $.after(link, [$.tn(' '), embed]);
if (Conf['Auto-embed'] && !Conf['Floating Embeds'] && !post.isFetchedQuote && key !== 'TwitchTV') { if (Conf['Auto-embed'] && !Conf['Floating Embeds'] && !post.isFetchedQuote) {
return $.asap((function() { return $.asap((function() {
return doc.contains(embed); return doc.contains(embed);
}), function() { }), function() {
@ -13177,39 +13177,19 @@ Embedding = (function() {
} }
}, { }, {
key: 'TwitchTV', key: 'TwitchTV',
regExp: /^\w+:\/\/(?:www\.)?twitch\.tv\/(\w[^#\&\?]*)/, regExp: /^\w+:\/\/(?:www\.|secure\.)?twitch\.tv\/(\w[^#\&\?]*)/,
style: "border: none; width: 620px; height: 378px;",
el: function(a) { el: function(a) {
var _, channel, flashvars, id, idprefix, j, len, obj, part, ref, result, seconds, start, type; var el, m, time, url;
if (result = /(\w+)\/([bcv])\/(\d+)/i.exec(a.dataset.uid)) { m = a.dataset.uid.match(/(\w+)(?:\/v\/(\d+))?/);
_ = result[0], channel = result[1], type = result[2], id = result[3]; url = "//player.twitch.tv/?" + (m[2] ? "video=v" + m[2] : "channel=" + m[1]) + "&autoplay=false";
idprefix = type === 'b' ? 'a' : type; if ((time = a.dataset.href.match(/\bt=(\w+)/))) {
flashvars = "channel=" + channel + "&start_volume=25&auto_play=false&videoId=" + idprefix + id; url += "&time=" + time[1];
if (start = a.dataset.href.match(/\bt=(\w+)/)) {
seconds = 0;
ref = start[1].match(/\d+[hms]/g);
for (j = 0, len = ref.length; j < len; j++) {
part = ref[j];
seconds += +part.slice(0, -1) * {
'h': 3600,
'm': 60,
's': 1
}[part.slice(-1)];
}
flashvars += "&initial_time=" + seconds;
}
} else {
channel = (/(\w+)/.exec(a.dataset.uid))[0];
flashvars = "channel=" + channel + "&start_volume=25&auto_play=false";
} }
obj = $.el('object', { el = $.el('iframe', {
data: '//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf' src: url
}); });
$.extend(obj, { el.setAttribute("allowfullscreen", "true");
innerHTML: "<param name=\"allowFullScreen\" value=\"true\"><param name=\"flashvars\">" return el;
});
obj.children[1].value = flashvars;
return obj;
} }
}, { }, {
key: 'Vocaroo', key: 'Vocaroo',
@ -13229,9 +13209,12 @@ Embedding = (function() {
key: 'Vimeo', key: 'Vimeo',
regExp: /^\w+:\/\/(?:www\.)?vimeo\.com\/(\d+)/, regExp: /^\w+:\/\/(?:www\.)?vimeo\.com\/(\d+)/,
el: function(a) { el: function(a) {
return $.el('iframe', { var el;
el = $.el('iframe', {
src: "//player.vimeo.com/video/" + a.dataset.uid + "?wmode=opaque" src: "//player.vimeo.com/video/" + a.dataset.uid + "?wmode=opaque"
}); });
el.setAttribute("allowfullscreen", "true");
return el;
}, },
title: { title: {
api: function(uid) { api: function(uid) {
@ -20077,10 +20060,6 @@ QR = (function() {
return; return;
} }
h1 = $('h1', resDoc); h1 = $('h1', resDoc);
QR.cleanNotifications();
if (Conf['Posting Success Notifications']) {
QR.notifications.push(new Notice('success', h1.textContent, 5));
}
ref2 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref2[0], threadID = ref2[1], postID = ref2[2]; ref2 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref2[0], threadID = ref2[1], postID = ref2[2];
postID = +postID; postID = +postID;
threadID = +threadID || postID; threadID = +threadID || postID;
@ -20113,6 +20092,10 @@ QR = (function() {
post.rm(); post.rm();
QR.captcha.setup(d.activeElement === QR.nodes.status); QR.captcha.setup(d.activeElement === QR.nodes.status);
} }
QR.cleanNotifications();
if (Conf['Posting Success Notifications']) {
QR.notifications.push(new Notice('success', h1.textContent, 5));
}
QR.cooldown.add(threadID, postID); QR.cooldown.add(threadID, postID);
URL = threadID === postID ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID : g.VIEW === 'index' && lastPostToThread && Conf['Open Post in New Tab'] ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID + "#p" + postID : void 0; URL = threadID === postID ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID : g.VIEW === 'index' && lastPostToThread && Conf['Open Post in New Tab'] ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID + "#p" + postID : void 0;
if (URL) { if (URL) {

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.31.0 // @version 1.11.31.1
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -129,7 +129,7 @@ d = document;
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.31.0', VERSION: '1.11.31.1',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -12872,7 +12872,7 @@ Embedding = (function() {
} }
$.on(embed, 'click', Embedding.cb.toggle); $.on(embed, 'click', Embedding.cb.toggle);
$.after(link, [$.tn(' '), embed]); $.after(link, [$.tn(' '), embed]);
if (Conf['Auto-embed'] && !Conf['Floating Embeds'] && !post.isFetchedQuote && key !== 'TwitchTV') { if (Conf['Auto-embed'] && !Conf['Floating Embeds'] && !post.isFetchedQuote) {
return $.asap((function() { return $.asap((function() {
return doc.contains(embed); return doc.contains(embed);
}), function() { }), function() {
@ -13177,39 +13177,19 @@ Embedding = (function() {
} }
}, { }, {
key: 'TwitchTV', key: 'TwitchTV',
regExp: /^\w+:\/\/(?:www\.)?twitch\.tv\/(\w[^#\&\?]*)/, regExp: /^\w+:\/\/(?:www\.|secure\.)?twitch\.tv\/(\w[^#\&\?]*)/,
style: "border: none; width: 620px; height: 378px;",
el: function(a) { el: function(a) {
var _, channel, flashvars, id, idprefix, j, len, obj, part, ref, result, seconds, start, type; var el, m, time, url;
if (result = /(\w+)\/([bcv])\/(\d+)/i.exec(a.dataset.uid)) { m = a.dataset.uid.match(/(\w+)(?:\/v\/(\d+))?/);
_ = result[0], channel = result[1], type = result[2], id = result[3]; url = "//player.twitch.tv/?" + (m[2] ? "video=v" + m[2] : "channel=" + m[1]) + "&autoplay=false";
idprefix = type === 'b' ? 'a' : type; if ((time = a.dataset.href.match(/\bt=(\w+)/))) {
flashvars = "channel=" + channel + "&start_volume=25&auto_play=false&videoId=" + idprefix + id; url += "&time=" + time[1];
if (start = a.dataset.href.match(/\bt=(\w+)/)) {
seconds = 0;
ref = start[1].match(/\d+[hms]/g);
for (j = 0, len = ref.length; j < len; j++) {
part = ref[j];
seconds += +part.slice(0, -1) * {
'h': 3600,
'm': 60,
's': 1
}[part.slice(-1)];
}
flashvars += "&initial_time=" + seconds;
}
} else {
channel = (/(\w+)/.exec(a.dataset.uid))[0];
flashvars = "channel=" + channel + "&start_volume=25&auto_play=false";
} }
obj = $.el('object', { el = $.el('iframe', {
data: '//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf' src: url
}); });
$.extend(obj, { el.setAttribute("allowfullscreen", "true");
innerHTML: "<param name=\"allowFullScreen\" value=\"true\"><param name=\"flashvars\">" return el;
});
obj.children[1].value = flashvars;
return obj;
} }
}, { }, {
key: 'Vocaroo', key: 'Vocaroo',
@ -13229,9 +13209,12 @@ Embedding = (function() {
key: 'Vimeo', key: 'Vimeo',
regExp: /^\w+:\/\/(?:www\.)?vimeo\.com\/(\d+)/, regExp: /^\w+:\/\/(?:www\.)?vimeo\.com\/(\d+)/,
el: function(a) { el: function(a) {
return $.el('iframe', { var el;
el = $.el('iframe', {
src: "//player.vimeo.com/video/" + a.dataset.uid + "?wmode=opaque" src: "//player.vimeo.com/video/" + a.dataset.uid + "?wmode=opaque"
}); });
el.setAttribute("allowfullscreen", "true");
return el;
}, },
title: { title: {
api: function(uid) { api: function(uid) {
@ -20077,10 +20060,6 @@ QR = (function() {
return; return;
} }
h1 = $('h1', resDoc); h1 = $('h1', resDoc);
QR.cleanNotifications();
if (Conf['Posting Success Notifications']) {
QR.notifications.push(new Notice('success', h1.textContent, 5));
}
ref2 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref2[0], threadID = ref2[1], postID = ref2[2]; ref2 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref2[0], threadID = ref2[1], postID = ref2[2];
postID = +postID; postID = +postID;
threadID = +threadID || postID; threadID = +threadID || postID;
@ -20113,6 +20092,10 @@ QR = (function() {
post.rm(); post.rm();
QR.captcha.setup(d.activeElement === QR.nodes.status); QR.captcha.setup(d.activeElement === QR.nodes.status);
} }
QR.cleanNotifications();
if (Conf['Posting Success Notifications']) {
QR.notifications.push(new Notice('success', h1.textContent, 5));
}
QR.cooldown.add(threadID, postID); QR.cooldown.add(threadID, postID);
URL = threadID === postID ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID : g.VIEW === 'index' && lastPostToThread && Conf['Open Post in New Tab'] ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID + "#p" + postID : void 0; URL = threadID === postID ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID : g.VIEW === 'index' && lastPostToThread && Conf['Open Post in New Tab'] ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID + "#p" + postID : void 0;
if (URL) { if (URL) {

Binary file not shown.

View File

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

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.31.0 // @version 1.11.31.1
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -129,7 +129,7 @@ d = document;
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.31.0', VERSION: '1.11.31.1',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -12872,7 +12872,7 @@ Embedding = (function() {
} }
$.on(embed, 'click', Embedding.cb.toggle); $.on(embed, 'click', Embedding.cb.toggle);
$.after(link, [$.tn(' '), embed]); $.after(link, [$.tn(' '), embed]);
if (Conf['Auto-embed'] && !Conf['Floating Embeds'] && !post.isFetchedQuote && key !== 'TwitchTV') { if (Conf['Auto-embed'] && !Conf['Floating Embeds'] && !post.isFetchedQuote) {
return $.asap((function() { return $.asap((function() {
return doc.contains(embed); return doc.contains(embed);
}), function() { }), function() {
@ -13177,39 +13177,19 @@ Embedding = (function() {
} }
}, { }, {
key: 'TwitchTV', key: 'TwitchTV',
regExp: /^\w+:\/\/(?:www\.)?twitch\.tv\/(\w[^#\&\?]*)/, regExp: /^\w+:\/\/(?:www\.|secure\.)?twitch\.tv\/(\w[^#\&\?]*)/,
style: "border: none; width: 620px; height: 378px;",
el: function(a) { el: function(a) {
var _, channel, flashvars, id, idprefix, j, len, obj, part, ref, result, seconds, start, type; var el, m, time, url;
if (result = /(\w+)\/([bcv])\/(\d+)/i.exec(a.dataset.uid)) { m = a.dataset.uid.match(/(\w+)(?:\/v\/(\d+))?/);
_ = result[0], channel = result[1], type = result[2], id = result[3]; url = "//player.twitch.tv/?" + (m[2] ? "video=v" + m[2] : "channel=" + m[1]) + "&autoplay=false";
idprefix = type === 'b' ? 'a' : type; if ((time = a.dataset.href.match(/\bt=(\w+)/))) {
flashvars = "channel=" + channel + "&start_volume=25&auto_play=false&videoId=" + idprefix + id; url += "&time=" + time[1];
if (start = a.dataset.href.match(/\bt=(\w+)/)) {
seconds = 0;
ref = start[1].match(/\d+[hms]/g);
for (j = 0, len = ref.length; j < len; j++) {
part = ref[j];
seconds += +part.slice(0, -1) * {
'h': 3600,
'm': 60,
's': 1
}[part.slice(-1)];
}
flashvars += "&initial_time=" + seconds;
}
} else {
channel = (/(\w+)/.exec(a.dataset.uid))[0];
flashvars = "channel=" + channel + "&start_volume=25&auto_play=false";
} }
obj = $.el('object', { el = $.el('iframe', {
data: '//www-cdn.jtvnw.net/swflibs/TwitchPlayer.swf' src: url
}); });
$.extend(obj, { el.setAttribute("allowfullscreen", "true");
innerHTML: "<param name=\"allowFullScreen\" value=\"true\"><param name=\"flashvars\">" return el;
});
obj.children[1].value = flashvars;
return obj;
} }
}, { }, {
key: 'Vocaroo', key: 'Vocaroo',
@ -13229,9 +13209,12 @@ Embedding = (function() {
key: 'Vimeo', key: 'Vimeo',
regExp: /^\w+:\/\/(?:www\.)?vimeo\.com\/(\d+)/, regExp: /^\w+:\/\/(?:www\.)?vimeo\.com\/(\d+)/,
el: function(a) { el: function(a) {
return $.el('iframe', { var el;
el = $.el('iframe', {
src: "//player.vimeo.com/video/" + a.dataset.uid + "?wmode=opaque" src: "//player.vimeo.com/video/" + a.dataset.uid + "?wmode=opaque"
}); });
el.setAttribute("allowfullscreen", "true");
return el;
}, },
title: { title: {
api: function(uid) { api: function(uid) {
@ -20077,10 +20060,6 @@ QR = (function() {
return; return;
} }
h1 = $('h1', resDoc); h1 = $('h1', resDoc);
QR.cleanNotifications();
if (Conf['Posting Success Notifications']) {
QR.notifications.push(new Notice('success', h1.textContent, 5));
}
ref2 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref2[0], threadID = ref2[1], postID = ref2[2]; ref2 = h1.nextSibling.textContent.match(/thread:(\d+),no:(\d+)/), _ = ref2[0], threadID = ref2[1], postID = ref2[2];
postID = +postID; postID = +postID;
threadID = +threadID || postID; threadID = +threadID || postID;
@ -20113,6 +20092,10 @@ QR = (function() {
post.rm(); post.rm();
QR.captcha.setup(d.activeElement === QR.nodes.status); QR.captcha.setup(d.activeElement === QR.nodes.status);
} }
QR.cleanNotifications();
if (Conf['Posting Success Notifications']) {
QR.notifications.push(new Notice('success', h1.textContent, 5));
}
QR.cooldown.add(threadID, postID); QR.cooldown.add(threadID, postID);
URL = threadID === postID ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID : g.VIEW === 'index' && lastPostToThread && Conf['Open Post in New Tab'] ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID + "#p" + postID : void 0; URL = threadID === postID ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID : g.VIEW === 'index' && lastPostToThread && Conf['Open Post in New Tab'] ? window.location.origin + "/" + g.BOARD + "/thread/" + threadID + "#p" + postID : void 0;
if (URL) { if (URL) {

Binary file not shown.

View File

@ -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.31.0' /> <updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.31.1' />
</app> </app>
</gupdate> </gupdate>

View File

@ -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.31.0' /> <updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.31.1' />
</app> </app>
</gupdate> </gupdate>

View File

@ -1,4 +1,4 @@
{ {
"version": "1.11.31.0", "version": "1.11.31.1",
"date": "2016-04-21T07:02:56.784Z" "date": "2016-04-23T08:49:07.223Z"
} }