Release 4chan X v1.11.9.1.
This commit is contained in:
parent
d74c3cacf9
commit
429bf49d97
@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
|
|||||||
|
|
||||||
### v1.11.9
|
### v1.11.9
|
||||||
|
|
||||||
|
**v1.11.9.1** *(2015-08-16)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.9.1/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.9.1/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||||
|
- Add more info and a reporting link to error messages.
|
||||||
|
|
||||||
**v1.11.9.0** *(2015-08-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.9.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.9.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
**v1.11.9.0** *(2015-08-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.9.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.9.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||||
- Based on v1.11.8.8.
|
- Based on v1.11.8.8.
|
||||||
- Add `Randomize Filename` option: Replaces filenames with a random timestamp from the past year.
|
- Add `Randomize Filename` option: Replaces filenames with a random timestamp from the past year.
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.11.9.0
|
// @version 1.11.9.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.11.9.0
|
// @version 1.11.9.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -412,7 +412,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.9.0',
|
VERSION: '1.11.9.1',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -4620,9 +4620,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Menu.prototype.insertEntry = function(entry, parent, data) {
|
Menu.prototype.insertEntry = function(entry, parent, data) {
|
||||||
var k, len1, ref, subEntry, submenu;
|
var err, k, len1, ref, subEntry, submenu;
|
||||||
if (typeof entry.open === 'function') {
|
if (typeof entry.open === 'function') {
|
||||||
if (!entry.open(data)) {
|
try {
|
||||||
|
if (!entry.open(data)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (_error) {
|
||||||
|
err = _error;
|
||||||
|
Main.handleErrors({
|
||||||
|
message: "Error in building the " + this.type + " menu.",
|
||||||
|
error: err
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -12430,10 +12439,10 @@
|
|||||||
return DeleteLink.nodes.links[+fileOnly].textContent = DeleteLink.linkText(fileOnly);
|
return DeleteLink.nodes.links[+fileOnly].textContent = DeleteLink.linkText(fileOnly);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (!fileOnly) {
|
||||||
|
QR.cooldown["delete"](post);
|
||||||
|
}
|
||||||
if (resDoc.title === 'Updating index...') {
|
if (resDoc.title === 'Updating index...') {
|
||||||
if (!fileOnly) {
|
|
||||||
QR.cooldown["delete"](post);
|
|
||||||
}
|
|
||||||
(post.origin || post).kill(fileOnly);
|
(post.origin || post).kill(fileOnly);
|
||||||
}
|
}
|
||||||
if (post.fullID === DeleteLink.post.fullID) {
|
if (post.fullID === DeleteLink.post.fullID) {
|
||||||
@ -17461,11 +17470,11 @@
|
|||||||
error = errors[0];
|
error = errors[0];
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
new Notice('error', Main.parseError(error), 15);
|
new Notice('error', Main.parseError(error, Main.reportLink([error])), 15);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
div = $.el('div', {
|
div = $.el('div', {
|
||||||
innerHTML: E(errors.length) + " errors occurred. [<a href=\"javascript:;\">show</a>]"
|
innerHTML: E(errors.length) + " errors occurred." + Main.reportLink(errors).innerHTML + " [<a href=\"javascript:;\">show</a>]"
|
||||||
});
|
});
|
||||||
$.on(div.lastElementChild, 'click', function() {
|
$.on(div.lastElementChild, 'click', function() {
|
||||||
var ref;
|
var ref;
|
||||||
@ -17480,16 +17489,34 @@
|
|||||||
}
|
}
|
||||||
return new Notice('error', [div, logs], 30);
|
return new Notice('error', [div, logs], 30);
|
||||||
},
|
},
|
||||||
parseError: function(data) {
|
parseError: function(data, reportLink) {
|
||||||
var error, message;
|
var context, error, lines, message, ref, ref1;
|
||||||
c.error(data.message, data.error.stack);
|
c.error(data.message, data.error.stack);
|
||||||
message = $.el('div', {
|
message = $.el('div', {
|
||||||
textContent: data.message
|
innerHTML: E(data.message) + (reportLink ? reportLink.innerHTML : "")
|
||||||
});
|
});
|
||||||
error = $.el('div', {
|
error = $.el('div', {
|
||||||
textContent: (data.error.name || 'Error') + ": " + (data.error.message || 'see console for details')
|
textContent: (data.error.name || 'Error') + ": " + (data.error.message || 'see console for details')
|
||||||
});
|
});
|
||||||
return [message, error];
|
lines = ((ref = data.error.stack) != null ? (ref1 = ref.match(/\d+(?=:\d+\)?$)/mg)) != null ? ref1.join().replace(/^/, ' at ') : void 0 : void 0) || '';
|
||||||
|
context = $.el('div', {
|
||||||
|
textContent: "(4chan X ccd0 v" + g.VERSION + " userscript on " + $.engine + lines + ")"
|
||||||
|
});
|
||||||
|
return [message, error, context];
|
||||||
|
},
|
||||||
|
reportLink: function(errors) {
|
||||||
|
var data, details, ref, title, url;
|
||||||
|
data = errors[0];
|
||||||
|
title = data.message;
|
||||||
|
if (errors.length > 1) {
|
||||||
|
title += " (+" + (errors.length - 1) + " other errors)";
|
||||||
|
}
|
||||||
|
details = "[Please describe the steps needed to reproduce this error.]\n\nScript: 4chan X ccd0 v" + g.VERSION + " userscript\nUser agent: " + navigator.userAgent + "\nURL: " + location.href + "\n\n" + data.error + "\n" + (((ref = data.error.stack) != null ? ref.replace(data.error.toString(), '').trim() : void 0) || '');
|
||||||
|
details = details.replace(/file:\/{3}.+\//g, '');
|
||||||
|
url = "https://gitreports.com/issue/ccd0/4chan-x?issue_title=" + (encodeURIComponent(title)) + "&details=" + (encodeURIComponent(details));
|
||||||
|
return {
|
||||||
|
innerHTML: " [<a href=\"" + E(url) + "\" target=\"_blank\">report</a>]"
|
||||||
|
};
|
||||||
},
|
},
|
||||||
isThisPageLegit: function() {
|
isThisPageLegit: function() {
|
||||||
var ref;
|
var ref;
|
||||||
|
|||||||
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.9.0
|
// @version 1.11.9.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -411,7 +411,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.9.0',
|
VERSION: '1.11.9.1',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -4619,9 +4619,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Menu.prototype.insertEntry = function(entry, parent, data) {
|
Menu.prototype.insertEntry = function(entry, parent, data) {
|
||||||
var k, len1, ref, subEntry, submenu;
|
var err, k, len1, ref, subEntry, submenu;
|
||||||
if (typeof entry.open === 'function') {
|
if (typeof entry.open === 'function') {
|
||||||
if (!entry.open(data)) {
|
try {
|
||||||
|
if (!entry.open(data)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (_error) {
|
||||||
|
err = _error;
|
||||||
|
Main.handleErrors({
|
||||||
|
message: "Error in building the " + this.type + " menu.",
|
||||||
|
error: err
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -12429,10 +12438,10 @@
|
|||||||
return DeleteLink.nodes.links[+fileOnly].textContent = DeleteLink.linkText(fileOnly);
|
return DeleteLink.nodes.links[+fileOnly].textContent = DeleteLink.linkText(fileOnly);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (!fileOnly) {
|
||||||
|
QR.cooldown["delete"](post);
|
||||||
|
}
|
||||||
if (resDoc.title === 'Updating index...') {
|
if (resDoc.title === 'Updating index...') {
|
||||||
if (!fileOnly) {
|
|
||||||
QR.cooldown["delete"](post);
|
|
||||||
}
|
|
||||||
(post.origin || post).kill(fileOnly);
|
(post.origin || post).kill(fileOnly);
|
||||||
}
|
}
|
||||||
if (post.fullID === DeleteLink.post.fullID) {
|
if (post.fullID === DeleteLink.post.fullID) {
|
||||||
@ -17460,11 +17469,11 @@
|
|||||||
error = errors[0];
|
error = errors[0];
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
new Notice('error', Main.parseError(error), 15);
|
new Notice('error', Main.parseError(error, Main.reportLink([error])), 15);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
div = $.el('div', {
|
div = $.el('div', {
|
||||||
innerHTML: E(errors.length) + " errors occurred. [<a href=\"javascript:;\">show</a>]"
|
innerHTML: E(errors.length) + " errors occurred." + Main.reportLink(errors).innerHTML + " [<a href=\"javascript:;\">show</a>]"
|
||||||
});
|
});
|
||||||
$.on(div.lastElementChild, 'click', function() {
|
$.on(div.lastElementChild, 'click', function() {
|
||||||
var ref;
|
var ref;
|
||||||
@ -17479,16 +17488,34 @@
|
|||||||
}
|
}
|
||||||
return new Notice('error', [div, logs], 30);
|
return new Notice('error', [div, logs], 30);
|
||||||
},
|
},
|
||||||
parseError: function(data) {
|
parseError: function(data, reportLink) {
|
||||||
var error, message;
|
var context, error, lines, message, ref, ref1;
|
||||||
c.error(data.message, data.error.stack);
|
c.error(data.message, data.error.stack);
|
||||||
message = $.el('div', {
|
message = $.el('div', {
|
||||||
textContent: data.message
|
innerHTML: E(data.message) + (reportLink ? reportLink.innerHTML : "")
|
||||||
});
|
});
|
||||||
error = $.el('div', {
|
error = $.el('div', {
|
||||||
textContent: (data.error.name || 'Error') + ": " + (data.error.message || 'see console for details')
|
textContent: (data.error.name || 'Error') + ": " + (data.error.message || 'see console for details')
|
||||||
});
|
});
|
||||||
return [message, error];
|
lines = ((ref = data.error.stack) != null ? (ref1 = ref.match(/\d+(?=:\d+\)?$)/mg)) != null ? ref1.join().replace(/^/, ' at ') : void 0 : void 0) || '';
|
||||||
|
context = $.el('div', {
|
||||||
|
textContent: "(4chan X ccd0 v" + g.VERSION + " userscript on " + $.engine + lines + ")"
|
||||||
|
});
|
||||||
|
return [message, error, context];
|
||||||
|
},
|
||||||
|
reportLink: function(errors) {
|
||||||
|
var data, details, ref, title, url;
|
||||||
|
data = errors[0];
|
||||||
|
title = data.message;
|
||||||
|
if (errors.length > 1) {
|
||||||
|
title += " (+" + (errors.length - 1) + " other errors)";
|
||||||
|
}
|
||||||
|
details = "[Please describe the steps needed to reproduce this error.]\n\nScript: 4chan X ccd0 v" + g.VERSION + " userscript\nUser agent: " + navigator.userAgent + "\nURL: " + location.href + "\n\n" + data.error + "\n" + (((ref = data.error.stack) != null ? ref.replace(data.error.toString(), '').trim() : void 0) || '');
|
||||||
|
details = details.replace(/file:\/{3}.+\//g, '');
|
||||||
|
url = "https://gitreports.com/issue/ccd0/4chan-x?issue_title=" + (encodeURIComponent(title)) + "&details=" + (encodeURIComponent(details));
|
||||||
|
return {
|
||||||
|
innerHTML: " [<a href=\"" + E(url) + "\" target=\"_blank\">report</a>]"
|
||||||
|
};
|
||||||
},
|
},
|
||||||
isThisPageLegit: function() {
|
isThisPageLegit: function() {
|
||||||
var ref;
|
var ref;
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.9.0
|
// @version 1.11.9.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.11.9.0
|
// @version 1.11.9.1
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -412,7 +412,7 @@
|
|||||||
doc = d.documentElement;
|
doc = d.documentElement;
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.11.9.0',
|
VERSION: '1.11.9.1',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -4620,9 +4620,18 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Menu.prototype.insertEntry = function(entry, parent, data) {
|
Menu.prototype.insertEntry = function(entry, parent, data) {
|
||||||
var k, len1, ref, subEntry, submenu;
|
var err, k, len1, ref, subEntry, submenu;
|
||||||
if (typeof entry.open === 'function') {
|
if (typeof entry.open === 'function') {
|
||||||
if (!entry.open(data)) {
|
try {
|
||||||
|
if (!entry.open(data)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (_error) {
|
||||||
|
err = _error;
|
||||||
|
Main.handleErrors({
|
||||||
|
message: "Error in building the " + this.type + " menu.",
|
||||||
|
error: err
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -12430,10 +12439,10 @@
|
|||||||
return DeleteLink.nodes.links[+fileOnly].textContent = DeleteLink.linkText(fileOnly);
|
return DeleteLink.nodes.links[+fileOnly].textContent = DeleteLink.linkText(fileOnly);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if (!fileOnly) {
|
||||||
|
QR.cooldown["delete"](post);
|
||||||
|
}
|
||||||
if (resDoc.title === 'Updating index...') {
|
if (resDoc.title === 'Updating index...') {
|
||||||
if (!fileOnly) {
|
|
||||||
QR.cooldown["delete"](post);
|
|
||||||
}
|
|
||||||
(post.origin || post).kill(fileOnly);
|
(post.origin || post).kill(fileOnly);
|
||||||
}
|
}
|
||||||
if (post.fullID === DeleteLink.post.fullID) {
|
if (post.fullID === DeleteLink.post.fullID) {
|
||||||
@ -17461,11 +17470,11 @@
|
|||||||
error = errors[0];
|
error = errors[0];
|
||||||
}
|
}
|
||||||
if (error) {
|
if (error) {
|
||||||
new Notice('error', Main.parseError(error), 15);
|
new Notice('error', Main.parseError(error, Main.reportLink([error])), 15);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
div = $.el('div', {
|
div = $.el('div', {
|
||||||
innerHTML: E(errors.length) + " errors occurred. [<a href=\"javascript:;\">show</a>]"
|
innerHTML: E(errors.length) + " errors occurred." + Main.reportLink(errors).innerHTML + " [<a href=\"javascript:;\">show</a>]"
|
||||||
});
|
});
|
||||||
$.on(div.lastElementChild, 'click', function() {
|
$.on(div.lastElementChild, 'click', function() {
|
||||||
var ref;
|
var ref;
|
||||||
@ -17480,16 +17489,34 @@
|
|||||||
}
|
}
|
||||||
return new Notice('error', [div, logs], 30);
|
return new Notice('error', [div, logs], 30);
|
||||||
},
|
},
|
||||||
parseError: function(data) {
|
parseError: function(data, reportLink) {
|
||||||
var error, message;
|
var context, error, lines, message, ref, ref1;
|
||||||
c.error(data.message, data.error.stack);
|
c.error(data.message, data.error.stack);
|
||||||
message = $.el('div', {
|
message = $.el('div', {
|
||||||
textContent: data.message
|
innerHTML: E(data.message) + (reportLink ? reportLink.innerHTML : "")
|
||||||
});
|
});
|
||||||
error = $.el('div', {
|
error = $.el('div', {
|
||||||
textContent: (data.error.name || 'Error') + ": " + (data.error.message || 'see console for details')
|
textContent: (data.error.name || 'Error') + ": " + (data.error.message || 'see console for details')
|
||||||
});
|
});
|
||||||
return [message, error];
|
lines = ((ref = data.error.stack) != null ? (ref1 = ref.match(/\d+(?=:\d+\)?$)/mg)) != null ? ref1.join().replace(/^/, ' at ') : void 0 : void 0) || '';
|
||||||
|
context = $.el('div', {
|
||||||
|
textContent: "(4chan X ccd0 v" + g.VERSION + " userscript on " + $.engine + lines + ")"
|
||||||
|
});
|
||||||
|
return [message, error, context];
|
||||||
|
},
|
||||||
|
reportLink: function(errors) {
|
||||||
|
var data, details, ref, title, url;
|
||||||
|
data = errors[0];
|
||||||
|
title = data.message;
|
||||||
|
if (errors.length > 1) {
|
||||||
|
title += " (+" + (errors.length - 1) + " other errors)";
|
||||||
|
}
|
||||||
|
details = "[Please describe the steps needed to reproduce this error.]\n\nScript: 4chan X ccd0 v" + g.VERSION + " userscript\nUser agent: " + navigator.userAgent + "\nURL: " + location.href + "\n\n" + data.error + "\n" + (((ref = data.error.stack) != null ? ref.replace(data.error.toString(), '').trim() : void 0) || '');
|
||||||
|
details = details.replace(/file:\/{3}.+\//g, '');
|
||||||
|
url = "https://gitreports.com/issue/ccd0/4chan-x?issue_title=" + (encodeURIComponent(title)) + "&details=" + (encodeURIComponent(details));
|
||||||
|
return {
|
||||||
|
innerHTML: " [<a href=\"" + E(url) + "\" target=\"_blank\">report</a>]"
|
||||||
|
};
|
||||||
},
|
},
|
||||||
isThisPageLegit: function() {
|
isThisPageLegit: function() {
|
||||||
var ref;
|
var ref;
|
||||||
|
|||||||
Binary file not shown.
@ -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.9.0' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.9.1' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -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.9.0' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.9.1' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -4,8 +4,8 @@
|
|||||||
"meta": {
|
"meta": {
|
||||||
"name": "4chan X",
|
"name": "4chan X",
|
||||||
"fork": "ccd0",
|
"fork": "ccd0",
|
||||||
"version": "1.11.9.0",
|
"version": "1.11.9.1",
|
||||||
"date": "2015-08-15T18:45:44.807Z",
|
"date": "2015-08-16T10:52:53.645Z",
|
||||||
"page": "https://www.4chan-x.net/",
|
"page": "https://www.4chan-x.net/",
|
||||||
"downloads": "https://www.4chan-x.net/builds/",
|
"downloads": "https://www.4chan-x.net/builds/",
|
||||||
"oldVersions": "https://raw.githubusercontent.com/ccd0/4chan-x/",
|
"oldVersions": "https://raw.githubusercontent.com/ccd0/4chan-x/",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user