Release 4chan X v1.11.21.3.

This commit is contained in:
ccd0 2015-12-15 23:25:44 -08:00
parent 14298e1e30
commit 1a9a0d7a4d
13 changed files with 78 additions and 51 deletions

View File

@ -4,6 +4,9 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
### v1.11.21 ### v1.11.21
**v1.11.21.3** *(2015-12-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.21.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.21.3/builds/4chan-X-noupdate.crx "Chromium version")]
- Add `Remember Your Posts` option to control enable/disable post history, previously controlled by `Mark Quotes of You`.
**v1.11.21.2** *(2015-12-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.21.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.21.2/builds/4chan-X-noupdate.crx "Chromium version")] **v1.11.21.2** *(2015-12-15)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.21.2/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.21.2/builds/4chan-X-noupdate.crx "Chromium version")]
- Fix minor bugs in migration of old sauce settings. - Fix minor bugs in migration of old sauce settings.

Binary file not shown.

View File

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

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X beta // @name 4chan X beta
// @version 1.11.21.2 // @version 1.11.21.3
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -260,9 +260,10 @@
'Quote Previewing': [true, 'Show quoted post on hover.'], 'Quote Previewing': [true, 'Show quoted post on hover.'],
'Quote Highlighting': [true, 'Highlight the previewed post.', 1], 'Quote Highlighting': [true, 'Highlight the previewed post.', 1],
'Resurrect Quotes': [true, 'Link dead quotes to the archives.'], 'Resurrect Quotes': [true, 'Link dead quotes to the archives.'],
'Mark Quotes of You': [true, 'Add \'(You)\' to quotes linking to your posts.'], 'Remember Your Posts': [true, 'Remember your posting history.'],
'Mark Quotes of You': [true, 'Add \'(You)\' to quotes linking to your posts.', 1],
'Highlight Posts Quoting You': [true, 'Highlights any posts that contain a quote to your post.', 1], 'Highlight Posts Quoting You': [true, 'Highlights any posts that contain a quote to your post.', 1],
'Highlight Own Posts': [true, 'Highlights own posts if Mark Quotes of You is enabled.', 1], 'Highlight Own Posts': [true, 'Highlights own posts.', 1],
'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'], 'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'],
'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'], 'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'],
'Quote Threading': [false, 'Thread conversations'] 'Quote Threading': [false, 'Thread conversations']
@ -433,7 +434,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.21.2', VERSION: '1.11.21.3',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -6194,11 +6195,11 @@
if (this.isClone || !this.quotes.length || this.isRebuilt) { if (this.isClone || !this.quotes.length || this.isRebuilt) {
return; return;
} }
markYours = (ref = QR.db) != null ? ref.get({ markYours = Conf['Mark Quotes of You'] && ((ref = QR.db) != null ? ref.get({
boardID: this.board.ID, boardID: this.board.ID,
threadID: this.thread.ID, threadID: this.thread.ID,
postID: this.ID postID: this.ID
}) : void 0; }) : void 0);
a = $.el('a', { a = $.el('a', {
href: Build.postURL(this.board.ID, this.thread.ID, this.ID), href: Build.postURL(this.board.ID, this.thread.ID, this.ID),
className: this.isHidden ? 'filtered backlink' : 'backlink', className: this.isHidden ? 'filtered backlink' : 'backlink',
@ -6759,7 +6760,7 @@
QuoteYou = { QuoteYou = {
init: function() { init: function() {
var ref; var ref;
if (!(((ref = g.VIEW) === 'index' || ref === 'thread') && Conf['Mark Quotes of You'] && Conf['Quick Reply'])) { if (!(((ref = g.VIEW) === 'index' || ref === 'thread') && Conf['Remember Your Posts'] && Conf['Quick Reply'])) {
return; return;
} }
if (Conf['Highlight Own Posts']) { if (Conf['Highlight Own Posts']) {
@ -6798,7 +6799,9 @@
if (!(QR.db.get(Get.postDataFromLink(quotelink)))) { if (!(QR.db.get(Get.postDataFromLink(quotelink)))) {
continue; continue;
} }
$.add(quotelink, $.tn(QuoteYou.text)); if (Conf['Mark Quotes of You']) {
$.add(quotelink, $.tn(QuoteYou.text));
}
$.addClass(quotelink, 'you'); $.addClass(quotelink, 'you');
$.addClass(this.nodes.root, 'quotesYou'); $.addClass(this.nodes.root, 'quotesYou');
} }
@ -6981,9 +6984,9 @@
if (!Conf['Quick Reply']) { if (!Conf['Quick Reply']) {
return; return;
} }
if (Conf['Mark Quotes of You']) { if (Conf['Remember Your Posts']) {
$.sync('Mark Quotes of You', function(enabled) { $.sync('Remember Your Posts', function(enabled) {
return Conf['Mark Quotes of You'] = enabled; return Conf['Remember Your Posts'] = enabled;
}); });
this.db = new DataBoard('yourPosts'); this.db = new DataBoard('yourPosts');
} }
@ -7873,8 +7876,8 @@
postID = +postID; postID = +postID;
threadID = +threadID || postID; threadID = +threadID || postID;
isReply = threadID !== postID; isReply = threadID !== postID;
$.forceSync('Mark Quotes of You'); $.forceSync('Remember Your Posts');
if (Conf['Mark Quotes of You']) { if (Conf['Remember Your Posts']) {
if ((ref3 = QR.db) != null) { if ((ref3 = QR.db) != null) {
ref3.set({ ref3.set({
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
@ -8892,7 +8895,7 @@
PostSuccessful = { PostSuccessful = {
init: function() { init: function() {
if (!Conf['Mark Quotes of You']) { if (!Conf['Remember Your Posts']) {
return; return;
} }
return $.ready(this.ready); return $.ready(this.ready);
@ -17154,7 +17157,7 @@
} }
}, },
upgrade: function(data, version) { upgrade: function(data, version) {
var boardID, changes, compareString, k, key, len1, name, record, ref, ref1, ref2, ref3, ref4, ref5, rice, type, uids, value; var boardID, changes, compareString, k, key, len1, name, record, ref, ref1, ref2, ref3, ref4, ref5, ref6, rice, type, uids, value;
changes = {}; changes = {};
compareString = version.replace(/\d+/g, function(x) { compareString = version.replace(/\d+/g, function(x) {
return ('0000' + x).slice(-5); return ('0000' + x).slice(-5);
@ -17240,6 +17243,11 @@
changes['sauces'] = ((ref5 = changes['sauces']) != null ? ref5 : data['sauces']).replace(/^#?\s*https:\/\/www\.google\.com\/searchbyimage\?image_url=%(?:IMG|URL)(?=$|;)/mg, '$&%3Fs.jpg'); changes['sauces'] = ((ref5 = changes['sauces']) != null ? ref5 : data['sauces']).replace(/^#?\s*https:\/\/www\.google\.com\/searchbyimage\?image_url=%(?:IMG|URL)(?=$|;)/mg, '$&%3Fs.jpg');
} }
} }
if (compareString < '00001.00011.00021.00003') {
if (data['Remember Your Posts'] == null) {
changes['Remember Your Posts'] = (ref6 = data['Mark Quotes of You']) != null ? ref6 : true;
}
}
return changes; return changes;
}, },
loadSettings: function(data, cb) { loadSettings: function(data, cb) {

Binary file not shown.

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.21.2 // @version 1.11.21.3
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -260,9 +260,10 @@
'Quote Previewing': [true, 'Show quoted post on hover.'], 'Quote Previewing': [true, 'Show quoted post on hover.'],
'Quote Highlighting': [true, 'Highlight the previewed post.', 1], 'Quote Highlighting': [true, 'Highlight the previewed post.', 1],
'Resurrect Quotes': [true, 'Link dead quotes to the archives.'], 'Resurrect Quotes': [true, 'Link dead quotes to the archives.'],
'Mark Quotes of You': [true, 'Add \'(You)\' to quotes linking to your posts.'], 'Remember Your Posts': [true, 'Remember your posting history.'],
'Mark Quotes of You': [true, 'Add \'(You)\' to quotes linking to your posts.', 1],
'Highlight Posts Quoting You': [true, 'Highlights any posts that contain a quote to your post.', 1], 'Highlight Posts Quoting You': [true, 'Highlights any posts that contain a quote to your post.', 1],
'Highlight Own Posts': [true, 'Highlights own posts if Mark Quotes of You is enabled.', 1], 'Highlight Own Posts': [true, 'Highlights own posts.', 1],
'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'], 'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'],
'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'], 'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'],
'Quote Threading': [false, 'Thread conversations'] 'Quote Threading': [false, 'Thread conversations']
@ -433,7 +434,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.21.2', VERSION: '1.11.21.3',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -6194,11 +6195,11 @@
if (this.isClone || !this.quotes.length || this.isRebuilt) { if (this.isClone || !this.quotes.length || this.isRebuilt) {
return; return;
} }
markYours = (ref = QR.db) != null ? ref.get({ markYours = Conf['Mark Quotes of You'] && ((ref = QR.db) != null ? ref.get({
boardID: this.board.ID, boardID: this.board.ID,
threadID: this.thread.ID, threadID: this.thread.ID,
postID: this.ID postID: this.ID
}) : void 0; }) : void 0);
a = $.el('a', { a = $.el('a', {
href: Build.postURL(this.board.ID, this.thread.ID, this.ID), href: Build.postURL(this.board.ID, this.thread.ID, this.ID),
className: this.isHidden ? 'filtered backlink' : 'backlink', className: this.isHidden ? 'filtered backlink' : 'backlink',
@ -6759,7 +6760,7 @@
QuoteYou = { QuoteYou = {
init: function() { init: function() {
var ref; var ref;
if (!(((ref = g.VIEW) === 'index' || ref === 'thread') && Conf['Mark Quotes of You'] && Conf['Quick Reply'])) { if (!(((ref = g.VIEW) === 'index' || ref === 'thread') && Conf['Remember Your Posts'] && Conf['Quick Reply'])) {
return; return;
} }
if (Conf['Highlight Own Posts']) { if (Conf['Highlight Own Posts']) {
@ -6798,7 +6799,9 @@
if (!(QR.db.get(Get.postDataFromLink(quotelink)))) { if (!(QR.db.get(Get.postDataFromLink(quotelink)))) {
continue; continue;
} }
$.add(quotelink, $.tn(QuoteYou.text)); if (Conf['Mark Quotes of You']) {
$.add(quotelink, $.tn(QuoteYou.text));
}
$.addClass(quotelink, 'you'); $.addClass(quotelink, 'you');
$.addClass(this.nodes.root, 'quotesYou'); $.addClass(this.nodes.root, 'quotesYou');
} }
@ -6981,9 +6984,9 @@
if (!Conf['Quick Reply']) { if (!Conf['Quick Reply']) {
return; return;
} }
if (Conf['Mark Quotes of You']) { if (Conf['Remember Your Posts']) {
$.sync('Mark Quotes of You', function(enabled) { $.sync('Remember Your Posts', function(enabled) {
return Conf['Mark Quotes of You'] = enabled; return Conf['Remember Your Posts'] = enabled;
}); });
this.db = new DataBoard('yourPosts'); this.db = new DataBoard('yourPosts');
} }
@ -7873,8 +7876,8 @@
postID = +postID; postID = +postID;
threadID = +threadID || postID; threadID = +threadID || postID;
isReply = threadID !== postID; isReply = threadID !== postID;
$.forceSync('Mark Quotes of You'); $.forceSync('Remember Your Posts');
if (Conf['Mark Quotes of You']) { if (Conf['Remember Your Posts']) {
if ((ref3 = QR.db) != null) { if ((ref3 = QR.db) != null) {
ref3.set({ ref3.set({
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
@ -8892,7 +8895,7 @@
PostSuccessful = { PostSuccessful = {
init: function() { init: function() {
if (!Conf['Mark Quotes of You']) { if (!Conf['Remember Your Posts']) {
return; return;
} }
return $.ready(this.ready); return $.ready(this.ready);
@ -17154,7 +17157,7 @@
} }
}, },
upgrade: function(data, version) { upgrade: function(data, version) {
var boardID, changes, compareString, k, key, len1, name, record, ref, ref1, ref2, ref3, ref4, ref5, rice, type, uids, value; var boardID, changes, compareString, k, key, len1, name, record, ref, ref1, ref2, ref3, ref4, ref5, ref6, rice, type, uids, value;
changes = {}; changes = {};
compareString = version.replace(/\d+/g, function(x) { compareString = version.replace(/\d+/g, function(x) {
return ('0000' + x).slice(-5); return ('0000' + x).slice(-5);
@ -17240,6 +17243,11 @@
changes['sauces'] = ((ref5 = changes['sauces']) != null ? ref5 : data['sauces']).replace(/^#?\s*https:\/\/www\.google\.com\/searchbyimage\?image_url=%(?:IMG|URL)(?=$|;)/mg, '$&%3Fs.jpg'); changes['sauces'] = ((ref5 = changes['sauces']) != null ? ref5 : data['sauces']).replace(/^#?\s*https:\/\/www\.google\.com\/searchbyimage\?image_url=%(?:IMG|URL)(?=$|;)/mg, '$&%3Fs.jpg');
} }
} }
if (compareString < '00001.00011.00021.00003') {
if (data['Remember Your Posts'] == null) {
changes['Remember Your Posts'] = (ref6 = data['Mark Quotes of You']) != null ? ref6 : true;
}
}
return changes; return changes;
}, },
loadSettings: function(data, cb) { loadSettings: function(data, cb) {

Binary file not shown.

View File

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

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript // Generated by CoffeeScript
// ==UserScript== // ==UserScript==
// @name 4chan X // @name 4chan X
// @version 1.11.21.2 // @version 1.11.21.3
// @minGMVer 1.14 // @minGMVer 1.14
// @minFFVer 26 // @minFFVer 26
// @namespace 4chan-X // @namespace 4chan-X
@ -260,9 +260,10 @@
'Quote Previewing': [true, 'Show quoted post on hover.'], 'Quote Previewing': [true, 'Show quoted post on hover.'],
'Quote Highlighting': [true, 'Highlight the previewed post.', 1], 'Quote Highlighting': [true, 'Highlight the previewed post.', 1],
'Resurrect Quotes': [true, 'Link dead quotes to the archives.'], 'Resurrect Quotes': [true, 'Link dead quotes to the archives.'],
'Mark Quotes of You': [true, 'Add \'(You)\' to quotes linking to your posts.'], 'Remember Your Posts': [true, 'Remember your posting history.'],
'Mark Quotes of You': [true, 'Add \'(You)\' to quotes linking to your posts.', 1],
'Highlight Posts Quoting You': [true, 'Highlights any posts that contain a quote to your post.', 1], 'Highlight Posts Quoting You': [true, 'Highlights any posts that contain a quote to your post.', 1],
'Highlight Own Posts': [true, 'Highlights own posts if Mark Quotes of You is enabled.', 1], 'Highlight Own Posts': [true, 'Highlights own posts.', 1],
'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'], 'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'],
'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'], 'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'],
'Quote Threading': [false, 'Thread conversations'] 'Quote Threading': [false, 'Thread conversations']
@ -433,7 +434,7 @@
doc = d.documentElement; doc = d.documentElement;
g = { g = {
VERSION: '1.11.21.2', VERSION: '1.11.21.3',
NAMESPACE: '4chan X.', NAMESPACE: '4chan X.',
boards: {} boards: {}
}; };
@ -6194,11 +6195,11 @@
if (this.isClone || !this.quotes.length || this.isRebuilt) { if (this.isClone || !this.quotes.length || this.isRebuilt) {
return; return;
} }
markYours = (ref = QR.db) != null ? ref.get({ markYours = Conf['Mark Quotes of You'] && ((ref = QR.db) != null ? ref.get({
boardID: this.board.ID, boardID: this.board.ID,
threadID: this.thread.ID, threadID: this.thread.ID,
postID: this.ID postID: this.ID
}) : void 0; }) : void 0);
a = $.el('a', { a = $.el('a', {
href: Build.postURL(this.board.ID, this.thread.ID, this.ID), href: Build.postURL(this.board.ID, this.thread.ID, this.ID),
className: this.isHidden ? 'filtered backlink' : 'backlink', className: this.isHidden ? 'filtered backlink' : 'backlink',
@ -6759,7 +6760,7 @@
QuoteYou = { QuoteYou = {
init: function() { init: function() {
var ref; var ref;
if (!(((ref = g.VIEW) === 'index' || ref === 'thread') && Conf['Mark Quotes of You'] && Conf['Quick Reply'])) { if (!(((ref = g.VIEW) === 'index' || ref === 'thread') && Conf['Remember Your Posts'] && Conf['Quick Reply'])) {
return; return;
} }
if (Conf['Highlight Own Posts']) { if (Conf['Highlight Own Posts']) {
@ -6798,7 +6799,9 @@
if (!(QR.db.get(Get.postDataFromLink(quotelink)))) { if (!(QR.db.get(Get.postDataFromLink(quotelink)))) {
continue; continue;
} }
$.add(quotelink, $.tn(QuoteYou.text)); if (Conf['Mark Quotes of You']) {
$.add(quotelink, $.tn(QuoteYou.text));
}
$.addClass(quotelink, 'you'); $.addClass(quotelink, 'you');
$.addClass(this.nodes.root, 'quotesYou'); $.addClass(this.nodes.root, 'quotesYou');
} }
@ -6981,9 +6984,9 @@
if (!Conf['Quick Reply']) { if (!Conf['Quick Reply']) {
return; return;
} }
if (Conf['Mark Quotes of You']) { if (Conf['Remember Your Posts']) {
$.sync('Mark Quotes of You', function(enabled) { $.sync('Remember Your Posts', function(enabled) {
return Conf['Mark Quotes of You'] = enabled; return Conf['Remember Your Posts'] = enabled;
}); });
this.db = new DataBoard('yourPosts'); this.db = new DataBoard('yourPosts');
} }
@ -7873,8 +7876,8 @@
postID = +postID; postID = +postID;
threadID = +threadID || postID; threadID = +threadID || postID;
isReply = threadID !== postID; isReply = threadID !== postID;
$.forceSync('Mark Quotes of You'); $.forceSync('Remember Your Posts');
if (Conf['Mark Quotes of You']) { if (Conf['Remember Your Posts']) {
if ((ref3 = QR.db) != null) { if ((ref3 = QR.db) != null) {
ref3.set({ ref3.set({
boardID: g.BOARD.ID, boardID: g.BOARD.ID,
@ -8892,7 +8895,7 @@
PostSuccessful = { PostSuccessful = {
init: function() { init: function() {
if (!Conf['Mark Quotes of You']) { if (!Conf['Remember Your Posts']) {
return; return;
} }
return $.ready(this.ready); return $.ready(this.ready);
@ -17154,7 +17157,7 @@
} }
}, },
upgrade: function(data, version) { upgrade: function(data, version) {
var boardID, changes, compareString, k, key, len1, name, record, ref, ref1, ref2, ref3, ref4, ref5, rice, type, uids, value; var boardID, changes, compareString, k, key, len1, name, record, ref, ref1, ref2, ref3, ref4, ref5, ref6, rice, type, uids, value;
changes = {}; changes = {};
compareString = version.replace(/\d+/g, function(x) { compareString = version.replace(/\d+/g, function(x) {
return ('0000' + x).slice(-5); return ('0000' + x).slice(-5);
@ -17240,6 +17243,11 @@
changes['sauces'] = ((ref5 = changes['sauces']) != null ? ref5 : data['sauces']).replace(/^#?\s*https:\/\/www\.google\.com\/searchbyimage\?image_url=%(?:IMG|URL)(?=$|;)/mg, '$&%3Fs.jpg'); changes['sauces'] = ((ref5 = changes['sauces']) != null ? ref5 : data['sauces']).replace(/^#?\s*https:\/\/www\.google\.com\/searchbyimage\?image_url=%(?:IMG|URL)(?=$|;)/mg, '$&%3Fs.jpg');
} }
} }
if (compareString < '00001.00011.00021.00003') {
if (data['Remember Your Posts'] == null) {
changes['Remember Your Posts'] = (ref6 = data['Mark Quotes of You']) != null ? ref6 : true;
}
}
return changes; return changes;
}, },
loadSettings: function(data, cb) { loadSettings: function(data, cb) {

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

View File

@ -1,4 +1,4 @@
{ {
"version": "1.11.21.2", "version": "1.11.21.3",
"date": "2015-12-16T03:02:30.799Z" "date": "2015-12-16T07:24:58.151Z"
} }