Release 4chan X v1.11.3.2.

This commit is contained in:
ccd0 2015-07-05 03:22:25 -07:00
parent 50aebd3ddd
commit afe28309b1
13 changed files with 135 additions and 51 deletions

View File

@ -4,6 +4,9 @@ The links to individual versions below are to copies of the script with the upda
### v1.11.3
**v1.11.3.2** *(2015-07-05)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.3.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.3.2/builds/4chan-X-noupdate.crx "Chromium version")]
- Get posting from URLs, WebM titles, and Vocaroo/Clyp embedding working in Safari.
**v1.11.3.1** *(2015-07-04)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.3.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.3.1/builds/4chan-X-noupdate.crx "Chromium version")]
- Make posting from URL more efficient, and make it work in Tampermonkey.

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
// @version 1.11.3.1
// @version 1.11.3.2
// @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.3.1
// @version 1.11.3.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@ -412,7 +412,7 @@
doc = d.documentElement;
g = {
VERSION: '1.11.3.1',
VERSION: '1.11.3.2',
NAMESPACE: '4chan X.',
boards: {}
};
@ -4920,17 +4920,18 @@
CrossOrigin = (function() {
return {
binary: function(url, cb, headers) {
var options, workaround;
var options, ref, workaround;
if (headers == null) {
headers = {};
}
workaround = !GM_info.scriptHandler && /^[12]\.|^3\.[01](?!\d)/.test(GM_info.version);
workaround = $.engine === 'gecko' && (typeof GM_info !== "undefined" && GM_info !== null) && /^[0-2]\.|^3\.[01](?!\d)/.test(GM_info.version);
workaround || (workaround = (typeof GM_info !== "undefined" && GM_info !== null ? (ref = GM_info.script) != null ? ref.includeJSB : void 0 : void 0) != null);
options = {
method: "GET",
url: url,
headers: headers,
onload: function(xhr) {
var contentDisposition, contentType, data, i, r, ref, ref1;
var contentDisposition, contentType, data, i, r, ref1, ref2;
if (workaround) {
r = xhr.responseText;
data = new Uint8Array(r.length);
@ -4942,8 +4943,13 @@
} else {
data = new Uint8Array(xhr.response);
}
contentType = (ref = xhr.responseHeaders.match(/Content-Type:\s*(.*)/i)) != null ? ref[1] : void 0;
contentDisposition = (ref1 = xhr.responseHeaders.match(/Content-Disposition:\s*(.*)/i)) != null ? ref1[1] : void 0;
if (typeof xhr.responseHeaders === 'object') {
contentType = xhr.responseHeaders['Content-Type'];
contentDisposition = xhr.responseHeaders['Content-Disposition'];
} else {
contentType = (ref1 = xhr.responseHeaders.match(/Content-Type:\s*(.*)/i)) != null ? ref1[1] : void 0;
contentDisposition = (ref2 = xhr.responseHeaders.match(/Content-Disposition:\s*(.*)/i)) != null ? ref2[1] : void 0;
}
return cb(data, contentType, contentDisposition);
},
onerror: function() {
@ -4954,7 +4960,7 @@
}
};
if (workaround) {
options.overrideMimeType = 'text/plain; charset=x-user-defined';
options.overrideMimeType = options.mimeType = 'text/plain; charset=x-user-defined';
} else {
options.responseType = 'arraybuffer';
}
@ -4962,7 +4968,7 @@
},
file: function(url, cb) {
return CrossOrigin.binary(url, function(data, contentType, contentDisposition) {
var blob, match, mime, name, ref, ref1, ref2;
var blob, match, mime, name, ref, ref1, ref2, ref3;
if (data == null) {
return cb(null);
}
@ -4972,6 +4978,9 @@
if (match) {
name = match.replace(/\\"/g, '"');
}
if ((typeof GM_info !== "undefined" && GM_info !== null ? (ref3 = GM_info.script) != null ? ref3.includeJSB : void 0 : void 0) != null) {
mime = QR.typeFromExtension[name.match(/[^.]*$/)[0].toLowerCase()] || 'application/octet-stream';
}
blob = new Blob([data], {
type: mime
});
@ -6764,6 +6773,15 @@
QR = {
mimeTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/vnd.adobe.flash.movie', 'application/x-shockwave-flash', 'video/webm'],
typeFromExtension: {
'jpg': 'image/jpeg',
'jpeg': 'image/jpeg',
'png': 'image/png',
'gif': 'image/gif',
'pdf': 'application/pdf',
'swf': 'application/vnd.adobe.flash.movie',
'webm': 'video/webm'
},
init: function() {
var noscript, sc, version;
if (!Conf['Quick Reply']) {
@ -9466,6 +9484,9 @@
var el, event, isVideo, onerror, onload;
isVideo = /^video\//.test(this.file.type);
el = $.el(isVideo ? 'video' : 'img');
if (isVideo && !el.canPlayType(this.file.type)) {
return;
}
event = isVideo ? 'loadeddata' : 'load';
onload = (function(_this) {
return function() {
@ -11817,11 +11838,14 @@
regExp: /^\w+:\/\/(?:www\.)?vocaroo\.com\/i\/(\w+)/,
style: '',
el: function(a) {
return $.el('audio', {
var el, type;
el = $.el('audio', {
controls: true,
preload: 'auto',
src: "http://vocaroo.com/media_command.php?media=" + a.dataset.uid + "&command=download_ogg"
preload: 'auto'
});
type = el.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
el.src = "http://vocaroo.com/media_command.php?media=" + a.dataset.uid + "&command=download_" + type;
return el;
}
}, {
key: 'Vimeo',
@ -11961,11 +11985,14 @@
regExp: /^\w+:\/\/(?:www\.)?clyp\.it\/(\w+)/,
style: '',
el: function(a) {
return $.el('audio', {
var el, type;
el = $.el('audio', {
controls: true,
preload: 'auto',
src: "http://clyp.it/" + a.dataset.uid + ".ogg"
preload: 'auto'
});
type = el.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
el.src = "http://clyp.it/" + a.dataset.uid + "." + type;
return el;
}
}, {
key: 'Loopvid-dummy',

Binary file not shown.

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
// @version 1.11.3.1
// @version 1.11.3.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@ -411,7 +411,7 @@
doc = d.documentElement;
g = {
VERSION: '1.11.3.1',
VERSION: '1.11.3.2',
NAMESPACE: '4chan X.',
boards: {}
};
@ -4919,17 +4919,18 @@
CrossOrigin = (function() {
return {
binary: function(url, cb, headers) {
var options, workaround;
var options, ref, workaround;
if (headers == null) {
headers = {};
}
workaround = !GM_info.scriptHandler && /^[12]\.|^3\.[01](?!\d)/.test(GM_info.version);
workaround = $.engine === 'gecko' && (typeof GM_info !== "undefined" && GM_info !== null) && /^[0-2]\.|^3\.[01](?!\d)/.test(GM_info.version);
workaround || (workaround = (typeof GM_info !== "undefined" && GM_info !== null ? (ref = GM_info.script) != null ? ref.includeJSB : void 0 : void 0) != null);
options = {
method: "GET",
url: url,
headers: headers,
onload: function(xhr) {
var contentDisposition, contentType, data, i, r, ref, ref1;
var contentDisposition, contentType, data, i, r, ref1, ref2;
if (workaround) {
r = xhr.responseText;
data = new Uint8Array(r.length);
@ -4941,8 +4942,13 @@
} else {
data = new Uint8Array(xhr.response);
}
contentType = (ref = xhr.responseHeaders.match(/Content-Type:\s*(.*)/i)) != null ? ref[1] : void 0;
contentDisposition = (ref1 = xhr.responseHeaders.match(/Content-Disposition:\s*(.*)/i)) != null ? ref1[1] : void 0;
if (typeof xhr.responseHeaders === 'object') {
contentType = xhr.responseHeaders['Content-Type'];
contentDisposition = xhr.responseHeaders['Content-Disposition'];
} else {
contentType = (ref1 = xhr.responseHeaders.match(/Content-Type:\s*(.*)/i)) != null ? ref1[1] : void 0;
contentDisposition = (ref2 = xhr.responseHeaders.match(/Content-Disposition:\s*(.*)/i)) != null ? ref2[1] : void 0;
}
return cb(data, contentType, contentDisposition);
},
onerror: function() {
@ -4953,7 +4959,7 @@
}
};
if (workaround) {
options.overrideMimeType = 'text/plain; charset=x-user-defined';
options.overrideMimeType = options.mimeType = 'text/plain; charset=x-user-defined';
} else {
options.responseType = 'arraybuffer';
}
@ -4961,7 +4967,7 @@
},
file: function(url, cb) {
return CrossOrigin.binary(url, function(data, contentType, contentDisposition) {
var blob, match, mime, name, ref, ref1, ref2;
var blob, match, mime, name, ref, ref1, ref2, ref3;
if (data == null) {
return cb(null);
}
@ -4971,6 +4977,9 @@
if (match) {
name = match.replace(/\\"/g, '"');
}
if ((typeof GM_info !== "undefined" && GM_info !== null ? (ref3 = GM_info.script) != null ? ref3.includeJSB : void 0 : void 0) != null) {
mime = QR.typeFromExtension[name.match(/[^.]*$/)[0].toLowerCase()] || 'application/octet-stream';
}
blob = new Blob([data], {
type: mime
});
@ -6763,6 +6772,15 @@
QR = {
mimeTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/vnd.adobe.flash.movie', 'application/x-shockwave-flash', 'video/webm'],
typeFromExtension: {
'jpg': 'image/jpeg',
'jpeg': 'image/jpeg',
'png': 'image/png',
'gif': 'image/gif',
'pdf': 'application/pdf',
'swf': 'application/vnd.adobe.flash.movie',
'webm': 'video/webm'
},
init: function() {
var noscript, sc, version;
if (!Conf['Quick Reply']) {
@ -9465,6 +9483,9 @@
var el, event, isVideo, onerror, onload;
isVideo = /^video\//.test(this.file.type);
el = $.el(isVideo ? 'video' : 'img');
if (isVideo && !el.canPlayType(this.file.type)) {
return;
}
event = isVideo ? 'loadeddata' : 'load';
onload = (function(_this) {
return function() {
@ -11816,11 +11837,14 @@
regExp: /^\w+:\/\/(?:www\.)?vocaroo\.com\/i\/(\w+)/,
style: '',
el: function(a) {
return $.el('audio', {
var el, type;
el = $.el('audio', {
controls: true,
preload: 'auto',
src: "http://vocaroo.com/media_command.php?media=" + a.dataset.uid + "&command=download_ogg"
preload: 'auto'
});
type = el.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
el.src = "http://vocaroo.com/media_command.php?media=" + a.dataset.uid + "&command=download_" + type;
return el;
}
}, {
key: 'Vimeo',
@ -11960,11 +11984,14 @@
regExp: /^\w+:\/\/(?:www\.)?clyp\.it\/(\w+)/,
style: '',
el: function(a) {
return $.el('audio', {
var el, type;
el = $.el('audio', {
controls: true,
preload: 'auto',
src: "http://clyp.it/" + a.dataset.uid + ".ogg"
preload: 'auto'
});
type = el.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
el.src = "http://clyp.it/" + a.dataset.uid + "." + type;
return el;
}
}, {
key: 'Loopvid-dummy',

Binary file not shown.

View File

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

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
// @version 1.11.3.1
// @version 1.11.3.2
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@ -412,7 +412,7 @@
doc = d.documentElement;
g = {
VERSION: '1.11.3.1',
VERSION: '1.11.3.2',
NAMESPACE: '4chan X.',
boards: {}
};
@ -4920,17 +4920,18 @@
CrossOrigin = (function() {
return {
binary: function(url, cb, headers) {
var options, workaround;
var options, ref, workaround;
if (headers == null) {
headers = {};
}
workaround = !GM_info.scriptHandler && /^[12]\.|^3\.[01](?!\d)/.test(GM_info.version);
workaround = $.engine === 'gecko' && (typeof GM_info !== "undefined" && GM_info !== null) && /^[0-2]\.|^3\.[01](?!\d)/.test(GM_info.version);
workaround || (workaround = (typeof GM_info !== "undefined" && GM_info !== null ? (ref = GM_info.script) != null ? ref.includeJSB : void 0 : void 0) != null);
options = {
method: "GET",
url: url,
headers: headers,
onload: function(xhr) {
var contentDisposition, contentType, data, i, r, ref, ref1;
var contentDisposition, contentType, data, i, r, ref1, ref2;
if (workaround) {
r = xhr.responseText;
data = new Uint8Array(r.length);
@ -4942,8 +4943,13 @@
} else {
data = new Uint8Array(xhr.response);
}
contentType = (ref = xhr.responseHeaders.match(/Content-Type:\s*(.*)/i)) != null ? ref[1] : void 0;
contentDisposition = (ref1 = xhr.responseHeaders.match(/Content-Disposition:\s*(.*)/i)) != null ? ref1[1] : void 0;
if (typeof xhr.responseHeaders === 'object') {
contentType = xhr.responseHeaders['Content-Type'];
contentDisposition = xhr.responseHeaders['Content-Disposition'];
} else {
contentType = (ref1 = xhr.responseHeaders.match(/Content-Type:\s*(.*)/i)) != null ? ref1[1] : void 0;
contentDisposition = (ref2 = xhr.responseHeaders.match(/Content-Disposition:\s*(.*)/i)) != null ? ref2[1] : void 0;
}
return cb(data, contentType, contentDisposition);
},
onerror: function() {
@ -4954,7 +4960,7 @@
}
};
if (workaround) {
options.overrideMimeType = 'text/plain; charset=x-user-defined';
options.overrideMimeType = options.mimeType = 'text/plain; charset=x-user-defined';
} else {
options.responseType = 'arraybuffer';
}
@ -4962,7 +4968,7 @@
},
file: function(url, cb) {
return CrossOrigin.binary(url, function(data, contentType, contentDisposition) {
var blob, match, mime, name, ref, ref1, ref2;
var blob, match, mime, name, ref, ref1, ref2, ref3;
if (data == null) {
return cb(null);
}
@ -4972,6 +4978,9 @@
if (match) {
name = match.replace(/\\"/g, '"');
}
if ((typeof GM_info !== "undefined" && GM_info !== null ? (ref3 = GM_info.script) != null ? ref3.includeJSB : void 0 : void 0) != null) {
mime = QR.typeFromExtension[name.match(/[^.]*$/)[0].toLowerCase()] || 'application/octet-stream';
}
blob = new Blob([data], {
type: mime
});
@ -6764,6 +6773,15 @@
QR = {
mimeTypes: ['image/jpeg', 'image/png', 'image/gif', 'application/pdf', 'application/vnd.adobe.flash.movie', 'application/x-shockwave-flash', 'video/webm'],
typeFromExtension: {
'jpg': 'image/jpeg',
'jpeg': 'image/jpeg',
'png': 'image/png',
'gif': 'image/gif',
'pdf': 'application/pdf',
'swf': 'application/vnd.adobe.flash.movie',
'webm': 'video/webm'
},
init: function() {
var noscript, sc, version;
if (!Conf['Quick Reply']) {
@ -9466,6 +9484,9 @@
var el, event, isVideo, onerror, onload;
isVideo = /^video\//.test(this.file.type);
el = $.el(isVideo ? 'video' : 'img');
if (isVideo && !el.canPlayType(this.file.type)) {
return;
}
event = isVideo ? 'loadeddata' : 'load';
onload = (function(_this) {
return function() {
@ -11817,11 +11838,14 @@
regExp: /^\w+:\/\/(?:www\.)?vocaroo\.com\/i\/(\w+)/,
style: '',
el: function(a) {
return $.el('audio', {
var el, type;
el = $.el('audio', {
controls: true,
preload: 'auto',
src: "http://vocaroo.com/media_command.php?media=" + a.dataset.uid + "&command=download_ogg"
preload: 'auto'
});
type = el.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
el.src = "http://vocaroo.com/media_command.php?media=" + a.dataset.uid + "&command=download_" + type;
return el;
}
}, {
key: 'Vimeo',
@ -11961,11 +11985,14 @@
regExp: /^\w+:\/\/(?:www\.)?clyp\.it\/(\w+)/,
style: '',
el: function(a) {
return $.el('audio', {
var el, type;
el = $.el('audio', {
controls: true,
preload: 'auto',
src: "http://clyp.it/" + a.dataset.uid + ".ogg"
preload: 'auto'
});
type = el.canPlayType('audio/ogg') ? 'ogg' : 'mp3';
el.src = "http://clyp.it/" + a.dataset.uid + "." + type;
return el;
}
}, {
key: 'Loopvid-dummy',

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://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.11.3.1' />
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.11.3.2' />
</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://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.11.3.1' />
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.11.3.2' />
</app>
</gupdate>

View File

@ -3,8 +3,8 @@
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": {
"name": "4chan X",
"version": "1.11.3.1",
"date": "2015-07-04T21:55:48.953Z",
"version": "1.11.3.2",
"date": "2015-07-05T10:21:13.314Z",
"repo": "https://github.com/ccd0/4chan-x/",
"page": "https://github.com/ccd0/4chan-x",
"downloads": "https://ccd0.github.io/4chan-x/builds/",