Release 4chan X v1.13.1.5.
This commit is contained in:
parent
181ba93080
commit
95eb71d6c6
@ -4,6 +4,13 @@
|
|||||||
|
|
||||||
### v1.13.1
|
### v1.13.1
|
||||||
|
|
||||||
|
**v1.13.1.5** *(2016-11-13)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.1.5/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.1.5/builds/4chan-X-noupdate.crx)]
|
||||||
|
- Merge v1.13.0.25: Fix bug from v1.13.0.0 causing errors on index refresh in certain cases when creating threads with cookies disabled. #1184
|
||||||
|
- Merge v1.13.0.25: Better link text in file error message: 'delete' -> 'delete post'. #1186
|
||||||
|
- Merge v1.13.0.25: Fix bug causing auto-pruning if you refreshed the index too soon after creating a thread.
|
||||||
|
- Add `Catalog Hover Toggle` setting, which sets whether clicking in the catalog toggles `Catalog Hover Expand`.
|
||||||
|
- Improved support for those who want to unblock the top banner ads. See the [FAQ](https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions#ads) for how to do so.
|
||||||
|
|
||||||
**v1.13.1.4** *(2016-11-09)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.1.4/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.1.4/builds/4chan-X-noupdate.crx)]
|
**v1.13.1.4** *(2016-11-09)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.1.4/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.1.4/builds/4chan-X-noupdate.crx)]
|
||||||
- Fix deletion cooldown bug from v1.13.1.0.
|
- Fix deletion cooldown bug from v1.13.1.0.
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X beta
|
// @name 4chan X beta
|
||||||
// @version 1.13.1.4
|
// @version 1.13.1.5
|
||||||
// @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.13.1.4
|
// @version 1.13.1.5
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -147,7 +147,7 @@ docSet = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.13.1.4',
|
VERSION: '1.13.1.5',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -385,7 +385,8 @@ Config = (function() {
|
|||||||
'Previous Index Mode': 'paged',
|
'Previous Index Mode': 'paged',
|
||||||
'Index Size': 'small',
|
'Index Size': 'small',
|
||||||
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.'],
|
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.'],
|
||||||
'Catalog Hover Expand': [true, 'Clicking in the catalog shows more details in the thread you are hovering over.'],
|
'Catalog Hover Expand': [false, 'Expand the comment and show more details when you hover over a thread in the catalog.'],
|
||||||
|
'Catalog Hover Toggle': [true, 'Turn "Catalog hover expand" on and off by clicking in the catalog.'],
|
||||||
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.'],
|
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.'],
|
||||||
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.'],
|
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.'],
|
||||||
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
||||||
@ -411,7 +412,7 @@ Config = (function() {
|
|||||||
'QR.personas': "#options:\"sage\";boards:jp;always",
|
'QR.personas': "#options:\"sage\";boards:jp;always",
|
||||||
sjisPreview: false
|
sjisPreview: false
|
||||||
},
|
},
|
||||||
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'',
|
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org',
|
||||||
captchaLanguage: '',
|
captchaLanguage: '',
|
||||||
time: '%m/%d/%y(%a)%H:%M:%S',
|
time: '%m/%d/%y(%a)%H:%M:%S',
|
||||||
backlink: '>>%id',
|
backlink: '>>%id',
|
||||||
@ -1330,10 +1331,10 @@ body > div[style*=\" top: -10000px;\"] {\n\
|
|||||||
:root:not(.ads-loaded) .ad-plea,\n\
|
:root:not(.ads-loaded) .ad-plea,\n\
|
||||||
:root:not(.ads-loaded) hr.abovePostForm,\n\
|
:root:not(.ads-loaded) hr.abovePostForm,\n\
|
||||||
:root:not(.ads-loaded) .ad-plea-bottom + hr,\n\
|
:root:not(.ads-loaded) .ad-plea-bottom + hr,\n\
|
||||||
:root:not(.ads-loaded) #adg-ol + hr {\n\
|
#adg-ol + hr {\n\
|
||||||
display: none;\n\
|
display: none;\n\
|
||||||
}\n\
|
}\n\
|
||||||
:root:not(.ads-loaded) .adg-rects {\n\
|
.adg-rects {\n\
|
||||||
margin: 0;\n\
|
margin: 0;\n\
|
||||||
font-size: 0;\n\
|
font-size: 0;\n\
|
||||||
}\n\
|
}\n\
|
||||||
@ -2080,8 +2081,8 @@ div[data-checked=\"false\"] > .suboption-list {\n\
|
|||||||
display: inline-block;\n\
|
display: inline-block;\n\
|
||||||
font-style: italic;\n\
|
font-style: italic;\n\
|
||||||
}\n\
|
}\n\
|
||||||
.catalog-post > * > .nameBlock,\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > * > .nameBlock,\n\
|
||||||
.catalog-post > * > .dateTime,\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > * > .dateTime,\n\
|
||||||
:root.catalog-hover-expand .catalog-container:hover > * > .postMessage:not(:empty) {\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > .postMessage:not(:empty) {\n\
|
||||||
padding-top: .3em;\n\
|
padding-top: .3em;\n\
|
||||||
}\n\
|
}\n\
|
||||||
@ -9318,7 +9319,7 @@ Index = (function() {
|
|||||||
});
|
});
|
||||||
Header.addShortcut('index-refresh', this.button, 590);
|
Header.addShortcut('index-refresh', this.button, 590);
|
||||||
entries = [];
|
entries = [];
|
||||||
inputs = {};
|
this.inputs = inputs = {};
|
||||||
ref4 = Config.Index;
|
ref4 = Config.Index;
|
||||||
for (name in ref4) {
|
for (name in ref4) {
|
||||||
arr = ref4[name];
|
arr = ref4[name];
|
||||||
@ -9350,7 +9351,7 @@ Index = (function() {
|
|||||||
sortEntry = UI.checkbox('Per-Board Sort Type', 'Per-board sort type', typeof Conf['Index Sort'] === 'object');
|
sortEntry = UI.checkbox('Per-Board Sort Type', 'Per-board sort type', typeof Conf['Index Sort'] === 'object');
|
||||||
sortEntry.title = 'Set the sorting order of each board independently.';
|
sortEntry.title = 'Set the sorting order of each board independently.';
|
||||||
$.on(sortEntry.firstChild, 'change', this.cb.perBoardSort);
|
$.on(sortEntry.firstChild, 'change', this.cb.perBoardSort);
|
||||||
entries.splice(2, 0, {
|
entries.splice(3, 0, {
|
||||||
el: sortEntry
|
el: sortEntry
|
||||||
});
|
});
|
||||||
Header.menu.addEntry({
|
Header.menu.addEntry({
|
||||||
@ -9398,6 +9399,7 @@ Index = (function() {
|
|||||||
});
|
});
|
||||||
$.on(this.root, 'click', this.cb.hoverToggle);
|
$.on(this.root, 'click', this.cb.hoverToggle);
|
||||||
this.cb.size();
|
this.cb.size();
|
||||||
|
this.cb.hover();
|
||||||
this.pagelist = $.el('div', {
|
this.pagelist = $.el('div', {
|
||||||
className: 'pagelist json-index'
|
className: 'pagelist json-index'
|
||||||
});
|
});
|
||||||
@ -9630,14 +9632,14 @@ Index = (function() {
|
|||||||
return Index.buildIndex();
|
return Index.buildIndex();
|
||||||
},
|
},
|
||||||
hover: function() {
|
hover: function() {
|
||||||
if (!Conf['Catalog Hover Expand']) {
|
return doc.classList.toggle('catalog-hover-expand', Conf['Catalog Hover Expand']);
|
||||||
return $.rmClass(doc, 'catalog-hover-expand');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
hoverToggle: function(e) {
|
hoverToggle: function(e) {
|
||||||
var thread;
|
var input, thread;
|
||||||
if (Conf['Catalog Hover Expand'] && $.hasClass(doc, 'catalog-mode') && !$.modifiedClick(e) && !$.x('ancestor-or-self::a', e.target)) {
|
if (Conf['Catalog Hover Toggle'] && $.hasClass(doc, 'catalog-mode') && !$.modifiedClick(e) && !$.x('ancestor-or-self::a', e.target)) {
|
||||||
$.toggleClass(doc, 'catalog-hover-expand');
|
input = Index.inputs['Catalog Hover Expand'];
|
||||||
|
input.checked = !input.checked;
|
||||||
|
$.event('change', null, input);
|
||||||
if ((thread = Get.threadFromNode(e.target))) {
|
if ((thread = Get.threadFromNode(e.target))) {
|
||||||
Index.cb.catalogReplies.call(thread);
|
Index.cb.catalogReplies.call(thread);
|
||||||
return Index.cb.hoverAdjust.call(thread.OP.nodes);
|
return Index.cb.hoverAdjust.call(thread.OP.nodes);
|
||||||
@ -10706,8 +10708,8 @@ Settings = (function() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
ads: function(cb) {
|
ads: function(cb) {
|
||||||
return $.onExists(doc, '.ad-cnt, .adg-rects', function(ad) {
|
return $.onExists(doc, '.adg-rects > .desktop', function(ad) {
|
||||||
return $.onExists(ad, 'img, iframe', function() {
|
return $.onExists(ad, 'iframe', function() {
|
||||||
var url;
|
var url;
|
||||||
url = Redirect.to('thread', {
|
url = Redirect.to('thread', {
|
||||||
boardID: 'qa',
|
boardID: 'qa',
|
||||||
@ -18367,14 +18369,18 @@ ThreadWatcher = (function() {
|
|||||||
ThreadWatcher.setToggler(toggler, !!data);
|
ThreadWatcher.setToggler(toggler, !!data);
|
||||||
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||||
if (data && (data.excerpt == null)) {
|
if (data && (data.excerpt == null)) {
|
||||||
ThreadWatcher.db.extend({
|
return $.queueTask((function(_this) {
|
||||||
boardID: boardID,
|
return function() {
|
||||||
threadID: threadID,
|
ThreadWatcher.db.extend({
|
||||||
val: {
|
boardID: boardID,
|
||||||
excerpt: Get.threadExcerpt(this.thread)
|
threadID: threadID,
|
||||||
}
|
val: {
|
||||||
});
|
excerpt: Get.threadExcerpt(_this.thread)
|
||||||
return ThreadWatcher.refresh();
|
}
|
||||||
|
});
|
||||||
|
return ThreadWatcher.refresh();
|
||||||
|
};
|
||||||
|
})(this));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
catalogNode: function() {
|
catalogNode: function() {
|
||||||
@ -18467,6 +18473,11 @@ ThreadWatcher = (function() {
|
|||||||
if (!(!(data != null ? data.isDead : void 0) && (ref1 = boardID + "." + threadID, indexOf.call(e.detail.threads, ref1) < 0))) {
|
if (!(!(data != null ? data.isDead : void 0) && (ref1 = boardID + "." + threadID, indexOf.call(e.detail.threads, ref1) < 0))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!e.detail.threads.some(function(fullID) {
|
||||||
|
return +fullID.split('.')[1] > threadID;
|
||||||
|
})) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
nKilled++;
|
nKilled++;
|
||||||
if (Conf['Auto Prune'] || !(data && typeof data === 'object')) {
|
if (Conf['Auto Prune'] || !(data && typeof data === 'object')) {
|
||||||
db["delete"]({
|
db["delete"]({
|
||||||
@ -22168,7 +22179,7 @@ QR = (function() {
|
|||||||
className: className
|
className: className
|
||||||
});
|
});
|
||||||
$.extend(div, {
|
$.extend(div, {
|
||||||
innerHTML: E(message) + "<br>[<a href=\"javascript:;\">delete</a>] [<a href=\"javascript:;\">delete all</a>]"
|
innerHTML: E(message) + "<br>[<a href=\"javascript:;\">delete post</a>] [<a href=\"javascript:;\">delete all</a>]"
|
||||||
});
|
});
|
||||||
(this.errors || (this.errors = [])).push(div);
|
(this.errors || (this.errors = [])).push(div);
|
||||||
ref = $$('a', div), rm = ref[0], rmAll = ref[1];
|
ref = $$('a', div), rm = ref[0], rmAll = ref[1];
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.13.1.4
|
// @version 1.13.1.5
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -147,7 +147,7 @@ docSet = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.13.1.4',
|
VERSION: '1.13.1.5',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -385,7 +385,8 @@ Config = (function() {
|
|||||||
'Previous Index Mode': 'paged',
|
'Previous Index Mode': 'paged',
|
||||||
'Index Size': 'small',
|
'Index Size': 'small',
|
||||||
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.'],
|
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.'],
|
||||||
'Catalog Hover Expand': [true, 'Clicking in the catalog shows more details in the thread you are hovering over.'],
|
'Catalog Hover Expand': [false, 'Expand the comment and show more details when you hover over a thread in the catalog.'],
|
||||||
|
'Catalog Hover Toggle': [true, 'Turn "Catalog hover expand" on and off by clicking in the catalog.'],
|
||||||
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.'],
|
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.'],
|
||||||
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.'],
|
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.'],
|
||||||
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
||||||
@ -411,7 +412,7 @@ Config = (function() {
|
|||||||
'QR.personas': "#options:\"sage\";boards:jp;always",
|
'QR.personas': "#options:\"sage\";boards:jp;always",
|
||||||
sjisPreview: false
|
sjisPreview: false
|
||||||
},
|
},
|
||||||
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'',
|
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org',
|
||||||
captchaLanguage: '',
|
captchaLanguage: '',
|
||||||
time: '%m/%d/%y(%a)%H:%M:%S',
|
time: '%m/%d/%y(%a)%H:%M:%S',
|
||||||
backlink: '>>%id',
|
backlink: '>>%id',
|
||||||
@ -1330,10 +1331,10 @@ body > div[style*=\" top: -10000px;\"] {\n\
|
|||||||
:root:not(.ads-loaded) .ad-plea,\n\
|
:root:not(.ads-loaded) .ad-plea,\n\
|
||||||
:root:not(.ads-loaded) hr.abovePostForm,\n\
|
:root:not(.ads-loaded) hr.abovePostForm,\n\
|
||||||
:root:not(.ads-loaded) .ad-plea-bottom + hr,\n\
|
:root:not(.ads-loaded) .ad-plea-bottom + hr,\n\
|
||||||
:root:not(.ads-loaded) #adg-ol + hr {\n\
|
#adg-ol + hr {\n\
|
||||||
display: none;\n\
|
display: none;\n\
|
||||||
}\n\
|
}\n\
|
||||||
:root:not(.ads-loaded) .adg-rects {\n\
|
.adg-rects {\n\
|
||||||
margin: 0;\n\
|
margin: 0;\n\
|
||||||
font-size: 0;\n\
|
font-size: 0;\n\
|
||||||
}\n\
|
}\n\
|
||||||
@ -2080,8 +2081,8 @@ div[data-checked=\"false\"] > .suboption-list {\n\
|
|||||||
display: inline-block;\n\
|
display: inline-block;\n\
|
||||||
font-style: italic;\n\
|
font-style: italic;\n\
|
||||||
}\n\
|
}\n\
|
||||||
.catalog-post > * > .nameBlock,\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > * > .nameBlock,\n\
|
||||||
.catalog-post > * > .dateTime,\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > * > .dateTime,\n\
|
||||||
:root.catalog-hover-expand .catalog-container:hover > * > .postMessage:not(:empty) {\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > .postMessage:not(:empty) {\n\
|
||||||
padding-top: .3em;\n\
|
padding-top: .3em;\n\
|
||||||
}\n\
|
}\n\
|
||||||
@ -9318,7 +9319,7 @@ Index = (function() {
|
|||||||
});
|
});
|
||||||
Header.addShortcut('index-refresh', this.button, 590);
|
Header.addShortcut('index-refresh', this.button, 590);
|
||||||
entries = [];
|
entries = [];
|
||||||
inputs = {};
|
this.inputs = inputs = {};
|
||||||
ref4 = Config.Index;
|
ref4 = Config.Index;
|
||||||
for (name in ref4) {
|
for (name in ref4) {
|
||||||
arr = ref4[name];
|
arr = ref4[name];
|
||||||
@ -9350,7 +9351,7 @@ Index = (function() {
|
|||||||
sortEntry = UI.checkbox('Per-Board Sort Type', 'Per-board sort type', typeof Conf['Index Sort'] === 'object');
|
sortEntry = UI.checkbox('Per-Board Sort Type', 'Per-board sort type', typeof Conf['Index Sort'] === 'object');
|
||||||
sortEntry.title = 'Set the sorting order of each board independently.';
|
sortEntry.title = 'Set the sorting order of each board independently.';
|
||||||
$.on(sortEntry.firstChild, 'change', this.cb.perBoardSort);
|
$.on(sortEntry.firstChild, 'change', this.cb.perBoardSort);
|
||||||
entries.splice(2, 0, {
|
entries.splice(3, 0, {
|
||||||
el: sortEntry
|
el: sortEntry
|
||||||
});
|
});
|
||||||
Header.menu.addEntry({
|
Header.menu.addEntry({
|
||||||
@ -9398,6 +9399,7 @@ Index = (function() {
|
|||||||
});
|
});
|
||||||
$.on(this.root, 'click', this.cb.hoverToggle);
|
$.on(this.root, 'click', this.cb.hoverToggle);
|
||||||
this.cb.size();
|
this.cb.size();
|
||||||
|
this.cb.hover();
|
||||||
this.pagelist = $.el('div', {
|
this.pagelist = $.el('div', {
|
||||||
className: 'pagelist json-index'
|
className: 'pagelist json-index'
|
||||||
});
|
});
|
||||||
@ -9630,14 +9632,14 @@ Index = (function() {
|
|||||||
return Index.buildIndex();
|
return Index.buildIndex();
|
||||||
},
|
},
|
||||||
hover: function() {
|
hover: function() {
|
||||||
if (!Conf['Catalog Hover Expand']) {
|
return doc.classList.toggle('catalog-hover-expand', Conf['Catalog Hover Expand']);
|
||||||
return $.rmClass(doc, 'catalog-hover-expand');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
hoverToggle: function(e) {
|
hoverToggle: function(e) {
|
||||||
var thread;
|
var input, thread;
|
||||||
if (Conf['Catalog Hover Expand'] && $.hasClass(doc, 'catalog-mode') && !$.modifiedClick(e) && !$.x('ancestor-or-self::a', e.target)) {
|
if (Conf['Catalog Hover Toggle'] && $.hasClass(doc, 'catalog-mode') && !$.modifiedClick(e) && !$.x('ancestor-or-self::a', e.target)) {
|
||||||
$.toggleClass(doc, 'catalog-hover-expand');
|
input = Index.inputs['Catalog Hover Expand'];
|
||||||
|
input.checked = !input.checked;
|
||||||
|
$.event('change', null, input);
|
||||||
if ((thread = Get.threadFromNode(e.target))) {
|
if ((thread = Get.threadFromNode(e.target))) {
|
||||||
Index.cb.catalogReplies.call(thread);
|
Index.cb.catalogReplies.call(thread);
|
||||||
return Index.cb.hoverAdjust.call(thread.OP.nodes);
|
return Index.cb.hoverAdjust.call(thread.OP.nodes);
|
||||||
@ -10706,8 +10708,8 @@ Settings = (function() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
ads: function(cb) {
|
ads: function(cb) {
|
||||||
return $.onExists(doc, '.ad-cnt, .adg-rects', function(ad) {
|
return $.onExists(doc, '.adg-rects > .desktop', function(ad) {
|
||||||
return $.onExists(ad, 'img, iframe', function() {
|
return $.onExists(ad, 'iframe', function() {
|
||||||
var url;
|
var url;
|
||||||
url = Redirect.to('thread', {
|
url = Redirect.to('thread', {
|
||||||
boardID: 'qa',
|
boardID: 'qa',
|
||||||
@ -18367,14 +18369,18 @@ ThreadWatcher = (function() {
|
|||||||
ThreadWatcher.setToggler(toggler, !!data);
|
ThreadWatcher.setToggler(toggler, !!data);
|
||||||
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||||
if (data && (data.excerpt == null)) {
|
if (data && (data.excerpt == null)) {
|
||||||
ThreadWatcher.db.extend({
|
return $.queueTask((function(_this) {
|
||||||
boardID: boardID,
|
return function() {
|
||||||
threadID: threadID,
|
ThreadWatcher.db.extend({
|
||||||
val: {
|
boardID: boardID,
|
||||||
excerpt: Get.threadExcerpt(this.thread)
|
threadID: threadID,
|
||||||
}
|
val: {
|
||||||
});
|
excerpt: Get.threadExcerpt(_this.thread)
|
||||||
return ThreadWatcher.refresh();
|
}
|
||||||
|
});
|
||||||
|
return ThreadWatcher.refresh();
|
||||||
|
};
|
||||||
|
})(this));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
catalogNode: function() {
|
catalogNode: function() {
|
||||||
@ -18467,6 +18473,11 @@ ThreadWatcher = (function() {
|
|||||||
if (!(!(data != null ? data.isDead : void 0) && (ref1 = boardID + "." + threadID, indexOf.call(e.detail.threads, ref1) < 0))) {
|
if (!(!(data != null ? data.isDead : void 0) && (ref1 = boardID + "." + threadID, indexOf.call(e.detail.threads, ref1) < 0))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!e.detail.threads.some(function(fullID) {
|
||||||
|
return +fullID.split('.')[1] > threadID;
|
||||||
|
})) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
nKilled++;
|
nKilled++;
|
||||||
if (Conf['Auto Prune'] || !(data && typeof data === 'object')) {
|
if (Conf['Auto Prune'] || !(data && typeof data === 'object')) {
|
||||||
db["delete"]({
|
db["delete"]({
|
||||||
@ -22168,7 +22179,7 @@ QR = (function() {
|
|||||||
className: className
|
className: className
|
||||||
});
|
});
|
||||||
$.extend(div, {
|
$.extend(div, {
|
||||||
innerHTML: E(message) + "<br>[<a href=\"javascript:;\">delete</a>] [<a href=\"javascript:;\">delete all</a>]"
|
innerHTML: E(message) + "<br>[<a href=\"javascript:;\">delete post</a>] [<a href=\"javascript:;\">delete all</a>]"
|
||||||
});
|
});
|
||||||
(this.errors || (this.errors = [])).push(div);
|
(this.errors || (this.errors = [])).push(div);
|
||||||
ref = $$('a', div), rm = ref[0], rmAll = ref[1];
|
ref = $$('a', div), rm = ref[0], rmAll = ref[1];
|
||||||
|
|||||||
Binary file not shown.
@ -1,6 +1,6 @@
|
|||||||
// ==UserScript==
|
// ==UserScript==
|
||||||
// @name 4chan X
|
// @name 4chan X
|
||||||
// @version 1.13.1.4
|
// @version 1.13.1.5
|
||||||
// @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.13.1.4
|
// @version 1.13.1.5
|
||||||
// @minGMVer 1.14
|
// @minGMVer 1.14
|
||||||
// @minFFVer 26
|
// @minFFVer 26
|
||||||
// @namespace 4chan-X
|
// @namespace 4chan-X
|
||||||
@ -147,7 +147,7 @@ docSet = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
g = {
|
g = {
|
||||||
VERSION: '1.13.1.4',
|
VERSION: '1.13.1.5',
|
||||||
NAMESPACE: '4chan X.',
|
NAMESPACE: '4chan X.',
|
||||||
boards: {}
|
boards: {}
|
||||||
};
|
};
|
||||||
@ -385,7 +385,8 @@ Config = (function() {
|
|||||||
'Previous Index Mode': 'paged',
|
'Previous Index Mode': 'paged',
|
||||||
'Index Size': 'small',
|
'Index Size': 'small',
|
||||||
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.'],
|
'Show Replies': [true, 'Show replies in the index, and also in the catalog if "Catalog hover expand" is checked.'],
|
||||||
'Catalog Hover Expand': [true, 'Clicking in the catalog shows more details in the thread you are hovering over.'],
|
'Catalog Hover Expand': [false, 'Expand the comment and show more details when you hover over a thread in the catalog.'],
|
||||||
|
'Catalog Hover Toggle': [true, 'Turn "Catalog hover expand" on and off by clicking in the catalog.'],
|
||||||
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.'],
|
'Pin Watched Threads': [false, 'Move watched threads to the start of the index.'],
|
||||||
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.'],
|
'Anchor Hidden Threads': [true, 'Move hidden threads to the end of the index.'],
|
||||||
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
'Refreshed Navigation': [false, 'Refresh index when navigating through pages.']
|
||||||
@ -411,7 +412,7 @@ Config = (function() {
|
|||||||
'QR.personas': "#options:\"sage\";boards:jp;always",
|
'QR.personas': "#options:\"sage\";boards:jp;always",
|
||||||
sjisPreview: false
|
sjisPreview: false
|
||||||
},
|
},
|
||||||
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'',
|
jsWhitelist: 'http://s.4cdn.org\nhttps://s.4cdn.org\nhttp://www.google.com\nhttps://www.google.com\nhttps://www.gstatic.com\nhttp://cdn.mathjax.org\nhttps://cdn.mathjax.org\n\'self\'\n\'unsafe-inline\'\n\'unsafe-eval\'\n\n# Banner ads\n#http://s.zkcdn.net/ados.js\n#https://s.zkcdn.net/ados.js\n#http://engine.4chan-ads.org\n#https://engine.4chan-ads.org',
|
||||||
captchaLanguage: '',
|
captchaLanguage: '',
|
||||||
time: '%m/%d/%y(%a)%H:%M:%S',
|
time: '%m/%d/%y(%a)%H:%M:%S',
|
||||||
backlink: '>>%id',
|
backlink: '>>%id',
|
||||||
@ -1330,10 +1331,10 @@ body > div[style*=\" top: -10000px;\"] {\n\
|
|||||||
:root:not(.ads-loaded) .ad-plea,\n\
|
:root:not(.ads-loaded) .ad-plea,\n\
|
||||||
:root:not(.ads-loaded) hr.abovePostForm,\n\
|
:root:not(.ads-loaded) hr.abovePostForm,\n\
|
||||||
:root:not(.ads-loaded) .ad-plea-bottom + hr,\n\
|
:root:not(.ads-loaded) .ad-plea-bottom + hr,\n\
|
||||||
:root:not(.ads-loaded) #adg-ol + hr {\n\
|
#adg-ol + hr {\n\
|
||||||
display: none;\n\
|
display: none;\n\
|
||||||
}\n\
|
}\n\
|
||||||
:root:not(.ads-loaded) .adg-rects {\n\
|
.adg-rects {\n\
|
||||||
margin: 0;\n\
|
margin: 0;\n\
|
||||||
font-size: 0;\n\
|
font-size: 0;\n\
|
||||||
}\n\
|
}\n\
|
||||||
@ -2080,8 +2081,8 @@ div[data-checked=\"false\"] > .suboption-list {\n\
|
|||||||
display: inline-block;\n\
|
display: inline-block;\n\
|
||||||
font-style: italic;\n\
|
font-style: italic;\n\
|
||||||
}\n\
|
}\n\
|
||||||
.catalog-post > * > .nameBlock,\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > * > .nameBlock,\n\
|
||||||
.catalog-post > * > .dateTime,\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > * > .dateTime,\n\
|
||||||
:root.catalog-hover-expand .catalog-container:hover > * > .postMessage:not(:empty) {\n\
|
:root.catalog-hover-expand .catalog-container:hover > * > .postMessage:not(:empty) {\n\
|
||||||
padding-top: .3em;\n\
|
padding-top: .3em;\n\
|
||||||
}\n\
|
}\n\
|
||||||
@ -9318,7 +9319,7 @@ Index = (function() {
|
|||||||
});
|
});
|
||||||
Header.addShortcut('index-refresh', this.button, 590);
|
Header.addShortcut('index-refresh', this.button, 590);
|
||||||
entries = [];
|
entries = [];
|
||||||
inputs = {};
|
this.inputs = inputs = {};
|
||||||
ref4 = Config.Index;
|
ref4 = Config.Index;
|
||||||
for (name in ref4) {
|
for (name in ref4) {
|
||||||
arr = ref4[name];
|
arr = ref4[name];
|
||||||
@ -9350,7 +9351,7 @@ Index = (function() {
|
|||||||
sortEntry = UI.checkbox('Per-Board Sort Type', 'Per-board sort type', typeof Conf['Index Sort'] === 'object');
|
sortEntry = UI.checkbox('Per-Board Sort Type', 'Per-board sort type', typeof Conf['Index Sort'] === 'object');
|
||||||
sortEntry.title = 'Set the sorting order of each board independently.';
|
sortEntry.title = 'Set the sorting order of each board independently.';
|
||||||
$.on(sortEntry.firstChild, 'change', this.cb.perBoardSort);
|
$.on(sortEntry.firstChild, 'change', this.cb.perBoardSort);
|
||||||
entries.splice(2, 0, {
|
entries.splice(3, 0, {
|
||||||
el: sortEntry
|
el: sortEntry
|
||||||
});
|
});
|
||||||
Header.menu.addEntry({
|
Header.menu.addEntry({
|
||||||
@ -9398,6 +9399,7 @@ Index = (function() {
|
|||||||
});
|
});
|
||||||
$.on(this.root, 'click', this.cb.hoverToggle);
|
$.on(this.root, 'click', this.cb.hoverToggle);
|
||||||
this.cb.size();
|
this.cb.size();
|
||||||
|
this.cb.hover();
|
||||||
this.pagelist = $.el('div', {
|
this.pagelist = $.el('div', {
|
||||||
className: 'pagelist json-index'
|
className: 'pagelist json-index'
|
||||||
});
|
});
|
||||||
@ -9630,14 +9632,14 @@ Index = (function() {
|
|||||||
return Index.buildIndex();
|
return Index.buildIndex();
|
||||||
},
|
},
|
||||||
hover: function() {
|
hover: function() {
|
||||||
if (!Conf['Catalog Hover Expand']) {
|
return doc.classList.toggle('catalog-hover-expand', Conf['Catalog Hover Expand']);
|
||||||
return $.rmClass(doc, 'catalog-hover-expand');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
hoverToggle: function(e) {
|
hoverToggle: function(e) {
|
||||||
var thread;
|
var input, thread;
|
||||||
if (Conf['Catalog Hover Expand'] && $.hasClass(doc, 'catalog-mode') && !$.modifiedClick(e) && !$.x('ancestor-or-self::a', e.target)) {
|
if (Conf['Catalog Hover Toggle'] && $.hasClass(doc, 'catalog-mode') && !$.modifiedClick(e) && !$.x('ancestor-or-self::a', e.target)) {
|
||||||
$.toggleClass(doc, 'catalog-hover-expand');
|
input = Index.inputs['Catalog Hover Expand'];
|
||||||
|
input.checked = !input.checked;
|
||||||
|
$.event('change', null, input);
|
||||||
if ((thread = Get.threadFromNode(e.target))) {
|
if ((thread = Get.threadFromNode(e.target))) {
|
||||||
Index.cb.catalogReplies.call(thread);
|
Index.cb.catalogReplies.call(thread);
|
||||||
return Index.cb.hoverAdjust.call(thread.OP.nodes);
|
return Index.cb.hoverAdjust.call(thread.OP.nodes);
|
||||||
@ -10706,8 +10708,8 @@ Settings = (function() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
ads: function(cb) {
|
ads: function(cb) {
|
||||||
return $.onExists(doc, '.ad-cnt, .adg-rects', function(ad) {
|
return $.onExists(doc, '.adg-rects > .desktop', function(ad) {
|
||||||
return $.onExists(ad, 'img, iframe', function() {
|
return $.onExists(ad, 'iframe', function() {
|
||||||
var url;
|
var url;
|
||||||
url = Redirect.to('thread', {
|
url = Redirect.to('thread', {
|
||||||
boardID: 'qa',
|
boardID: 'qa',
|
||||||
@ -18367,14 +18369,18 @@ ThreadWatcher = (function() {
|
|||||||
ThreadWatcher.setToggler(toggler, !!data);
|
ThreadWatcher.setToggler(toggler, !!data);
|
||||||
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
$.on(toggler, 'click', ThreadWatcher.cb.toggle);
|
||||||
if (data && (data.excerpt == null)) {
|
if (data && (data.excerpt == null)) {
|
||||||
ThreadWatcher.db.extend({
|
return $.queueTask((function(_this) {
|
||||||
boardID: boardID,
|
return function() {
|
||||||
threadID: threadID,
|
ThreadWatcher.db.extend({
|
||||||
val: {
|
boardID: boardID,
|
||||||
excerpt: Get.threadExcerpt(this.thread)
|
threadID: threadID,
|
||||||
}
|
val: {
|
||||||
});
|
excerpt: Get.threadExcerpt(_this.thread)
|
||||||
return ThreadWatcher.refresh();
|
}
|
||||||
|
});
|
||||||
|
return ThreadWatcher.refresh();
|
||||||
|
};
|
||||||
|
})(this));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
catalogNode: function() {
|
catalogNode: function() {
|
||||||
@ -18467,6 +18473,11 @@ ThreadWatcher = (function() {
|
|||||||
if (!(!(data != null ? data.isDead : void 0) && (ref1 = boardID + "." + threadID, indexOf.call(e.detail.threads, ref1) < 0))) {
|
if (!(!(data != null ? data.isDead : void 0) && (ref1 = boardID + "." + threadID, indexOf.call(e.detail.threads, ref1) < 0))) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (!e.detail.threads.some(function(fullID) {
|
||||||
|
return +fullID.split('.')[1] > threadID;
|
||||||
|
})) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
nKilled++;
|
nKilled++;
|
||||||
if (Conf['Auto Prune'] || !(data && typeof data === 'object')) {
|
if (Conf['Auto Prune'] || !(data && typeof data === 'object')) {
|
||||||
db["delete"]({
|
db["delete"]({
|
||||||
@ -22168,7 +22179,7 @@ QR = (function() {
|
|||||||
className: className
|
className: className
|
||||||
});
|
});
|
||||||
$.extend(div, {
|
$.extend(div, {
|
||||||
innerHTML: E(message) + "<br>[<a href=\"javascript:;\">delete</a>] [<a href=\"javascript:;\">delete all</a>]"
|
innerHTML: E(message) + "<br>[<a href=\"javascript:;\">delete post</a>] [<a href=\"javascript:;\">delete all</a>]"
|
||||||
});
|
});
|
||||||
(this.errors || (this.errors = [])).push(div);
|
(this.errors || (this.errors = [])).push(div);
|
||||||
ref = $$('a', div), rm = ref[0], rmAll = ref[1];
|
ref = $$('a', div), rm = ref[0], rmAll = ref[1];
|
||||||
|
|||||||
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.13.1.4' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.13.1.5' />
|
||||||
</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.13.1.4' />
|
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.13.1.5' />
|
||||||
</app>
|
</app>
|
||||||
</gupdate>
|
</gupdate>
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"version": "1.13.1.4",
|
"version": "1.13.1.5",
|
||||||
"date": "2016-11-09T23:17:32.436Z"
|
"date": "2016-11-13T22:03:43.907Z"
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user