Release 4chan X v1.14.5.13.

This commit is contained in:
ccd0 2019-03-08 15:46:34 -08:00
parent 8e22de0ca0
commit 4801013380
15 changed files with 100 additions and 68 deletions

View File

@ -4,6 +4,11 @@
### v1.14.5 ### v1.14.5
**v1.14.5.13** *(2019-03-08)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.5.13/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.5.13/builds/4chan-X-noupdate.crx)]
- Fix bugs related to additional permissions requests. #2230
- Revert changes in thread watcher that caused performance decrease.
- Fix thread watcher highlighting when quoted on boards with unusual characters in name (e.g. some lainchan boards).
**v1.14.5.12** *(2019-01-28)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.5.12/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.5.12/builds/4chan-X-noupdate.crx)] **v1.14.5.12** *(2019-01-28)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.5.12/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.5.12/builds/4chan-X-noupdate.crx)]
- Recover as well as possible from data corruption caused by ad filter interaction with Tampermonkey. #2218 - Recover as well as possible from data corruption caused by ad filter interaction with Tampermonkey. #2218

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.14.5.12 // @version 1.14.5.13
// @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.5.12 // @version 1.14.5.13
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -198,7 +198,7 @@ docSet = function() {
}; };
g = { g = {
VERSION: '1.14.5.12', VERSION: '1.14.5.13',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -4603,14 +4603,14 @@ $ = (function() {
pageXHR = XMLHttpRequest; pageXHR = XMLHttpRequest;
} }
return function(url, options, extra) { return function(url, options, extra) {
var err, event, form, j, len, params, r, ref, ref1, type, upCallbacks, url0, whenModified; var bypassCache, err, event, form, j, len, params, r, ref, ref1, type, upCallbacks, url0, whenModified;
if (options == null) { if (options == null) {
options = {}; options = {};
} }
if (extra == null) { if (extra == null) {
extra = {}; extra = {};
} }
type = extra.type, whenModified = extra.whenModified, upCallbacks = extra.upCallbacks, form = extra.form; type = extra.type, whenModified = extra.whenModified, bypassCache = extra.bypassCache, upCallbacks = extra.upCallbacks, form = extra.form;
if (/\.json$/.test(url)) { if (/\.json$/.test(url)) {
if (options.responseType == null) { if (options.responseType == null) {
options.responseType = 'json'; options.responseType = 'json';
@ -4622,7 +4622,7 @@ $ = (function() {
if ($.engine === 'blink') { if ($.engine === 'blink') {
params.push("s=" + whenModified); params.push("s=" + whenModified);
} }
if (Site.software === 'yotsuba') { if (Site.software === 'yotsuba' && bypassCache) {
params.push("t=" + (Date.now())); params.push("t=" + (Date.now()));
} }
url0 = url; url0 = url;
@ -5559,7 +5559,10 @@ CrossOrigin = (function() {
} }
}); });
}; };
})() })(),
permission: function(cb) {
return cb();
}
}; };
return CrossOrigin; return CrossOrigin;
@ -19378,7 +19381,8 @@ ThreadStats = (function() {
return $.ajax(location.protocol + "//a.4cdn.org/" + ThreadStats.thread.board + "/threads.json", { return $.ajax(location.protocol + "//a.4cdn.org/" + ThreadStats.thread.board + "/threads.json", {
onload: ThreadStats.onThreadsLoad onload: ThreadStats.onThreadsLoad
}, { }, {
whenModified: 'ThreadStats' whenModified: 'ThreadStats',
bypassCache: true
}); });
}, },
onThreadsLoad: function() { onThreadsLoad: function() {
@ -19716,7 +19720,8 @@ ThreadUpdater = (function() {
onloadend: ThreadUpdater.cb.load, onloadend: ThreadUpdater.cb.load,
timeout: $.MINUTE timeout: $.MINUTE
}, { }, {
whenModified: 'ThreadUpdater' whenModified: 'ThreadUpdater',
bypassCache: true
}); });
}, },
updateThreadStatus: function(type, status) { updateThreadStatus: function(type, status) {
@ -20231,6 +20236,8 @@ ThreadWatcher = (function() {
return ThreadWatcher.parseStatus.call(this, thread); return ThreadWatcher.parseStatus.call(this, thread);
}, },
timeout: $.MINUTE timeout: $.MINUTE
}, {
whenModified: force ? false : 'ThreadWatcher'
}); });
} else { } else {
req = { req = {
@ -20314,7 +20321,7 @@ ThreadWatcher = (function() {
while (match = regexp.exec(postObj.com)) { while (match = regexp.exec(postObj.com)) {
if (QuoteYou.db.get({ if (QuoteYou.db.get({
siteID: siteID, siteID: siteID,
boardID: match[1] || boardID, boardID: match[1] ? encodeURIComponent(match[1]) : boardID,
threadID: match[2] || threadID, threadID: match[2] || threadID,
postID: match[3] || match[2] || threadID postID: match[3] || match[2] || threadID
})) { })) {
@ -22464,20 +22471,22 @@ QR = (function() {
} }
}, },
handleUrl: function(urlDefault) { handleUrl: function(urlDefault) {
var url;
QR.open(); QR.open();
QR.selected.preventAutoPost(); QR.selected.preventAutoPost();
url = prompt('Enter a URL:', urlDefault); return CrossOrigin.permission(function() {
if (url === null) { var url;
return; url = prompt('Enter a URL:', urlDefault);
} if (url === null) {
QR.nodes.fileButton.focus(); return;
return CrossOrigin.file(url, function(blob) {
if (blob && !/^text\//.test(blob.type)) {
return QR.handleFiles([blob]);
} else {
return QR.error("Can't load file.");
} }
QR.nodes.fileButton.focus();
return CrossOrigin.file(url, function(blob) {
if (blob && !/^text\//.test(blob.type)) {
return QR.handleFiles([blob]);
} else {
return QR.error("Can't load file.");
}
});
}); });
}, },
handleFiles: function(files) { handleFiles: function(files) {

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.14.5.12 // @version 1.14.5.13
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -198,7 +198,7 @@ docSet = function() {
}; };
g = { g = {
VERSION: '1.14.5.12', VERSION: '1.14.5.13',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -4603,14 +4603,14 @@ $ = (function() {
pageXHR = XMLHttpRequest; pageXHR = XMLHttpRequest;
} }
return function(url, options, extra) { return function(url, options, extra) {
var err, event, form, j, len, params, r, ref, ref1, type, upCallbacks, url0, whenModified; var bypassCache, err, event, form, j, len, params, r, ref, ref1, type, upCallbacks, url0, whenModified;
if (options == null) { if (options == null) {
options = {}; options = {};
} }
if (extra == null) { if (extra == null) {
extra = {}; extra = {};
} }
type = extra.type, whenModified = extra.whenModified, upCallbacks = extra.upCallbacks, form = extra.form; type = extra.type, whenModified = extra.whenModified, bypassCache = extra.bypassCache, upCallbacks = extra.upCallbacks, form = extra.form;
if (/\.json$/.test(url)) { if (/\.json$/.test(url)) {
if (options.responseType == null) { if (options.responseType == null) {
options.responseType = 'json'; options.responseType = 'json';
@ -4622,7 +4622,7 @@ $ = (function() {
if ($.engine === 'blink') { if ($.engine === 'blink') {
params.push("s=" + whenModified); params.push("s=" + whenModified);
} }
if (Site.software === 'yotsuba') { if (Site.software === 'yotsuba' && bypassCache) {
params.push("t=" + (Date.now())); params.push("t=" + (Date.now()));
} }
url0 = url; url0 = url;
@ -5559,7 +5559,10 @@ CrossOrigin = (function() {
} }
}); });
}; };
})() })(),
permission: function(cb) {
return cb();
}
}; };
return CrossOrigin; return CrossOrigin;
@ -19378,7 +19381,8 @@ ThreadStats = (function() {
return $.ajax(location.protocol + "//a.4cdn.org/" + ThreadStats.thread.board + "/threads.json", { return $.ajax(location.protocol + "//a.4cdn.org/" + ThreadStats.thread.board + "/threads.json", {
onload: ThreadStats.onThreadsLoad onload: ThreadStats.onThreadsLoad
}, { }, {
whenModified: 'ThreadStats' whenModified: 'ThreadStats',
bypassCache: true
}); });
}, },
onThreadsLoad: function() { onThreadsLoad: function() {
@ -19716,7 +19720,8 @@ ThreadUpdater = (function() {
onloadend: ThreadUpdater.cb.load, onloadend: ThreadUpdater.cb.load,
timeout: $.MINUTE timeout: $.MINUTE
}, { }, {
whenModified: 'ThreadUpdater' whenModified: 'ThreadUpdater',
bypassCache: true
}); });
}, },
updateThreadStatus: function(type, status) { updateThreadStatus: function(type, status) {
@ -20231,6 +20236,8 @@ ThreadWatcher = (function() {
return ThreadWatcher.parseStatus.call(this, thread); return ThreadWatcher.parseStatus.call(this, thread);
}, },
timeout: $.MINUTE timeout: $.MINUTE
}, {
whenModified: force ? false : 'ThreadWatcher'
}); });
} else { } else {
req = { req = {
@ -20314,7 +20321,7 @@ ThreadWatcher = (function() {
while (match = regexp.exec(postObj.com)) { while (match = regexp.exec(postObj.com)) {
if (QuoteYou.db.get({ if (QuoteYou.db.get({
siteID: siteID, siteID: siteID,
boardID: match[1] || boardID, boardID: match[1] ? encodeURIComponent(match[1]) : boardID,
threadID: match[2] || threadID, threadID: match[2] || threadID,
postID: match[3] || match[2] || threadID postID: match[3] || match[2] || threadID
})) { })) {
@ -22464,20 +22471,22 @@ QR = (function() {
} }
}, },
handleUrl: function(urlDefault) { handleUrl: function(urlDefault) {
var url;
QR.open(); QR.open();
QR.selected.preventAutoPost(); QR.selected.preventAutoPost();
url = prompt('Enter a URL:', urlDefault); return CrossOrigin.permission(function() {
if (url === null) { var url;
return; url = prompt('Enter a URL:', urlDefault);
} if (url === null) {
QR.nodes.fileButton.focus(); return;
return CrossOrigin.file(url, function(blob) {
if (blob && !/^text\//.test(blob.type)) {
return QR.handleFiles([blob]);
} else {
return QR.error("Can't load file.");
} }
QR.nodes.fileButton.focus();
return CrossOrigin.file(url, function(blob) {
if (blob && !/^text\//.test(blob.type)) {
return QR.handleFiles([blob]);
} else {
return QR.error("Can't load file.");
}
});
}); });
}, },
handleFiles: function(files) { handleFiles: function(files) {

Binary file not shown.

View File

@ -1,6 +1,6 @@
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.14.5.12 // @version 1.14.5.13
// @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.5.12 // @version 1.14.5.13
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -198,7 +198,7 @@ docSet = function() {
}; };
g = { g = {
VERSION: '1.14.5.12', VERSION: '1.14.5.13',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -4603,14 +4603,14 @@ $ = (function() {
pageXHR = XMLHttpRequest; pageXHR = XMLHttpRequest;
} }
return function(url, options, extra) { return function(url, options, extra) {
var err, event, form, j, len, params, r, ref, ref1, type, upCallbacks, url0, whenModified; var bypassCache, err, event, form, j, len, params, r, ref, ref1, type, upCallbacks, url0, whenModified;
if (options == null) { if (options == null) {
options = {}; options = {};
} }
if (extra == null) { if (extra == null) {
extra = {}; extra = {};
} }
type = extra.type, whenModified = extra.whenModified, upCallbacks = extra.upCallbacks, form = extra.form; type = extra.type, whenModified = extra.whenModified, bypassCache = extra.bypassCache, upCallbacks = extra.upCallbacks, form = extra.form;
if (/\.json$/.test(url)) { if (/\.json$/.test(url)) {
if (options.responseType == null) { if (options.responseType == null) {
options.responseType = 'json'; options.responseType = 'json';
@ -4622,7 +4622,7 @@ $ = (function() {
if ($.engine === 'blink') { if ($.engine === 'blink') {
params.push("s=" + whenModified); params.push("s=" + whenModified);
} }
if (Site.software === 'yotsuba') { if (Site.software === 'yotsuba' && bypassCache) {
params.push("t=" + (Date.now())); params.push("t=" + (Date.now()));
} }
url0 = url; url0 = url;
@ -5559,7 +5559,10 @@ CrossOrigin = (function() {
} }
}); });
}; };
})() })(),
permission: function(cb) {
return cb();
}
}; };
return CrossOrigin; return CrossOrigin;
@ -19378,7 +19381,8 @@ ThreadStats = (function() {
return $.ajax(location.protocol + "//a.4cdn.org/" + ThreadStats.thread.board + "/threads.json", { return $.ajax(location.protocol + "//a.4cdn.org/" + ThreadStats.thread.board + "/threads.json", {
onload: ThreadStats.onThreadsLoad onload: ThreadStats.onThreadsLoad
}, { }, {
whenModified: 'ThreadStats' whenModified: 'ThreadStats',
bypassCache: true
}); });
}, },
onThreadsLoad: function() { onThreadsLoad: function() {
@ -19716,7 +19720,8 @@ ThreadUpdater = (function() {
onloadend: ThreadUpdater.cb.load, onloadend: ThreadUpdater.cb.load,
timeout: $.MINUTE timeout: $.MINUTE
}, { }, {
whenModified: 'ThreadUpdater' whenModified: 'ThreadUpdater',
bypassCache: true
}); });
}, },
updateThreadStatus: function(type, status) { updateThreadStatus: function(type, status) {
@ -20231,6 +20236,8 @@ ThreadWatcher = (function() {
return ThreadWatcher.parseStatus.call(this, thread); return ThreadWatcher.parseStatus.call(this, thread);
}, },
timeout: $.MINUTE timeout: $.MINUTE
}, {
whenModified: force ? false : 'ThreadWatcher'
}); });
} else { } else {
req = { req = {
@ -20314,7 +20321,7 @@ ThreadWatcher = (function() {
while (match = regexp.exec(postObj.com)) { while (match = regexp.exec(postObj.com)) {
if (QuoteYou.db.get({ if (QuoteYou.db.get({
siteID: siteID, siteID: siteID,
boardID: match[1] || boardID, boardID: match[1] ? encodeURIComponent(match[1]) : boardID,
threadID: match[2] || threadID, threadID: match[2] || threadID,
postID: match[3] || match[2] || threadID postID: match[3] || match[2] || threadID
})) { })) {
@ -22464,20 +22471,22 @@ QR = (function() {
} }
}, },
handleUrl: function(urlDefault) { handleUrl: function(urlDefault) {
var url;
QR.open(); QR.open();
QR.selected.preventAutoPost(); QR.selected.preventAutoPost();
url = prompt('Enter a URL:', urlDefault); return CrossOrigin.permission(function() {
if (url === null) { var url;
return; url = prompt('Enter a URL:', urlDefault);
} if (url === null) {
QR.nodes.fileButton.focus(); return;
return CrossOrigin.file(url, function(blob) {
if (blob && !/^text\//.test(blob.type)) {
return QR.handleFiles([blob]);
} else {
return QR.error("Can't load file.");
} }
QR.nodes.fileButton.focus();
return CrossOrigin.file(url, function(blob) {
if (blob && !/^text\//.test(blob.type)) {
return QR.handleFiles([blob]);
} else {
return QR.error("Can't load file.");
}
});
}); });
}, },
handleFiles: function(files) { handleFiles: function(files) {

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

View File

@ -1,4 +1,4 @@
{ {
"version": "1.14.5.12", "version": "1.14.5.13",
"date": "2019-01-28T10:07:50.479Z" "date": "2019-03-08T23:32:11.908Z"
} }