Release 4chan X v1.14.17.0.
This commit is contained in:
parent
7926894a45
commit
27a980a388
@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
-Sometimes the changelog has notes (not comprehensive) acknowledging people's work. This does not mean the changes are their fault, only that their code was used. All changes to the script are chosen by and the fault of the maintainer (ccd0).
|
-Sometimes the changelog has notes (not comprehensive) acknowledging people's work. This does not mean the changes are their fault, only that their code was used. All changes to the script are chosen by and the fault of the maintainer (ccd0).
|
||||||
|
|
||||||
|
### v1.14.17
|
||||||
|
|
||||||
|
**v1.14.17.0** *(2020-04-01)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.17.0/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.17.0/builds/4chan-X-noupdate.crx)]
|
||||||
|
- Based on v1.14.16.7.
|
||||||
|
- Preliminary support for new Kissu UI.
|
||||||
|
|
||||||
### v1.14.16
|
### v1.14.16
|
||||||
|
|
||||||
**v1.14.16.7** *(2020-03-30)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.16.7/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.16.7/builds/4chan-X-noupdate.crx)]
|
**v1.14.16.7** *(2020-03-30)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.16.7/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.14.16.7/builds/4chan-X-noupdate.crx)]
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.14.16.7
|
// @version 1.14.17.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.14.16.7
|
// @version 1.14.17.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -215,7 +215,7 @@ docSet = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.14.16.7',
|
VERSION: '1.14.17.0',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
sites: Object.create(null),
|
sites: Object.create(null),
|
||||||
boards: Object.create(null)
|
boards: Object.create(null)
|
||||||
@ -7777,6 +7777,20 @@ SW = {};
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
awaitBoard: function(cb) {
|
||||||
|
var reactUI, s;
|
||||||
|
if ((reactUI = $.id('react-ui'))) {
|
||||||
|
s = this.selectors = Object.create(this.selectors);
|
||||||
|
s.boardFor = {
|
||||||
|
index: '.page-container'
|
||||||
|
};
|
||||||
|
s.thread = 'div[id^="thread_"]';
|
||||||
|
s.threadDivider = 'page-container > hr';
|
||||||
|
return Main.mounted(cb);
|
||||||
|
} else {
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
},
|
||||||
urls: {
|
urls: {
|
||||||
thread: function(arg, isArchived) {
|
thread: function(arg, isArchived) {
|
||||||
var boardID, ref, siteID, threadID;
|
var boardID, ref, siteID, threadID;
|
||||||
@ -7966,13 +7980,19 @@ SW = {};
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
parseNodes: function(post, nodes) {
|
parseNodes: function(post, nodes) {
|
||||||
var m, nextSibling, uniqueID;
|
var m, nextSibling, node, text, uniqueID;
|
||||||
if (nodes.uniqueID) {
|
if (nodes.uniqueID) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nodes.info.normalize();
|
text = '';
|
||||||
nextSibling = nodes.nameBlock.nextSibling;
|
node = nodes.nameBlock.nextSibling;
|
||||||
if (nextSibling.nodeType === 3 && (m = nextSibling.textContent.match(/(\s*ID:\s*)(\S+)/))) {
|
while (node && node.nodeType === 3) {
|
||||||
|
text += node.textContent;
|
||||||
|
node = node.nextSibling;
|
||||||
|
}
|
||||||
|
if ((m = text.match(/(\s*ID:\s*)(\S+)/))) {
|
||||||
|
nodes.info.normalize();
|
||||||
|
nextSibling = nodes.nameBlock.nextSibling;
|
||||||
nextSibling = nextSibling.splitText(m[1].length);
|
nextSibling = nextSibling.splitText(m[1].length);
|
||||||
nextSibling.splitText(m[2].length);
|
nextSibling.splitText(m[2].length);
|
||||||
nodes.uniqueID = uniqueID = $.el('span', {
|
nodes.uniqueID = uniqueID = $.el('span', {
|
||||||
@ -8003,7 +8023,7 @@ SW = {};
|
|||||||
if (!(infoNode = indexOf.call((ref = link.nextSibling) != null ? ref.textContent : void 0, '(') >= 0 ? link.nextSibling : link.nextElementSibling)) {
|
if (!(infoNode = indexOf.call((ref = link.nextSibling) != null ? ref.textContent : void 0, '(') >= 0 ? link.nextSibling : link.nextElementSibling)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(info = infoNode.textContent.match(/\((.*,\s*)?([\d.]+ [KMG]?B).*\)/))) {
|
if (!(info = infoNode.textContent.match(/\((.*,\s*)?([\d.]+ ?[KMG]?B).*\)/))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
nameNode = $('.postfilename', text);
|
nameNode = $('.postfilename', text);
|
||||||
@ -27358,7 +27378,7 @@ Main = (function() {
|
|||||||
|
|
||||||
Main = {
|
Main = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var db, flatten, i, items, j, k, key, len, ref, ref1, ref2, w;
|
var db, flatten, i, items, j, k, key, len, mountedCB, ref, ref1, ref2, w;
|
||||||
try {
|
try {
|
||||||
w = window;
|
w = window;
|
||||||
if ($.platform === 'crx') {
|
if ($.platform === 'crx') {
|
||||||
@ -27403,6 +27423,21 @@ Main = (function() {
|
|||||||
return $.addClass(doc, 'tainted');
|
return $.addClass(doc, 'tainted');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mountedCB = function() {
|
||||||
|
var cb, j, len, ref1, results;
|
||||||
|
d.removeEventListener('mounted', mountedCB, true);
|
||||||
|
Main.isMounted = true;
|
||||||
|
ref1 = Main.mountedCBs;
|
||||||
|
results = [];
|
||||||
|
for (j = 0, len = ref1.length; j < len; j++) {
|
||||||
|
cb = ref1[j];
|
||||||
|
try {
|
||||||
|
results.push(cb());
|
||||||
|
} catch (error1) {}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
d.addEventListener('mounted', mountedCB, true);
|
||||||
flatten = function(parent, obj) {
|
flatten = function(parent, obj) {
|
||||||
var key, val;
|
var key, val;
|
||||||
if (obj instanceof Array) {
|
if (obj instanceof Array) {
|
||||||
@ -27775,16 +27810,20 @@ Main = (function() {
|
|||||||
if (g.VIEW === 'catalog') {
|
if (g.VIEW === 'catalog') {
|
||||||
return Main.initCatalog();
|
return Main.initCatalog();
|
||||||
} else if (!Index.enabled) {
|
} else if (!Index.enabled) {
|
||||||
return Main.initThread();
|
if (g.SITE.awaitBoard) {
|
||||||
|
return g.SITE.awaitBoard(Main.initThread);
|
||||||
|
} else {
|
||||||
|
return Main.initThread();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Main.expectInitFinished = true;
|
Main.expectInitFinished = true;
|
||||||
return $.event('4chanXInitFinished');
|
return $.event('4chanXInitFinished');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
initThread: function() {
|
initThread: function() {
|
||||||
var base, base1, board, errors, posts, s, threads;
|
var base, base1, board, errors, posts, ref, s, threads;
|
||||||
s = g.SITE.selectors;
|
s = g.SITE.selectors;
|
||||||
if ((board = $(s.board))) {
|
if ((board = $(((ref = s.boardFor) != null ? ref[g.VIEW] : void 0) || s.board))) {
|
||||||
threads = [];
|
threads = [];
|
||||||
posts = [];
|
posts = [];
|
||||||
errors = [];
|
errors = [];
|
||||||
@ -27852,7 +27891,7 @@ Main = (function() {
|
|||||||
var err, j, len, postRoot;
|
var err, j, len, postRoot;
|
||||||
for (j = 0, len = postRoots.length; j < len; j++) {
|
for (j = 0, len = postRoots.length; j < len; j++) {
|
||||||
postRoot = postRoots[j];
|
postRoot = postRoots[j];
|
||||||
if (!postRoot.dataset.fullID && $(g.SITE.selectors.comment, postRoot)) {
|
if (!(postRoot.dataset.fullID && g.posts.get(postRoot.dataset.fullID)) && $(g.SITE.selectors.comment, postRoot)) {
|
||||||
try {
|
try {
|
||||||
posts.push(new Post(postRoot, thread, thread.board));
|
posts.push(new Post(postRoot, thread, thread.board));
|
||||||
} catch (error1) {
|
} catch (error1) {
|
||||||
@ -28136,6 +28175,14 @@ Main = (function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
mounted: function(cb) {
|
||||||
|
if (Main.isMounted) {
|
||||||
|
return cb();
|
||||||
|
} else {
|
||||||
|
return Main.mountedCBs.push(cb);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mountedCBs: [],
|
||||||
features: [['Polyfill', Polyfill], ['Board Configuration', BoardConfig], ['Normalize URL', NormalizeURL], ['Delay Redirect on Post', PostRedirect], ['Captcha Configuration', Captcha.replace], ['Image Host Rewriting', ImageHost], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Tinyboard Glue', Tinyboard], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Count Posts by ID', IDPostCount], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Captcha Solving Service', Captcha.service], ['Quick Reply Personas', QR.persona], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Post Jumper', PostJumper], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Copy Text Link', CopyTextLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Favicon', Favicon], ['Unread', Unread], ['Unread Line in Index', UnreadIndex], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Announcements', PSA], ['Flash Features', Flash], ['Reply Pruning', ReplyPruning], ['Mod Contact Links', ModContact]]
|
features: [['Polyfill', Polyfill], ['Board Configuration', BoardConfig], ['Normalize URL', NormalizeURL], ['Delay Redirect on Post', PostRedirect], ['Captcha Configuration', Captcha.replace], ['Image Host Rewriting', ImageHost], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Tinyboard Glue', Tinyboard], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Count Posts by ID', IDPostCount], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Captcha Solving Service', Captcha.service], ['Quick Reply Personas', QR.persona], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Post Jumper', PostJumper], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Copy Text Link', CopyTextLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Favicon', Favicon], ['Unread', Unread], ['Unread Line in Index', UnreadIndex], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Announcements', PSA], ['Flash Features', Flash], ['Reply Pruning', ReplyPruning], ['Mod Contact Links', ModContact]]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.14.16.7
|
// @version 1.14.17.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -215,7 +215,7 @@ docSet = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.14.16.7',
|
VERSION: '1.14.17.0',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
sites: Object.create(null),
|
sites: Object.create(null),
|
||||||
boards: Object.create(null)
|
boards: Object.create(null)
|
||||||
@ -7777,6 +7777,20 @@ SW = {};
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
awaitBoard: function(cb) {
|
||||||
|
var reactUI, s;
|
||||||
|
if ((reactUI = $.id('react-ui'))) {
|
||||||
|
s = this.selectors = Object.create(this.selectors);
|
||||||
|
s.boardFor = {
|
||||||
|
index: '.page-container'
|
||||||
|
};
|
||||||
|
s.thread = 'div[id^="thread_"]';
|
||||||
|
s.threadDivider = 'page-container > hr';
|
||||||
|
return Main.mounted(cb);
|
||||||
|
} else {
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
},
|
||||||
urls: {
|
urls: {
|
||||||
thread: function(arg, isArchived) {
|
thread: function(arg, isArchived) {
|
||||||
var boardID, ref, siteID, threadID;
|
var boardID, ref, siteID, threadID;
|
||||||
@ -7966,13 +7980,19 @@ SW = {};
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
parseNodes: function(post, nodes) {
|
parseNodes: function(post, nodes) {
|
||||||
var m, nextSibling, uniqueID;
|
var m, nextSibling, node, text, uniqueID;
|
||||||
if (nodes.uniqueID) {
|
if (nodes.uniqueID) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nodes.info.normalize();
|
text = '';
|
||||||
nextSibling = nodes.nameBlock.nextSibling;
|
node = nodes.nameBlock.nextSibling;
|
||||||
if (nextSibling.nodeType === 3 && (m = nextSibling.textContent.match(/(\s*ID:\s*)(\S+)/))) {
|
while (node && node.nodeType === 3) {
|
||||||
|
text += node.textContent;
|
||||||
|
node = node.nextSibling;
|
||||||
|
}
|
||||||
|
if ((m = text.match(/(\s*ID:\s*)(\S+)/))) {
|
||||||
|
nodes.info.normalize();
|
||||||
|
nextSibling = nodes.nameBlock.nextSibling;
|
||||||
nextSibling = nextSibling.splitText(m[1].length);
|
nextSibling = nextSibling.splitText(m[1].length);
|
||||||
nextSibling.splitText(m[2].length);
|
nextSibling.splitText(m[2].length);
|
||||||
nodes.uniqueID = uniqueID = $.el('span', {
|
nodes.uniqueID = uniqueID = $.el('span', {
|
||||||
@ -8003,7 +8023,7 @@ SW = {};
|
|||||||
if (!(infoNode = indexOf.call((ref = link.nextSibling) != null ? ref.textContent : void 0, '(') >= 0 ? link.nextSibling : link.nextElementSibling)) {
|
if (!(infoNode = indexOf.call((ref = link.nextSibling) != null ? ref.textContent : void 0, '(') >= 0 ? link.nextSibling : link.nextElementSibling)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(info = infoNode.textContent.match(/\((.*,\s*)?([\d.]+ [KMG]?B).*\)/))) {
|
if (!(info = infoNode.textContent.match(/\((.*,\s*)?([\d.]+ ?[KMG]?B).*\)/))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
nameNode = $('.postfilename', text);
|
nameNode = $('.postfilename', text);
|
||||||
@ -27358,7 +27378,7 @@ Main = (function() {
|
|||||||
|
|
||||||
Main = {
|
Main = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var db, flatten, i, items, j, k, key, len, ref, ref1, ref2, w;
|
var db, flatten, i, items, j, k, key, len, mountedCB, ref, ref1, ref2, w;
|
||||||
try {
|
try {
|
||||||
w = window;
|
w = window;
|
||||||
if ($.platform === 'crx') {
|
if ($.platform === 'crx') {
|
||||||
@ -27403,6 +27423,21 @@ Main = (function() {
|
|||||||
return $.addClass(doc, 'tainted');
|
return $.addClass(doc, 'tainted');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mountedCB = function() {
|
||||||
|
var cb, j, len, ref1, results;
|
||||||
|
d.removeEventListener('mounted', mountedCB, true);
|
||||||
|
Main.isMounted = true;
|
||||||
|
ref1 = Main.mountedCBs;
|
||||||
|
results = [];
|
||||||
|
for (j = 0, len = ref1.length; j < len; j++) {
|
||||||
|
cb = ref1[j];
|
||||||
|
try {
|
||||||
|
results.push(cb());
|
||||||
|
} catch (error1) {}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
d.addEventListener('mounted', mountedCB, true);
|
||||||
flatten = function(parent, obj) {
|
flatten = function(parent, obj) {
|
||||||
var key, val;
|
var key, val;
|
||||||
if (obj instanceof Array) {
|
if (obj instanceof Array) {
|
||||||
@ -27775,16 +27810,20 @@ Main = (function() {
|
|||||||
if (g.VIEW === 'catalog') {
|
if (g.VIEW === 'catalog') {
|
||||||
return Main.initCatalog();
|
return Main.initCatalog();
|
||||||
} else if (!Index.enabled) {
|
} else if (!Index.enabled) {
|
||||||
return Main.initThread();
|
if (g.SITE.awaitBoard) {
|
||||||
|
return g.SITE.awaitBoard(Main.initThread);
|
||||||
|
} else {
|
||||||
|
return Main.initThread();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Main.expectInitFinished = true;
|
Main.expectInitFinished = true;
|
||||||
return $.event('4chanXInitFinished');
|
return $.event('4chanXInitFinished');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
initThread: function() {
|
initThread: function() {
|
||||||
var base, base1, board, errors, posts, s, threads;
|
var base, base1, board, errors, posts, ref, s, threads;
|
||||||
s = g.SITE.selectors;
|
s = g.SITE.selectors;
|
||||||
if ((board = $(s.board))) {
|
if ((board = $(((ref = s.boardFor) != null ? ref[g.VIEW] : void 0) || s.board))) {
|
||||||
threads = [];
|
threads = [];
|
||||||
posts = [];
|
posts = [];
|
||||||
errors = [];
|
errors = [];
|
||||||
@ -27852,7 +27891,7 @@ Main = (function() {
|
|||||||
var err, j, len, postRoot;
|
var err, j, len, postRoot;
|
||||||
for (j = 0, len = postRoots.length; j < len; j++) {
|
for (j = 0, len = postRoots.length; j < len; j++) {
|
||||||
postRoot = postRoots[j];
|
postRoot = postRoots[j];
|
||||||
if (!postRoot.dataset.fullID && $(g.SITE.selectors.comment, postRoot)) {
|
if (!(postRoot.dataset.fullID && g.posts.get(postRoot.dataset.fullID)) && $(g.SITE.selectors.comment, postRoot)) {
|
||||||
try {
|
try {
|
||||||
posts.push(new Post(postRoot, thread, thread.board));
|
posts.push(new Post(postRoot, thread, thread.board));
|
||||||
} catch (error1) {
|
} catch (error1) {
|
||||||
@ -28136,6 +28175,14 @@ Main = (function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
mounted: function(cb) {
|
||||||
|
if (Main.isMounted) {
|
||||||
|
return cb();
|
||||||
|
} else {
|
||||||
|
return Main.mountedCBs.push(cb);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mountedCBs: [],
|
||||||
features: [['Polyfill', Polyfill], ['Board Configuration', BoardConfig], ['Normalize URL', NormalizeURL], ['Delay Redirect on Post', PostRedirect], ['Captcha Configuration', Captcha.replace], ['Image Host Rewriting', ImageHost], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Tinyboard Glue', Tinyboard], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Count Posts by ID', IDPostCount], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Captcha Solving Service', Captcha.service], ['Quick Reply Personas', QR.persona], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Post Jumper', PostJumper], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Copy Text Link', CopyTextLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Favicon', Favicon], ['Unread', Unread], ['Unread Line in Index', UnreadIndex], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Announcements', PSA], ['Flash Features', Flash], ['Reply Pruning', ReplyPruning], ['Mod Contact Links', ModContact]]
|
features: [['Polyfill', Polyfill], ['Board Configuration', BoardConfig], ['Normalize URL', NormalizeURL], ['Delay Redirect on Post', PostRedirect], ['Captcha Configuration', Captcha.replace], ['Image Host Rewriting', ImageHost], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Tinyboard Glue', Tinyboard], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Count Posts by ID', IDPostCount], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Captcha Solving Service', Captcha.service], ['Quick Reply Personas', QR.persona], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Post Jumper', PostJumper], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Copy Text Link', CopyTextLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Favicon', Favicon], ['Unread', Unread], ['Unread Line in Index', UnreadIndex], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Announcements', PSA], ['Flash Features', Flash], ['Reply Pruning', ReplyPruning], ['Mod Contact Links', ModContact]]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.14.16.7
|
// @version 1.14.17.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.14.16.7
|
// @version 1.14.17.0
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -215,7 +215,7 @@ docSet = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.14.16.7',
|
VERSION: '1.14.17.0',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
sites: Object.create(null),
|
sites: Object.create(null),
|
||||||
boards: Object.create(null)
|
boards: Object.create(null)
|
||||||
@ -7777,6 +7777,20 @@ SW = {};
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
awaitBoard: function(cb) {
|
||||||
|
var reactUI, s;
|
||||||
|
if ((reactUI = $.id('react-ui'))) {
|
||||||
|
s = this.selectors = Object.create(this.selectors);
|
||||||
|
s.boardFor = {
|
||||||
|
index: '.page-container'
|
||||||
|
};
|
||||||
|
s.thread = 'div[id^="thread_"]';
|
||||||
|
s.threadDivider = 'page-container > hr';
|
||||||
|
return Main.mounted(cb);
|
||||||
|
} else {
|
||||||
|
return cb();
|
||||||
|
}
|
||||||
|
},
|
||||||
urls: {
|
urls: {
|
||||||
thread: function(arg, isArchived) {
|
thread: function(arg, isArchived) {
|
||||||
var boardID, ref, siteID, threadID;
|
var boardID, ref, siteID, threadID;
|
||||||
@ -7966,13 +7980,19 @@ SW = {};
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
parseNodes: function(post, nodes) {
|
parseNodes: function(post, nodes) {
|
||||||
var m, nextSibling, uniqueID;
|
var m, nextSibling, node, text, uniqueID;
|
||||||
if (nodes.uniqueID) {
|
if (nodes.uniqueID) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nodes.info.normalize();
|
text = '';
|
||||||
nextSibling = nodes.nameBlock.nextSibling;
|
node = nodes.nameBlock.nextSibling;
|
||||||
if (nextSibling.nodeType === 3 && (m = nextSibling.textContent.match(/(\s*ID:\s*)(\S+)/))) {
|
while (node && node.nodeType === 3) {
|
||||||
|
text += node.textContent;
|
||||||
|
node = node.nextSibling;
|
||||||
|
}
|
||||||
|
if ((m = text.match(/(\s*ID:\s*)(\S+)/))) {
|
||||||
|
nodes.info.normalize();
|
||||||
|
nextSibling = nodes.nameBlock.nextSibling;
|
||||||
nextSibling = nextSibling.splitText(m[1].length);
|
nextSibling = nextSibling.splitText(m[1].length);
|
||||||
nextSibling.splitText(m[2].length);
|
nextSibling.splitText(m[2].length);
|
||||||
nodes.uniqueID = uniqueID = $.el('span', {
|
nodes.uniqueID = uniqueID = $.el('span', {
|
||||||
@ -8003,7 +8023,7 @@ SW = {};
|
|||||||
if (!(infoNode = indexOf.call((ref = link.nextSibling) != null ? ref.textContent : void 0, '(') >= 0 ? link.nextSibling : link.nextElementSibling)) {
|
if (!(infoNode = indexOf.call((ref = link.nextSibling) != null ? ref.textContent : void 0, '(') >= 0 ? link.nextSibling : link.nextElementSibling)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!(info = infoNode.textContent.match(/\((.*,\s*)?([\d.]+ [KMG]?B).*\)/))) {
|
if (!(info = infoNode.textContent.match(/\((.*,\s*)?([\d.]+ ?[KMG]?B).*\)/))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
nameNode = $('.postfilename', text);
|
nameNode = $('.postfilename', text);
|
||||||
@ -27358,7 +27378,7 @@ Main = (function() {
|
|||||||
|
|
||||||
Main = {
|
Main = {
|
||||||
init: function() {
|
init: function() {
|
||||||
var db, flatten, i, items, j, k, key, len, ref, ref1, ref2, w;
|
var db, flatten, i, items, j, k, key, len, mountedCB, ref, ref1, ref2, w;
|
||||||
try {
|
try {
|
||||||
w = window;
|
w = window;
|
||||||
if ($.platform === 'crx') {
|
if ($.platform === 'crx') {
|
||||||
@ -27403,6 +27423,21 @@ Main = (function() {
|
|||||||
return $.addClass(doc, 'tainted');
|
return $.addClass(doc, 'tainted');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
mountedCB = function() {
|
||||||
|
var cb, j, len, ref1, results;
|
||||||
|
d.removeEventListener('mounted', mountedCB, true);
|
||||||
|
Main.isMounted = true;
|
||||||
|
ref1 = Main.mountedCBs;
|
||||||
|
results = [];
|
||||||
|
for (j = 0, len = ref1.length; j < len; j++) {
|
||||||
|
cb = ref1[j];
|
||||||
|
try {
|
||||||
|
results.push(cb());
|
||||||
|
} catch (error1) {}
|
||||||
|
}
|
||||||
|
return results;
|
||||||
|
};
|
||||||
|
d.addEventListener('mounted', mountedCB, true);
|
||||||
flatten = function(parent, obj) {
|
flatten = function(parent, obj) {
|
||||||
var key, val;
|
var key, val;
|
||||||
if (obj instanceof Array) {
|
if (obj instanceof Array) {
|
||||||
@ -27775,16 +27810,20 @@ Main = (function() {
|
|||||||
if (g.VIEW === 'catalog') {
|
if (g.VIEW === 'catalog') {
|
||||||
return Main.initCatalog();
|
return Main.initCatalog();
|
||||||
} else if (!Index.enabled) {
|
} else if (!Index.enabled) {
|
||||||
return Main.initThread();
|
if (g.SITE.awaitBoard) {
|
||||||
|
return g.SITE.awaitBoard(Main.initThread);
|
||||||
|
} else {
|
||||||
|
return Main.initThread();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Main.expectInitFinished = true;
|
Main.expectInitFinished = true;
|
||||||
return $.event('4chanXInitFinished');
|
return $.event('4chanXInitFinished');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
initThread: function() {
|
initThread: function() {
|
||||||
var base, base1, board, errors, posts, s, threads;
|
var base, base1, board, errors, posts, ref, s, threads;
|
||||||
s = g.SITE.selectors;
|
s = g.SITE.selectors;
|
||||||
if ((board = $(s.board))) {
|
if ((board = $(((ref = s.boardFor) != null ? ref[g.VIEW] : void 0) || s.board))) {
|
||||||
threads = [];
|
threads = [];
|
||||||
posts = [];
|
posts = [];
|
||||||
errors = [];
|
errors = [];
|
||||||
@ -27852,7 +27891,7 @@ Main = (function() {
|
|||||||
var err, j, len, postRoot;
|
var err, j, len, postRoot;
|
||||||
for (j = 0, len = postRoots.length; j < len; j++) {
|
for (j = 0, len = postRoots.length; j < len; j++) {
|
||||||
postRoot = postRoots[j];
|
postRoot = postRoots[j];
|
||||||
if (!postRoot.dataset.fullID && $(g.SITE.selectors.comment, postRoot)) {
|
if (!(postRoot.dataset.fullID && g.posts.get(postRoot.dataset.fullID)) && $(g.SITE.selectors.comment, postRoot)) {
|
||||||
try {
|
try {
|
||||||
posts.push(new Post(postRoot, thread, thread.board));
|
posts.push(new Post(postRoot, thread, thread.board));
|
||||||
} catch (error1) {
|
} catch (error1) {
|
||||||
@ -28136,6 +28175,14 @@ Main = (function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
mounted: function(cb) {
|
||||||
|
if (Main.isMounted) {
|
||||||
|
return cb();
|
||||||
|
} else {
|
||||||
|
return Main.mountedCBs.push(cb);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mountedCBs: [],
|
||||||
features: [['Polyfill', Polyfill], ['Board Configuration', BoardConfig], ['Normalize URL', NormalizeURL], ['Delay Redirect on Post', PostRedirect], ['Captcha Configuration', Captcha.replace], ['Image Host Rewriting', ImageHost], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Tinyboard Glue', Tinyboard], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Count Posts by ID', IDPostCount], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Captcha Solving Service', Captcha.service], ['Quick Reply Personas', QR.persona], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Post Jumper', PostJumper], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Copy Text Link', CopyTextLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Favicon', Favicon], ['Unread', Unread], ['Unread Line in Index', UnreadIndex], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Announcements', PSA], ['Flash Features', Flash], ['Reply Pruning', ReplyPruning], ['Mod Contact Links', ModContact]]
|
features: [['Polyfill', Polyfill], ['Board Configuration', BoardConfig], ['Normalize URL', NormalizeURL], ['Delay Redirect on Post', PostRedirect], ['Captcha Configuration', Captcha.replace], ['Image Host Rewriting', ImageHost], ['Redirect', Redirect], ['Header', Header], ['Catalog Links', CatalogLinks], ['Settings', Settings], ['Index Generator', Index], ['Disable Autoplay', AntiAutoplay], ['Announcement Hiding', PSAHiding], ['Fourchan thingies', Fourchan], ['Tinyboard Glue', Tinyboard], ['Color User IDs', IDColor], ['Highlight by User ID', IDHighlight], ['Count Posts by ID', IDPostCount], ['Custom CSS', CustomCSS], ['Thread Links', ThreadLinks], ['Linkify', Linkify], ['Reveal Spoilers', RemoveSpoilers], ['Resurrect Quotes', Quotify], ['Filter', Filter], ['Thread Hiding Buttons', ThreadHiding], ['Reply Hiding Buttons', PostHiding], ['Recursive', Recursive], ['Strike-through Quotes', QuoteStrikeThrough], ['Captcha Solving Service', Captcha.service], ['Quick Reply Personas', QR.persona], ['Quick Reply', QR], ['Cooldown', QR.cooldown], ['Post Jumper', PostJumper], ['Pass Link', PassLink], ['Menu', Menu], ['Index Generator (Menu)', Index.menu], ['Report Link', ReportLink], ['Copy Text Link', CopyTextLink], ['Thread Hiding (Menu)', ThreadHiding.menu], ['Reply Hiding (Menu)', PostHiding.menu], ['Delete Link', DeleteLink], ['Filter (Menu)', Filter.menu], ['Edit Link', QR.oekaki.menu], ['Download Link', DownloadLink], ['Archive Link', ArchiveLink], ['Quote Inlining', QuoteInline], ['Quote Previewing', QuotePreview], ['Quote Backlinks', QuoteBacklink], ['Mark Quotes of You', QuoteYou], ['Mark OP Quotes', QuoteOP], ['Mark Cross-thread Quotes', QuoteCT], ['Anonymize', Anonymize], ['Time Formatting', Time], ['Relative Post Dates', RelativeDates], ['File Info Formatting', FileInfo], ['Fappe Tyme', FappeTyme], ['Gallery', Gallery], ['Gallery (menu)', Gallery.menu], ['Sauce', Sauce], ['Image Expansion', ImageExpand], ['Image Expansion (Menu)', ImageExpand.menu], ['Reveal Spoiler Thumbnails', RevealSpoilers], ['Image Loading', ImageLoader], ['Image Hover', ImageHover], ['Volume Control', Volume], ['WEBM Metadata', Metadata], ['Comment Expansion', ExpandComment], ['Thread Expansion', ExpandThread], ['Favicon', Favicon], ['Unread', Unread], ['Unread Line in Index', UnreadIndex], ['Quote Threading', QuoteThreading], ['Thread Stats', ThreadStats], ['Thread Updater', ThreadUpdater], ['Thread Watcher', ThreadWatcher], ['Thread Watcher (Menu)', ThreadWatcher.menu], ['Mark New IPs', MarkNewIPs], ['Index Navigation', Nav], ['Keybinds', Keybinds], ['Banner', Banner], ['Announcements', PSA], ['Flash Features', Flash], ['Reply Pruning', ReplyPruning], ['Mod Contact Links', ModContact]]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -3,7 +3,7 @@
|
|||||||
"4chan-x@4chan-x.net": {
|
"4chan-x@4chan-x.net": {
|
||||||
"updates": [
|
"updates": [
|
||||||
{
|
{
|
||||||
"version": "1.14.16.7",
|
"version": "1.14.17.0",
|
||||||
"update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx"
|
"update_link": "https://www.4chan-x.net/builds/4chan-X-beta.crx"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -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.16.7' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.14.17.0' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
"4chan-x@4chan-x.net": {
|
"4chan-x@4chan-x.net": {
|
||||||
"updates": [
|
"updates": [
|
||||||
{
|
{
|
||||||
"version": "1.14.16.7",
|
"version": "1.14.17.0",
|
||||||
"update_link": "https://www.4chan-x.net/builds/4chan-X.crx"
|
"update_link": "https://www.4chan-x.net/builds/4chan-X.crx"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -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.16.7' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.14.17.0' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"version": "1.14.16.7",
|
"version": "1.14.17.0",
|
||||||
"date": "2020-03-30T03:52:30.159Z"
|
"date": "2020-04-01T11:47:10.349Z"
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user