Release 4chan X v1.14.14.5.

This commit is contained in:
ccd0 2019-12-13 01:32:08 -08:00
parent 46d14506ec
commit 76e15169dd
15 changed files with 108 additions and 134 deletions

View File

@ -4,6 +4,10 @@
### v1.14.14 ### v1.14.14
**v1.14.14.5** *(2019-12-13)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.14.5/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.14.5/builds/4chan-X-noupdate.crx)]
- Never mark Youtube videos as 'Forbidden or Private' since 403 errors are most likely from API throttling. #2327
- Update for changes in Tegaki (4chan drawing script). #2467
**v1.14.14.4** *(2019-09-16)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.14.4/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.14.4/builds/4chan-X-noupdate.crx)] **v1.14.14.4** *(2019-09-16)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.14.4/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.14.4/builds/4chan-X-noupdate.crx)]
- Merge v1.14.13.4: Update for quotelink changes on kissu.moe. - Merge v1.14.13.4: Update for quotelink changes on kissu.moe.
- Don't try to insert header etc. on .rss URLs. - Don't try to insert header etc. on .rss URLs.

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.14.14.4 // @version 1.14.14.5
// @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.14.14.4 // @version 1.14.14.5
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -211,7 +211,7 @@ docSet = function() {
}; };
g = { g = {
VERSION: '1.14.14.4', VERSION: '1.14.14.5',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
sites: Object.create(null), sites: Object.create(null),
boards: Object.create(null) boards: Object.create(null)
@ -488,7 +488,7 @@ Config = (function() {
'QR.personas': "#options:\"sage\";boards:jp;always", 'QR.personas': "#options:\"sage\";boards:jp;always",
sjisPreview: false sjisPreview: false
}, },
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\nhttps://cdnjs.cloudflare.com\nhttps://rawgit.com\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org', jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\nhttps://cdnjs.cloudflare.com\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org',
captchaLanguage: '', captchaLanguage: '',
time: '%m/%d/%y(%a)%H:%M:%S', time: '%m/%d/%y(%a)%H:%M:%S',
timeLocale: '', timeLocale: '',
@ -8798,7 +8798,7 @@ Redirect = (function() {
{ "uid": 10, "name": "warosu", "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", "boards": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "files": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "search": [ "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ] }, { "uid": 10, "name": "warosu", "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", "boards": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "files": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "search": [ "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ] },
{ "uid": 23, "name": "Desuarchive", "domain": "desuarchive.org", "http": true, "https": true, "software": "foolfuuka", "boards": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "files": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "reports": true }, { "uid": 23, "name": "Desuarchive", "domain": "desuarchive.org", "http": true, "https": true, "software": "foolfuuka", "boards": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "files": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "reports": true },
{ "uid": 24, "name": "fireden.net", "domain": "boards.fireden.net", "http": false, "https": true, "software": "foolfuuka", "boards": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "files": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "search": [ "cm", "co", "ic", "sci", "tg", "y" ] }, { "uid": 24, "name": "fireden.net", "domain": "boards.fireden.net", "http": false, "https": true, "software": "foolfuuka", "boards": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "files": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "search": [ "cm", "co", "ic", "sci", "tg", "y" ] },
{ "uid": 25, "name": "arch.b4k.co", "domain": "arch.b4k.co", "http": true, "https": true, "software": "foolfuuka", "boards": [ "g", "jp", "mlp", "v", "vp" ], "files": [ "v", "vp" ], "search": [ "v" ] }, { "uid": 25, "name": "arch.b4k.co", "domain": "arch.b4k.co", "http": true, "https": true, "software": "foolfuuka", "boards": [ "g", "jp", "mlp", "v", "vg", "vp" ], "files": [], "search": [ "v", "vg" ] },
{ "uid": 28, "name": "bstats", "domain": "archive.b-stats.org", "http": false, "https": true, "software": "foolfuuka", "boards": [ "f", "cm", "hm", "lgbt", "news", "qst", "trash", "y" ], "files": [] }, { "uid": 28, "name": "bstats", "domain": "archive.b-stats.org", "http": false, "https": true, "software": "foolfuuka", "boards": [ "f", "cm", "hm", "lgbt", "news", "qst", "trash", "y" ], "files": [] },
{ "uid": 29, "name": "Archived.Moe", "domain": "archived.moe", "http": true, "https": true, "software": "foolfuuka", "boards": [ "3", "a", "aco", "adv", "an", "asp", "b", "bant", "biz", "c", "can", "cgl", "ck", "cm", "co", "cock", "d", "diy", "e", "f", "fa", "fap", "fit", "fitlit", "g", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "int", "jp", "k", "lgbt", "lit", "m", "mlp", "mlpol", "mo", "mtv", "mu", "n", "news", "o", "out", "outsoc", "p", "po", "pol", "qa", "qst", "r", "r9k", "s", "s4s", "sci", "soc", "sp", "spa", "t", "tg", "toy", "trash", "trv", "tv", "u", "v", "vg", "vint", "vip", "vp", "vr", "w", "wg", "wsg", "wsr", "x", "y" ], "files": [ "can", "cock", "fap", "fitlit", "gd", "mlpol", "mo", "mtv", "outsoc", "po", "qst", "spa", "vint", "vip" ], "search": [ "aco", "adv", "an", "asp", "b", "bant", "c", "can", "cgl", "ck", "cm", "cock", "con", "d", "diy", "e", "f", "fap", "fitlit", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "lgbt", "lit", "mlpol", "mo", "mtv", "n", "news", "o", "out", "outsoc", "p", "po", "q", "qa", "qst", "r", "s", "soc", "spa", "trv", "u", "vint", "vip", "w", "wg", "wsg", "wsr", "x", "y" ], "reports": true }, { "uid": 29, "name": "Archived.Moe", "domain": "archived.moe", "http": true, "https": true, "software": "foolfuuka", "boards": [ "3", "a", "aco", "adv", "an", "asp", "b", "bant", "biz", "c", "can", "cgl", "ck", "cm", "co", "cock", "d", "diy", "e", "f", "fa", "fap", "fit", "fitlit", "g", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "int", "jp", "k", "lgbt", "lit", "m", "mlp", "mlpol", "mo", "mtv", "mu", "n", "news", "o", "out", "outsoc", "p", "po", "pol", "qa", "qst", "r", "r9k", "s", "s4s", "sci", "soc", "sp", "spa", "t", "tg", "toy", "trash", "trv", "tv", "u", "v", "vg", "vint", "vip", "vp", "vr", "w", "wg", "wsg", "wsr", "x", "y" ], "files": [ "can", "cock", "fap", "fitlit", "gd", "mlpol", "mo", "mtv", "outsoc", "po", "qst", "spa", "vint", "vip" ], "search": [ "aco", "adv", "an", "asp", "b", "bant", "c", "can", "cgl", "ck", "cm", "cock", "con", "d", "diy", "e", "f", "fap", "fitlit", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "lgbt", "lit", "mlpol", "mo", "mtv", "n", "news", "o", "out", "outsoc", "p", "po", "q", "qa", "qst", "r", "s", "soc", "spa", "trv", "u", "vint", "vip", "w", "wg", "wsg", "wsr", "x", "y" ], "reports": true },
{ "uid": 30, "name": "TheBArchive.com", "domain": "thebarchive.com", "http": true, "https": true, "software": "foolfuuka", "boards": [ "b", "bant" ], "files": [ "b", "bant" ], "reports": true }, { "uid": 30, "name": "TheBArchive.com", "domain": "thebarchive.com", "http": true, "https": true, "software": "foolfuuka", "boards": [ "b", "bant" ], "files": [ "b", "bant" ], "reports": true },
@ -16713,11 +16713,11 @@ Embedding = (function() {
} }
}, },
title: function(req, data) { title: function(req, data) {
var key, service, status, text, uid; var key, link, service, status, text, uid;
if (!req.status) { if (!req.status) {
return; return;
} }
key = data.key, uid = data.uid; key = data.key, uid = data.uid, link = data.link;
status = req.status; status = req.status;
service = Embedding.types[key].title; service = Embedding.types[key].title;
switch (status) { switch (status) {
@ -16730,7 +16730,7 @@ Embedding = (function() {
text = "Not Found"; text = "Not Found";
break; break;
case 403: case 403:
text = "Forbidden or Private"; text = service.ignore403 ? link.textContent : "Forbidden or Private";
break; break;
default: default:
text = status + "'d"; text = status + "'d";
@ -17220,6 +17220,7 @@ Embedding = (function() {
}, },
title: { title: {
batchSize: 50, batchSize: 50,
ignore403: true,
api: function(uids) { api: function(uids) {
var ids, key; var ids, key;
ids = encodeURIComponent(uids.join(',')); ids = encodeURIComponent(uids.join(','));
@ -24430,7 +24431,8 @@ QR = (function() {
}); });
$.on(el, (isVideo ? 'loadeddata' : 'load'), function() { $.on(el, (isVideo ? 'loadeddata' : 'load'), function() {
e.target.getContext('2d').drawImage(el, 0, 0); e.target.getContext('2d').drawImage(el, 0, 0);
return URL.revokeObjectURL(el.src); URL.revokeObjectURL(el.src);
return $.event('QRImageDrawn', null, e.target);
}); });
return el.src = URL.createObjectURL(file); return el.src = URL.createObjectURL(file);
}, },
@ -25415,46 +25417,25 @@ QR = (function() {
}); });
}, },
load: function(cb) { load: function(cb) {
var n, onerror, onload, script, style; var n, onload, script, style;
n = 0; if ($('script[src^="//s.4cdn.org/js/tegaki"]', d.head)) {
onload = function() { return cb();
if (++n === 2) {
return cb();
}
};
onerror = function() {
var script;
$.rm(this);
script = $.el('script', {
src: 'https://rawgit.com/desuwa/tegaki/master/tegaki.js'
});
$.on(script, 'load', onload);
return $.add(d.head, script);
};
script = $('script[src^="//s.4cdn.org/js/painter"], script[src="https://rawgit.com/desuwa/tegaki/master/tegaki.js"]', d.head);
if (script) {
if (!script.dataset.success) {
$.global(function() {
return document.querySelector('script[src^="//s.4cdn.org/js/painter"], script[src="https://rawgit.com/desuwa/tegaki/master/tegaki.js"]').dataset.success = !!window.Tegaki;
});
}
if (script.dataset.success === 'true') {
return cb();
} else {
n = 1;
return onerror.call(script);
}
} else { } else {
style = $.el('link', { style = $.el('link', {
rel: 'stylesheet', rel: 'stylesheet',
href: "//s.4cdn.org/css/painter." + (Date.now()) + ".css" href: "//s.4cdn.org/css/tegaki." + (Date.now()) + ".css"
}); });
script = $.el('script', { script = $.el('script', {
src: "//s.4cdn.org/js/painter.min." + (Date.now()) + ".js" src: "//s.4cdn.org/js/tegaki.min." + (Date.now()) + ".js"
}); });
n = 0;
onload = function() {
if (++n === 2) {
return cb();
}
};
$.on(style, 'load', onload); $.on(style, 'load', onload);
$.on(script, 'load', onload); $.on(script, 'load', onload);
$.on(script, 'error', onerror);
return $.add(d.head, [style, script]); return $.add(d.head, [style, script]);
} }
}, },
@ -25502,7 +25483,7 @@ QR = (function() {
})); }));
}; };
cb = function(e) { cb = function(e) {
var selected; var canvas, selected;
if (e) { if (e) {
this.removeEventListener('QRMetadata', cb, false); this.removeEventListener('QRMetadata', cb, false);
} }
@ -25533,7 +25514,16 @@ QR = (function() {
height: +selected.dataset.height, height: +selected.dataset.height,
bgColor: 'transparent' bgColor: 'transparent'
}); });
return Tegaki.activeCtx.canvas.dispatchEvent(new CustomEvent('QRDrawFile', { canvas = document.createElement('canvas');
canvas.width = canvas.naturalWidth = +selected.dataset.width;
canvas.height = canvas.naturalHeight = +selected.dataset.height;
canvas.hidden = true;
document.body.appendChild(canvas);
canvas.addEventListener('QRImageDrawn', function() {
this.remove();
return Tegaki.onOpenImageLoaded.call(this);
}, false);
return canvas.dispatchEvent(new CustomEvent('QRDrawFile', {
bubbles: true bubbles: true
})); }));
}; };

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.14.14.4 // @version 1.14.14.5
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -211,7 +211,7 @@ docSet = function() {
}; };
g = { g = {
VERSION: '1.14.14.4', VERSION: '1.14.14.5',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
sites: Object.create(null), sites: Object.create(null),
boards: Object.create(null) boards: Object.create(null)
@ -488,7 +488,7 @@ Config = (function() {
'QR.personas': "#options:\"sage\";boards:jp;always", 'QR.personas': "#options:\"sage\";boards:jp;always",
sjisPreview: false sjisPreview: false
}, },
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\nhttps://cdnjs.cloudflare.com\nhttps://rawgit.com\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org', jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\nhttps://cdnjs.cloudflare.com\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org',
captchaLanguage: '', captchaLanguage: '',
time: '%m/%d/%y(%a)%H:%M:%S', time: '%m/%d/%y(%a)%H:%M:%S',
timeLocale: '', timeLocale: '',
@ -8798,7 +8798,7 @@ Redirect = (function() {
{ "uid": 10, "name": "warosu", "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", "boards": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "files": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "search": [ "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ] }, { "uid": 10, "name": "warosu", "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", "boards": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "files": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "search": [ "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ] },
{ "uid": 23, "name": "Desuarchive", "domain": "desuarchive.org", "http": true, "https": true, "software": "foolfuuka", "boards": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "files": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "reports": true }, { "uid": 23, "name": "Desuarchive", "domain": "desuarchive.org", "http": true, "https": true, "software": "foolfuuka", "boards": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "files": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "reports": true },
{ "uid": 24, "name": "fireden.net", "domain": "boards.fireden.net", "http": false, "https": true, "software": "foolfuuka", "boards": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "files": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "search": [ "cm", "co", "ic", "sci", "tg", "y" ] }, { "uid": 24, "name": "fireden.net", "domain": "boards.fireden.net", "http": false, "https": true, "software": "foolfuuka", "boards": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "files": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "search": [ "cm", "co", "ic", "sci", "tg", "y" ] },
{ "uid": 25, "name": "arch.b4k.co", "domain": "arch.b4k.co", "http": true, "https": true, "software": "foolfuuka", "boards": [ "g", "jp", "mlp", "v", "vp" ], "files": [ "v", "vp" ], "search": [ "v" ] }, { "uid": 25, "name": "arch.b4k.co", "domain": "arch.b4k.co", "http": true, "https": true, "software": "foolfuuka", "boards": [ "g", "jp", "mlp", "v", "vg", "vp" ], "files": [], "search": [ "v", "vg" ] },
{ "uid": 28, "name": "bstats", "domain": "archive.b-stats.org", "http": false, "https": true, "software": "foolfuuka", "boards": [ "f", "cm", "hm", "lgbt", "news", "qst", "trash", "y" ], "files": [] }, { "uid": 28, "name": "bstats", "domain": "archive.b-stats.org", "http": false, "https": true, "software": "foolfuuka", "boards": [ "f", "cm", "hm", "lgbt", "news", "qst", "trash", "y" ], "files": [] },
{ "uid": 29, "name": "Archived.Moe", "domain": "archived.moe", "http": true, "https": true, "software": "foolfuuka", "boards": [ "3", "a", "aco", "adv", "an", "asp", "b", "bant", "biz", "c", "can", "cgl", "ck", "cm", "co", "cock", "d", "diy", "e", "f", "fa", "fap", "fit", "fitlit", "g", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "int", "jp", "k", "lgbt", "lit", "m", "mlp", "mlpol", "mo", "mtv", "mu", "n", "news", "o", "out", "outsoc", "p", "po", "pol", "qa", "qst", "r", "r9k", "s", "s4s", "sci", "soc", "sp", "spa", "t", "tg", "toy", "trash", "trv", "tv", "u", "v", "vg", "vint", "vip", "vp", "vr", "w", "wg", "wsg", "wsr", "x", "y" ], "files": [ "can", "cock", "fap", "fitlit", "gd", "mlpol", "mo", "mtv", "outsoc", "po", "qst", "spa", "vint", "vip" ], "search": [ "aco", "adv", "an", "asp", "b", "bant", "c", "can", "cgl", "ck", "cm", "cock", "con", "d", "diy", "e", "f", "fap", "fitlit", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "lgbt", "lit", "mlpol", "mo", "mtv", "n", "news", "o", "out", "outsoc", "p", "po", "q", "qa", "qst", "r", "s", "soc", "spa", "trv", "u", "vint", "vip", "w", "wg", "wsg", "wsr", "x", "y" ], "reports": true }, { "uid": 29, "name": "Archived.Moe", "domain": "archived.moe", "http": true, "https": true, "software": "foolfuuka", "boards": [ "3", "a", "aco", "adv", "an", "asp", "b", "bant", "biz", "c", "can", "cgl", "ck", "cm", "co", "cock", "d", "diy", "e", "f", "fa", "fap", "fit", "fitlit", "g", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "int", "jp", "k", "lgbt", "lit", "m", "mlp", "mlpol", "mo", "mtv", "mu", "n", "news", "o", "out", "outsoc", "p", "po", "pol", "qa", "qst", "r", "r9k", "s", "s4s", "sci", "soc", "sp", "spa", "t", "tg", "toy", "trash", "trv", "tv", "u", "v", "vg", "vint", "vip", "vp", "vr", "w", "wg", "wsg", "wsr", "x", "y" ], "files": [ "can", "cock", "fap", "fitlit", "gd", "mlpol", "mo", "mtv", "outsoc", "po", "qst", "spa", "vint", "vip" ], "search": [ "aco", "adv", "an", "asp", "b", "bant", "c", "can", "cgl", "ck", "cm", "cock", "con", "d", "diy", "e", "f", "fap", "fitlit", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "lgbt", "lit", "mlpol", "mo", "mtv", "n", "news", "o", "out", "outsoc", "p", "po", "q", "qa", "qst", "r", "s", "soc", "spa", "trv", "u", "vint", "vip", "w", "wg", "wsg", "wsr", "x", "y" ], "reports": true },
{ "uid": 30, "name": "TheBArchive.com", "domain": "thebarchive.com", "http": true, "https": true, "software": "foolfuuka", "boards": [ "b", "bant" ], "files": [ "b", "bant" ], "reports": true }, { "uid": 30, "name": "TheBArchive.com", "domain": "thebarchive.com", "http": true, "https": true, "software": "foolfuuka", "boards": [ "b", "bant" ], "files": [ "b", "bant" ], "reports": true },
@ -16713,11 +16713,11 @@ Embedding = (function() {
} }
}, },
title: function(req, data) { title: function(req, data) {
var key, service, status, text, uid; var key, link, service, status, text, uid;
if (!req.status) { if (!req.status) {
return; return;
} }
key = data.key, uid = data.uid; key = data.key, uid = data.uid, link = data.link;
status = req.status; status = req.status;
service = Embedding.types[key].title; service = Embedding.types[key].title;
switch (status) { switch (status) {
@ -16730,7 +16730,7 @@ Embedding = (function() {
text = "Not Found"; text = "Not Found";
break; break;
case 403: case 403:
text = "Forbidden or Private"; text = service.ignore403 ? link.textContent : "Forbidden or Private";
break; break;
default: default:
text = status + "'d"; text = status + "'d";
@ -17220,6 +17220,7 @@ Embedding = (function() {
}, },
title: { title: {
batchSize: 50, batchSize: 50,
ignore403: true,
api: function(uids) { api: function(uids) {
var ids, key; var ids, key;
ids = encodeURIComponent(uids.join(',')); ids = encodeURIComponent(uids.join(','));
@ -24430,7 +24431,8 @@ QR = (function() {
}); });
$.on(el, (isVideo ? 'loadeddata' : 'load'), function() { $.on(el, (isVideo ? 'loadeddata' : 'load'), function() {
e.target.getContext('2d').drawImage(el, 0, 0); e.target.getContext('2d').drawImage(el, 0, 0);
return URL.revokeObjectURL(el.src); URL.revokeObjectURL(el.src);
return $.event('QRImageDrawn', null, e.target);
}); });
return el.src = URL.createObjectURL(file); return el.src = URL.createObjectURL(file);
}, },
@ -25415,46 +25417,25 @@ QR = (function() {
}); });
}, },
load: function(cb) { load: function(cb) {
var n, onerror, onload, script, style; var n, onload, script, style;
n = 0; if ($('script[src^="//s.4cdn.org/js/tegaki"]', d.head)) {
onload = function() { return cb();
if (++n === 2) {
return cb();
}
};
onerror = function() {
var script;
$.rm(this);
script = $.el('script', {
src: 'https://rawgit.com/desuwa/tegaki/master/tegaki.js'
});
$.on(script, 'load', onload);
return $.add(d.head, script);
};
script = $('script[src^="//s.4cdn.org/js/painter"], script[src="https://rawgit.com/desuwa/tegaki/master/tegaki.js"]', d.head);
if (script) {
if (!script.dataset.success) {
$.global(function() {
return document.querySelector('script[src^="//s.4cdn.org/js/painter"], script[src="https://rawgit.com/desuwa/tegaki/master/tegaki.js"]').dataset.success = !!window.Tegaki;
});
}
if (script.dataset.success === 'true') {
return cb();
} else {
n = 1;
return onerror.call(script);
}
} else { } else {
style = $.el('link', { style = $.el('link', {
rel: 'stylesheet', rel: 'stylesheet',
href: "//s.4cdn.org/css/painter." + (Date.now()) + ".css" href: "//s.4cdn.org/css/tegaki." + (Date.now()) + ".css"
}); });
script = $.el('script', { script = $.el('script', {
src: "//s.4cdn.org/js/painter.min." + (Date.now()) + ".js" src: "//s.4cdn.org/js/tegaki.min." + (Date.now()) + ".js"
}); });
n = 0;
onload = function() {
if (++n === 2) {
return cb();
}
};
$.on(style, 'load', onload); $.on(style, 'load', onload);
$.on(script, 'load', onload); $.on(script, 'load', onload);
$.on(script, 'error', onerror);
return $.add(d.head, [style, script]); return $.add(d.head, [style, script]);
} }
}, },
@ -25502,7 +25483,7 @@ QR = (function() {
})); }));
}; };
cb = function(e) { cb = function(e) {
var selected; var canvas, selected;
if (e) { if (e) {
this.removeEventListener('QRMetadata', cb, false); this.removeEventListener('QRMetadata', cb, false);
} }
@ -25533,7 +25514,16 @@ QR = (function() {
height: +selected.dataset.height, height: +selected.dataset.height,
bgColor: 'transparent' bgColor: 'transparent'
}); });
return Tegaki.activeCtx.canvas.dispatchEvent(new CustomEvent('QRDrawFile', { canvas = document.createElement('canvas');
canvas.width = canvas.naturalWidth = +selected.dataset.width;
canvas.height = canvas.naturalHeight = +selected.dataset.height;
canvas.hidden = true;
document.body.appendChild(canvas);
canvas.addEventListener('QRImageDrawn', function() {
this.remove();
return Tegaki.onOpenImageLoaded.call(this);
}, false);
return canvas.dispatchEvent(new CustomEvent('QRDrawFile', {
bubbles: true bubbles: true
})); }));
}; };

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.14.14.4 // @version 1.14.14.5
// @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.14.14.4 // @version 1.14.14.5
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -211,7 +211,7 @@ docSet = function() {
}; };
g = { g = {
VERSION: '1.14.14.4', VERSION: '1.14.14.5',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
sites: Object.create(null), sites: Object.create(null),
boards: Object.create(null) boards: Object.create(null)
@ -488,7 +488,7 @@ Config = (function() {
'QR.personas': "#options:\"sage\";boards:jp;always", 'QR.personas': "#options:\"sage\";boards:jp;always",
sjisPreview: false sjisPreview: false
}, },
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\nhttps://cdnjs.cloudflare.com\nhttps://rawgit.com\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org', jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\nhttps://cdnjs.cloudflare.com\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org',
captchaLanguage: '', captchaLanguage: '',
time: '%m/%d/%y(%a)%H:%M:%S', time: '%m/%d/%y(%a)%H:%M:%S',
timeLocale: '', timeLocale: '',
@ -8798,7 +8798,7 @@ Redirect = (function() {
{ "uid": 10, "name": "warosu", "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", "boards": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "files": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "search": [ "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ] }, { "uid": 10, "name": "warosu", "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", "boards": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "files": [ "3", "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ], "search": [ "biz", "cgl", "ck", "diy", "fa", "g", "ic", "jp", "lit", "sci", "tg", "vr" ] },
{ "uid": 23, "name": "Desuarchive", "domain": "desuarchive.org", "http": true, "https": true, "software": "foolfuuka", "boards": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "files": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "reports": true }, { "uid": 23, "name": "Desuarchive", "domain": "desuarchive.org", "http": true, "https": true, "software": "foolfuuka", "boards": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "files": [ "a", "aco", "an", "c", "co", "d", "fit", "gif", "his", "int", "k", "m", "mlp", "qa", "r9k", "tg", "trash", "vr", "wsg" ], "reports": true },
{ "uid": 24, "name": "fireden.net", "domain": "boards.fireden.net", "http": false, "https": true, "software": "foolfuuka", "boards": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "files": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "search": [ "cm", "co", "ic", "sci", "tg", "y" ] }, { "uid": 24, "name": "fireden.net", "domain": "boards.fireden.net", "http": false, "https": true, "software": "foolfuuka", "boards": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "files": [ "cm", "co", "ic", "sci", "tg", "vip", "y" ], "search": [ "cm", "co", "ic", "sci", "tg", "y" ] },
{ "uid": 25, "name": "arch.b4k.co", "domain": "arch.b4k.co", "http": true, "https": true, "software": "foolfuuka", "boards": [ "g", "jp", "mlp", "v", "vp" ], "files": [ "v", "vp" ], "search": [ "v" ] }, { "uid": 25, "name": "arch.b4k.co", "domain": "arch.b4k.co", "http": true, "https": true, "software": "foolfuuka", "boards": [ "g", "jp", "mlp", "v", "vg", "vp" ], "files": [], "search": [ "v", "vg" ] },
{ "uid": 28, "name": "bstats", "domain": "archive.b-stats.org", "http": false, "https": true, "software": "foolfuuka", "boards": [ "f", "cm", "hm", "lgbt", "news", "qst", "trash", "y" ], "files": [] }, { "uid": 28, "name": "bstats", "domain": "archive.b-stats.org", "http": false, "https": true, "software": "foolfuuka", "boards": [ "f", "cm", "hm", "lgbt", "news", "qst", "trash", "y" ], "files": [] },
{ "uid": 29, "name": "Archived.Moe", "domain": "archived.moe", "http": true, "https": true, "software": "foolfuuka", "boards": [ "3", "a", "aco", "adv", "an", "asp", "b", "bant", "biz", "c", "can", "cgl", "ck", "cm", "co", "cock", "d", "diy", "e", "f", "fa", "fap", "fit", "fitlit", "g", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "int", "jp", "k", "lgbt", "lit", "m", "mlp", "mlpol", "mo", "mtv", "mu", "n", "news", "o", "out", "outsoc", "p", "po", "pol", "qa", "qst", "r", "r9k", "s", "s4s", "sci", "soc", "sp", "spa", "t", "tg", "toy", "trash", "trv", "tv", "u", "v", "vg", "vint", "vip", "vp", "vr", "w", "wg", "wsg", "wsr", "x", "y" ], "files": [ "can", "cock", "fap", "fitlit", "gd", "mlpol", "mo", "mtv", "outsoc", "po", "qst", "spa", "vint", "vip" ], "search": [ "aco", "adv", "an", "asp", "b", "bant", "c", "can", "cgl", "ck", "cm", "cock", "con", "d", "diy", "e", "f", "fap", "fitlit", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "lgbt", "lit", "mlpol", "mo", "mtv", "n", "news", "o", "out", "outsoc", "p", "po", "q", "qa", "qst", "r", "s", "soc", "spa", "trv", "u", "vint", "vip", "w", "wg", "wsg", "wsr", "x", "y" ], "reports": true }, { "uid": 29, "name": "Archived.Moe", "domain": "archived.moe", "http": true, "https": true, "software": "foolfuuka", "boards": [ "3", "a", "aco", "adv", "an", "asp", "b", "bant", "biz", "c", "can", "cgl", "ck", "cm", "co", "cock", "d", "diy", "e", "f", "fa", "fap", "fit", "fitlit", "g", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "int", "jp", "k", "lgbt", "lit", "m", "mlp", "mlpol", "mo", "mtv", "mu", "n", "news", "o", "out", "outsoc", "p", "po", "pol", "qa", "qst", "r", "r9k", "s", "s4s", "sci", "soc", "sp", "spa", "t", "tg", "toy", "trash", "trv", "tv", "u", "v", "vg", "vint", "vip", "vp", "vr", "w", "wg", "wsg", "wsr", "x", "y" ], "files": [ "can", "cock", "fap", "fitlit", "gd", "mlpol", "mo", "mtv", "outsoc", "po", "qst", "spa", "vint", "vip" ], "search": [ "aco", "adv", "an", "asp", "b", "bant", "c", "can", "cgl", "ck", "cm", "cock", "con", "d", "diy", "e", "f", "fap", "fitlit", "gd", "gif", "h", "hc", "his", "hm", "hr", "i", "ic", "lgbt", "lit", "mlpol", "mo", "mtv", "n", "news", "o", "out", "outsoc", "p", "po", "q", "qa", "qst", "r", "s", "soc", "spa", "trv", "u", "vint", "vip", "w", "wg", "wsg", "wsr", "x", "y" ], "reports": true },
{ "uid": 30, "name": "TheBArchive.com", "domain": "thebarchive.com", "http": true, "https": true, "software": "foolfuuka", "boards": [ "b", "bant" ], "files": [ "b", "bant" ], "reports": true }, { "uid": 30, "name": "TheBArchive.com", "domain": "thebarchive.com", "http": true, "https": true, "software": "foolfuuka", "boards": [ "b", "bant" ], "files": [ "b", "bant" ], "reports": true },
@ -16713,11 +16713,11 @@ Embedding = (function() {
} }
}, },
title: function(req, data) { title: function(req, data) {
var key, service, status, text, uid; var key, link, service, status, text, uid;
if (!req.status) { if (!req.status) {
return; return;
} }
key = data.key, uid = data.uid; key = data.key, uid = data.uid, link = data.link;
status = req.status; status = req.status;
service = Embedding.types[key].title; service = Embedding.types[key].title;
switch (status) { switch (status) {
@ -16730,7 +16730,7 @@ Embedding = (function() {
text = "Not Found"; text = "Not Found";
break; break;
case 403: case 403:
text = "Forbidden or Private"; text = service.ignore403 ? link.textContent : "Forbidden or Private";
break; break;
default: default:
text = status + "'d"; text = status + "'d";
@ -17220,6 +17220,7 @@ Embedding = (function() {
}, },
title: { title: {
batchSize: 50, batchSize: 50,
ignore403: true,
api: function(uids) { api: function(uids) {
var ids, key; var ids, key;
ids = encodeURIComponent(uids.join(',')); ids = encodeURIComponent(uids.join(','));
@ -24430,7 +24431,8 @@ QR = (function() {
}); });
$.on(el, (isVideo ? 'loadeddata' : 'load'), function() { $.on(el, (isVideo ? 'loadeddata' : 'load'), function() {
e.target.getContext('2d').drawImage(el, 0, 0); e.target.getContext('2d').drawImage(el, 0, 0);
return URL.revokeObjectURL(el.src); URL.revokeObjectURL(el.src);
return $.event('QRImageDrawn', null, e.target);
}); });
return el.src = URL.createObjectURL(file); return el.src = URL.createObjectURL(file);
}, },
@ -25415,46 +25417,25 @@ QR = (function() {
}); });
}, },
load: function(cb) { load: function(cb) {
var n, onerror, onload, script, style; var n, onload, script, style;
n = 0; if ($('script[src^="//s.4cdn.org/js/tegaki"]', d.head)) {
onload = function() { return cb();
if (++n === 2) {
return cb();
}
};
onerror = function() {
var script;
$.rm(this);
script = $.el('script', {
src: 'https://rawgit.com/desuwa/tegaki/master/tegaki.js'
});
$.on(script, 'load', onload);
return $.add(d.head, script);
};
script = $('script[src^="//s.4cdn.org/js/painter"], script[src="https://rawgit.com/desuwa/tegaki/master/tegaki.js"]', d.head);
if (script) {
if (!script.dataset.success) {
$.global(function() {
return document.querySelector('script[src^="//s.4cdn.org/js/painter"], script[src="https://rawgit.com/desuwa/tegaki/master/tegaki.js"]').dataset.success = !!window.Tegaki;
});
}
if (script.dataset.success === 'true') {
return cb();
} else {
n = 1;
return onerror.call(script);
}
} else { } else {
style = $.el('link', { style = $.el('link', {
rel: 'stylesheet', rel: 'stylesheet',
href: "//s.4cdn.org/css/painter." + (Date.now()) + ".css" href: "//s.4cdn.org/css/tegaki." + (Date.now()) + ".css"
}); });
script = $.el('script', { script = $.el('script', {
src: "//s.4cdn.org/js/painter.min." + (Date.now()) + ".js" src: "//s.4cdn.org/js/tegaki.min." + (Date.now()) + ".js"
}); });
n = 0;
onload = function() {
if (++n === 2) {
return cb();
}
};
$.on(style, 'load', onload); $.on(style, 'load', onload);
$.on(script, 'load', onload); $.on(script, 'load', onload);
$.on(script, 'error', onerror);
return $.add(d.head, [style, script]); return $.add(d.head, [style, script]);
} }
}, },
@ -25502,7 +25483,7 @@ QR = (function() {
})); }));
}; };
cb = function(e) { cb = function(e) {
var selected; var canvas, selected;
if (e) { if (e) {
this.removeEventListener('QRMetadata', cb, false); this.removeEventListener('QRMetadata', cb, false);
} }
@ -25533,7 +25514,16 @@ QR = (function() {
height: +selected.dataset.height, height: +selected.dataset.height,
bgColor: 'transparent' bgColor: 'transparent'
}); });
return Tegaki.activeCtx.canvas.dispatchEvent(new CustomEvent('QRDrawFile', { canvas = document.createElement('canvas');
canvas.width = canvas.naturalWidth = +selected.dataset.width;
canvas.height = canvas.naturalHeight = +selected.dataset.height;
canvas.hidden = true;
document.body.appendChild(canvas);
canvas.addEventListener('QRImageDrawn', function() {
this.remove();
return Tegaki.onOpenImageLoaded.call(this);
}, false);
return canvas.dispatchEvent(new CustomEvent('QRDrawFile', {
bubbles: true bubbles: true
})); }));
}; };

Binary file not shown.

View File

@ -3,7 +3,7 @@
"4chan-x@4chan-x.net": { "4chan-x@4chan-x.net": {
"updates": [ "updates": [
{ {
"version": "1.14.14.4", "version": "1.14.14.5",
"update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx" "update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx"
} }
] ]

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

View File

@ -3,7 +3,7 @@
"4chan-x@4chan-x.net": { "4chan-x@4chan-x.net": {
"updates": [ "updates": [
{ {
"version": "1.14.14.4", "version": "1.14.14.5",
"update_link": "https://www.4chan-x.net/builds/4chan-X.crx" "update_link": "https://www.4chan-x.net/builds/4chan-X.crx"
} }
] ]

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

View File

@ -1,4 +1,4 @@
{ {
"version": "1.14.14.4", "version": "1.14.14.5",
"date": "2019-09-16T04:34:13.281Z" "date": "2019-12-13T09:22:10.108Z"
} }