diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7bcba0d0c..cb8274daa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,13 @@
## v1.13.0
+**v1.13.0.20** *(2016-11-05)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.0.20/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.0.20/builds/4chan-X-noupdate.crx)]
+- Bugfix: Don't add embedding window to error pages.
+- Hide EXIF data in /p/ catalog except on hover.
+
+**v1.13.0.19** *(2016-10-31)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.0.19/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.0.19/builds/4chan-X-noupdate.crx)]
+- Bring back CSS tweaks for Halloween theme.
+
**v1.13.0.18** *(2016-10-31)* - [[Userscript](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.0.18/builds/4chan-X-noupdate.user.js)] [[Chrome extension](https://raw.githubusercontent.com/ccd0/4chan-x/1.13.0.18/builds/4chan-X-noupdate.crx)]
- Improve robustness against invalid settings data, including thread watcher timestamps from future.
diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx
index 830d3c115..6b2af4bb7 100644
Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ
diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js
index 6df20c1cf..c0057822a 100644
--- a/builds/4chan-X-beta.meta.js
+++ b/builds/4chan-X-beta.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
-// @version 1.13.0.18
+// @version 1.13.0.20
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js
index 13337e2a0..08aae1df6 100644
--- a/builds/4chan-X-beta.user.js
+++ b/builds/4chan-X-beta.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X beta
-// @version 1.13.0.18
+// @version 1.13.0.20
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -147,7 +147,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.0.18',
+ VERSION: '1.13.0.20',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -2013,10 +2013,12 @@ div[data-checked=\"false\"] > .suboption-list {\n\
.catalog-container:not(:hover) > * > .postInfo > :not(.subject),\n\
.catalog-container:not(:hover) > * > .catalog-replies,\n\
.catalog-container:not(:hover) .extra-linebreak,\n\
+.catalog-container:not(:hover) .abbr,\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .file,\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .postInfo > :not(.subject),\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .catalog-replies,\n\
:root:not(.catalog-hover-expand) .catalog-container .extra-linebreak,\n\
+:root:not(.catalog-hover-expand) .catalog-container .abbr,\n\
.catalog-thread > .catalog-container > :not(.catalog-post),\n\
.catalog-post > .file > :not(.fileText),\n\
.catalog-post > * > .fileText > :not(:first-child),\n\
@@ -2104,10 +2106,14 @@ div[data-checked=\"false\"] > .suboption-list {\n\
.catalog-post .MathJax_Display {\n\
text-align: center !important;\n\
}\n\
+.catalog-container:not(:hover) .exif,\n\
+:root:not(.catalog-hover-expand) .catalog-container .exif {\n\
+ display: none !important;\n\
+}\n\
.catalog-post > * > .exif {\n\
border-collapse: collapse;\n\
}\n\
-.catalog-post > * > .exif[style*=\"display: block;\"] {\n\
+:root.catalog-hover-expand .catalog-container:hover .exif[style*=\"display: block;\"] {\n\
display: inline-block !important;\n\
}\n\
.catalog-post > * > .exif,\n\
@@ -4017,6 +4023,156 @@ a:only-of-type > .remove {\n\
{\n\
background-image: url(\"data:image/svg+xml,\");\n\
}\n\
+/* General */\n\
+:root.spooky .dialog {\n\
+ background-color: #171526;\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .field:focus,\n\
+:root.spooky .field.focus {\n\
+ border-color: #98E;\n\
+}\n\
+/* Header */\n\
+:root.spooky #header-bar.dialog {\n\
+ background-color: rgba(23,21,38,0.98);\n\
+}\n\
+:root.spooky:not(.fixed) #header-bar, :root.spooky #notifications {\n\
+ font-size: 9pt;\n\
+}\n\
+:root.spooky #header-bar, :root.spooky #notifications {\n\
+ color: #C49756;\n\
+}\n\
+:root.spooky #board-list a, :root.spooky #shortcuts a {\n\
+ color: #FE9600;\n\
+}\n\
+:root.spooky.shortcut-icons .native-settings {\n\
+ background-image: url('//s.4cdn.org/image/favicon-ws.ico');\n\
+}\n\
+/* Settings */\n\
+:root.spooky #fourchanx-settings fieldset, :root.spooky .section-main div::before {\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .suboption-list > div:last-of-type {\n\
+ background-color: #171526;\n\
+}\n\
+/* Catalog */\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post {\n\
+ background-color: #171526;\n\
+}\n\
+:root.spooky.werkTyme .catalog-thread:not(:hover),\n\
+:root.spooky.werkTyme:not(.catalog-hover-expand) .catalog-thread,\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post,\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover .catalog-reply {\n\
+ border-color: #707070;\n\
+}\n\
+/* Quote */\n\
+:root.spooky #arc-list span.quote {\n\
+ color: #634C2C;\n\
+}\n\
+:root.spooky .backlink.deadlink {\n\
+ color: #FE9600 !important;\n\
+}\n\
+:root.spooky .inline {\n\
+ border-color: #707070;\n\
+ background-color: rgba(255, 255, 255, .14);\n\
+}\n\
+/* Fappe and Werk Tyme */\n\
+:root.spooky .indicator {\n\
+ color: #171526;\n\
+}\n\
+/* Highlighting */\n\
+:root.spooky .qphl {\n\
+ outline: 2px solid rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky.highlight-you .quotesYou.opContainer,\n\
+:root.spooky.highlight-you .quotesYou > .reply {\n\
+ border-left: 3px solid rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky.highlight-own .yourPost.opContainer,\n\
+:root.spooky.highlight-own .yourPost > .reply {\n\
+ border-left: 3px dashed rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky .opContainer.filter-highlight,\n\
+:root.spooky .filter-highlight > .reply {\n\
+ box-shadow: inset 5px 0 rgba(145, 182, 214, .5);\n\
+}\n\
+:root.spooky.highlight-own .yourPost > div.sideArrows,\n\
+:root.spooky.highlight-you .quotesYou > div.sideArrows,\n\
+:root.spooky .filter-highlight > div.sideArrows {\n\
+ color: rgb(155, 185, 210);\n\
+}\n\
+/* QR */\n\
+.spooky #dump-list::-webkit-scrollbar-thumb {\n\
+ background-color: #171526;\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .qr-preview {\n\
+ background-color: rgba(0, 0, 0, .15);\n\
+}\n\
+:root.spooky #qr .field {\n\
+ background-color: rgb(26, 27, 29);\n\
+ color: rgb(197,200,198);\n\
+ border-color: rgb(40, 41, 42);\n\
+}\n\
+:root.spooky #qr .field:focus,\n\
+:root.spooky #qr .field.focus {\n\
+ border-color: rgb(254, 150, 0) !important;\n\
+ background-color: rgb(30,32,36);\n\
+}\n\
+:root.spooky .persona button {\n\
+ background: linear-gradient(to bottom, #2E3035, #222427) no-repeat;\n\
+ color: rgb(197,200,198);\n\
+ border-color: rgb(40, 41, 42);\n\
+ outline: none;\n\
+}\n\
+:root.spooky .persona button::-moz-focus-inner {\n\
+ border: none;\n\
+}\n\
+:root.spooky .persona button:focus {\n\
+ border-color: rgb(254, 150, 0);\n\
+}\n\
+:root.spooky #qr.sjis-preview #sjis-toggle,\n\
+:root.spooky #qr.tex-preview #tex-preview-button {\n\
+ background: rgb(26, 27, 29);\n\
+}\n\
+:root.spooky #qr select,\n\
+:root.spooky #file-n-submit > input,\n\
+:root.spooky #qr-draw-button {\n\
+ border-color: rgb(40, 41, 42);\n\
+}\n\
+:root.spooky #qr-filename {\n\
+ color: rgb(197,200,198);\n\
+}\n\
+:root.spooky .qr-link {\n\
+ border-color: rgb(8, 6, 23) rgb(8, 6, 23) rgb(0, 0, 8);\n\
+ background: linear-gradient(#262435, #171526) repeat scroll 0% 0% transparent;\n\
+}\n\
+:root.spooky .qr-link:hover {\n\
+ background: #1A1829;\n\
+}\n\
+/* Menu */\n\
+:root.spooky #menu {\n\
+ color: #FE9600;\n\
+}\n\
+:root.spooky .entry {\n\
+ font-size: 10pt;\n\
+}\n\
+:root.spooky .focused.entry {\n\
+ background: rgba(255, 255, 255, .33);\n\
+}\n\
+/* Unread */\n\
+:root.spooky #unread-line {\n\
+ border-color: rgb(197, 200, 198);\n\
+}\n\
+/* Thread Watcher */\n\
+:root.spooky .replies-quoting-you > a, :root.spooky #watcher-link.replies-quoting-you {\n\
+ color: #F00 !important;\n\
+}\n\
+/* Watcher Favicon */\n\
+:root.spooky .watch-thread-link\n\
+{\n\
+ background-image: url(\"data:image/svg+xml,\");\n\
+}\n\
/* Link Title Favicons */\n\
.linkify.audio::before {\n\
content: \"\";\n\
@@ -13760,6 +13916,9 @@ Embedding = (function() {
}
},
ready: function() {
+ if (!Main.isThisPageLegit()) {
+ return;
+ }
$.addClass(Embedding.dialog, 'empty');
$.on($('.close', Embedding.dialog), 'click', Embedding.closeFloat);
$.on($('.move', Embedding.dialog), 'mousedown', Embedding.dragEmbed);
@@ -19799,7 +19958,7 @@ Captcha = {};
container = document.querySelector('#qr .captcha-container');
return container.dataset.widgetID = window.grecaptcha.render(container, {
sitekey: '6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc',
- theme: classList.contains('tomorrow') || classList.contains('dark-captcha') ? 'dark' : 'light',
+ theme: classList.contains('tomorrow') || classList.contains('spooky') || classList.contains('dark-captcha') ? 'dark' : 'light',
callback: function(response) {
return window.dispatchEvent(new CustomEvent('captcha:success', {
detail: response
@@ -23326,7 +23485,14 @@ Main = (function() {
return Main.setClass();
},
setClass: function() {
- var mainStyleSheet, setStyle, style, styleSheets;
+ var mainStyleSheet, setStyle, spooky, style, styleSheets;
+ if ((spooky = $('link[rel="stylesheet"][href^="//s.4cdn.org/css/spooky."]', d.head))) {
+ spooky.removeAttribute('media');
+ if (getComputedStyle(d.body).color === 'rgb(196, 151, 86)') {
+ $.addClass(doc, 'spooky');
+ return;
+ }
+ }
if (g.VIEW === 'catalog') {
$.addClass(doc, $.id('base-css').href.match(/catalog_(\w+)/)[1].replace('_new', '').replace(/_+/g, '-'));
return;
diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx
index ae5b5ec53..2bf92b88c 100644
Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ
diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js
index 0f02249a4..e2e0da38b 100644
--- a/builds/4chan-X-noupdate.user.js
+++ b/builds/4chan-X-noupdate.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.0.18
+// @version 1.13.0.20
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -147,7 +147,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.0.18',
+ VERSION: '1.13.0.20',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -2013,10 +2013,12 @@ div[data-checked=\"false\"] > .suboption-list {\n\
.catalog-container:not(:hover) > * > .postInfo > :not(.subject),\n\
.catalog-container:not(:hover) > * > .catalog-replies,\n\
.catalog-container:not(:hover) .extra-linebreak,\n\
+.catalog-container:not(:hover) .abbr,\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .file,\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .postInfo > :not(.subject),\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .catalog-replies,\n\
:root:not(.catalog-hover-expand) .catalog-container .extra-linebreak,\n\
+:root:not(.catalog-hover-expand) .catalog-container .abbr,\n\
.catalog-thread > .catalog-container > :not(.catalog-post),\n\
.catalog-post > .file > :not(.fileText),\n\
.catalog-post > * > .fileText > :not(:first-child),\n\
@@ -2104,10 +2106,14 @@ div[data-checked=\"false\"] > .suboption-list {\n\
.catalog-post .MathJax_Display {\n\
text-align: center !important;\n\
}\n\
+.catalog-container:not(:hover) .exif,\n\
+:root:not(.catalog-hover-expand) .catalog-container .exif {\n\
+ display: none !important;\n\
+}\n\
.catalog-post > * > .exif {\n\
border-collapse: collapse;\n\
}\n\
-.catalog-post > * > .exif[style*=\"display: block;\"] {\n\
+:root.catalog-hover-expand .catalog-container:hover .exif[style*=\"display: block;\"] {\n\
display: inline-block !important;\n\
}\n\
.catalog-post > * > .exif,\n\
@@ -4017,6 +4023,156 @@ a:only-of-type > .remove {\n\
{\n\
background-image: url(\"data:image/svg+xml,\");\n\
}\n\
+/* General */\n\
+:root.spooky .dialog {\n\
+ background-color: #171526;\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .field:focus,\n\
+:root.spooky .field.focus {\n\
+ border-color: #98E;\n\
+}\n\
+/* Header */\n\
+:root.spooky #header-bar.dialog {\n\
+ background-color: rgba(23,21,38,0.98);\n\
+}\n\
+:root.spooky:not(.fixed) #header-bar, :root.spooky #notifications {\n\
+ font-size: 9pt;\n\
+}\n\
+:root.spooky #header-bar, :root.spooky #notifications {\n\
+ color: #C49756;\n\
+}\n\
+:root.spooky #board-list a, :root.spooky #shortcuts a {\n\
+ color: #FE9600;\n\
+}\n\
+:root.spooky.shortcut-icons .native-settings {\n\
+ background-image: url('//s.4cdn.org/image/favicon-ws.ico');\n\
+}\n\
+/* Settings */\n\
+:root.spooky #fourchanx-settings fieldset, :root.spooky .section-main div::before {\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .suboption-list > div:last-of-type {\n\
+ background-color: #171526;\n\
+}\n\
+/* Catalog */\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post {\n\
+ background-color: #171526;\n\
+}\n\
+:root.spooky.werkTyme .catalog-thread:not(:hover),\n\
+:root.spooky.werkTyme:not(.catalog-hover-expand) .catalog-thread,\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post,\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover .catalog-reply {\n\
+ border-color: #707070;\n\
+}\n\
+/* Quote */\n\
+:root.spooky #arc-list span.quote {\n\
+ color: #634C2C;\n\
+}\n\
+:root.spooky .backlink.deadlink {\n\
+ color: #FE9600 !important;\n\
+}\n\
+:root.spooky .inline {\n\
+ border-color: #707070;\n\
+ background-color: rgba(255, 255, 255, .14);\n\
+}\n\
+/* Fappe and Werk Tyme */\n\
+:root.spooky .indicator {\n\
+ color: #171526;\n\
+}\n\
+/* Highlighting */\n\
+:root.spooky .qphl {\n\
+ outline: 2px solid rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky.highlight-you .quotesYou.opContainer,\n\
+:root.spooky.highlight-you .quotesYou > .reply {\n\
+ border-left: 3px solid rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky.highlight-own .yourPost.opContainer,\n\
+:root.spooky.highlight-own .yourPost > .reply {\n\
+ border-left: 3px dashed rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky .opContainer.filter-highlight,\n\
+:root.spooky .filter-highlight > .reply {\n\
+ box-shadow: inset 5px 0 rgba(145, 182, 214, .5);\n\
+}\n\
+:root.spooky.highlight-own .yourPost > div.sideArrows,\n\
+:root.spooky.highlight-you .quotesYou > div.sideArrows,\n\
+:root.spooky .filter-highlight > div.sideArrows {\n\
+ color: rgb(155, 185, 210);\n\
+}\n\
+/* QR */\n\
+.spooky #dump-list::-webkit-scrollbar-thumb {\n\
+ background-color: #171526;\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .qr-preview {\n\
+ background-color: rgba(0, 0, 0, .15);\n\
+}\n\
+:root.spooky #qr .field {\n\
+ background-color: rgb(26, 27, 29);\n\
+ color: rgb(197,200,198);\n\
+ border-color: rgb(40, 41, 42);\n\
+}\n\
+:root.spooky #qr .field:focus,\n\
+:root.spooky #qr .field.focus {\n\
+ border-color: rgb(254, 150, 0) !important;\n\
+ background-color: rgb(30,32,36);\n\
+}\n\
+:root.spooky .persona button {\n\
+ background: linear-gradient(to bottom, #2E3035, #222427) no-repeat;\n\
+ color: rgb(197,200,198);\n\
+ border-color: rgb(40, 41, 42);\n\
+ outline: none;\n\
+}\n\
+:root.spooky .persona button::-moz-focus-inner {\n\
+ border: none;\n\
+}\n\
+:root.spooky .persona button:focus {\n\
+ border-color: rgb(254, 150, 0);\n\
+}\n\
+:root.spooky #qr.sjis-preview #sjis-toggle,\n\
+:root.spooky #qr.tex-preview #tex-preview-button {\n\
+ background: rgb(26, 27, 29);\n\
+}\n\
+:root.spooky #qr select,\n\
+:root.spooky #file-n-submit > input,\n\
+:root.spooky #qr-draw-button {\n\
+ border-color: rgb(40, 41, 42);\n\
+}\n\
+:root.spooky #qr-filename {\n\
+ color: rgb(197,200,198);\n\
+}\n\
+:root.spooky .qr-link {\n\
+ border-color: rgb(8, 6, 23) rgb(8, 6, 23) rgb(0, 0, 8);\n\
+ background: linear-gradient(#262435, #171526) repeat scroll 0% 0% transparent;\n\
+}\n\
+:root.spooky .qr-link:hover {\n\
+ background: #1A1829;\n\
+}\n\
+/* Menu */\n\
+:root.spooky #menu {\n\
+ color: #FE9600;\n\
+}\n\
+:root.spooky .entry {\n\
+ font-size: 10pt;\n\
+}\n\
+:root.spooky .focused.entry {\n\
+ background: rgba(255, 255, 255, .33);\n\
+}\n\
+/* Unread */\n\
+:root.spooky #unread-line {\n\
+ border-color: rgb(197, 200, 198);\n\
+}\n\
+/* Thread Watcher */\n\
+:root.spooky .replies-quoting-you > a, :root.spooky #watcher-link.replies-quoting-you {\n\
+ color: #F00 !important;\n\
+}\n\
+/* Watcher Favicon */\n\
+:root.spooky .watch-thread-link\n\
+{\n\
+ background-image: url(\"data:image/svg+xml,\");\n\
+}\n\
/* Link Title Favicons */\n\
.linkify.audio::before {\n\
content: \"\";\n\
@@ -13760,6 +13916,9 @@ Embedding = (function() {
}
},
ready: function() {
+ if (!Main.isThisPageLegit()) {
+ return;
+ }
$.addClass(Embedding.dialog, 'empty');
$.on($('.close', Embedding.dialog), 'click', Embedding.closeFloat);
$.on($('.move', Embedding.dialog), 'mousedown', Embedding.dragEmbed);
@@ -19799,7 +19958,7 @@ Captcha = {};
container = document.querySelector('#qr .captcha-container');
return container.dataset.widgetID = window.grecaptcha.render(container, {
sitekey: '6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc',
- theme: classList.contains('tomorrow') || classList.contains('dark-captcha') ? 'dark' : 'light',
+ theme: classList.contains('tomorrow') || classList.contains('spooky') || classList.contains('dark-captcha') ? 'dark' : 'light',
callback: function(response) {
return window.dispatchEvent(new CustomEvent('captcha:success', {
detail: response
@@ -23326,7 +23485,14 @@ Main = (function() {
return Main.setClass();
},
setClass: function() {
- var mainStyleSheet, setStyle, style, styleSheets;
+ var mainStyleSheet, setStyle, spooky, style, styleSheets;
+ if ((spooky = $('link[rel="stylesheet"][href^="//s.4cdn.org/css/spooky."]', d.head))) {
+ spooky.removeAttribute('media');
+ if (getComputedStyle(d.body).color === 'rgb(196, 151, 86)') {
+ $.addClass(doc, 'spooky');
+ return;
+ }
+ }
if (g.VIEW === 'catalog') {
$.addClass(doc, $.id('base-css').href.match(/catalog_(\w+)/)[1].replace('_new', '').replace(/_+/g, '-'));
return;
diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx
index 8b6461861..d9c0da07f 100644
Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ
diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js
index 74a191934..17e679e03 100644
--- a/builds/4chan-X.meta.js
+++ b/builds/4chan-X.meta.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.0.18
+// @version 1.13.0.20
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js
index e6a706f52..83fb30c6f 100644
--- a/builds/4chan-X.user.js
+++ b/builds/4chan-X.user.js
@@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
-// @version 1.13.0.18
+// @version 1.13.0.20
// @minGMVer 1.14
// @minFFVer 26
// @namespace 4chan-X
@@ -147,7 +147,7 @@ docSet = function() {
};
g = {
- VERSION: '1.13.0.18',
+ VERSION: '1.13.0.20',
NAMESPACE: '4chan X.',
boards: {}
};
@@ -2013,10 +2013,12 @@ div[data-checked=\"false\"] > .suboption-list {\n\
.catalog-container:not(:hover) > * > .postInfo > :not(.subject),\n\
.catalog-container:not(:hover) > * > .catalog-replies,\n\
.catalog-container:not(:hover) .extra-linebreak,\n\
+.catalog-container:not(:hover) .abbr,\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .file,\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .postInfo > :not(.subject),\n\
:root:not(.catalog-hover-expand) .catalog-container > * > .catalog-replies,\n\
:root:not(.catalog-hover-expand) .catalog-container .extra-linebreak,\n\
+:root:not(.catalog-hover-expand) .catalog-container .abbr,\n\
.catalog-thread > .catalog-container > :not(.catalog-post),\n\
.catalog-post > .file > :not(.fileText),\n\
.catalog-post > * > .fileText > :not(:first-child),\n\
@@ -2104,10 +2106,14 @@ div[data-checked=\"false\"] > .suboption-list {\n\
.catalog-post .MathJax_Display {\n\
text-align: center !important;\n\
}\n\
+.catalog-container:not(:hover) .exif,\n\
+:root:not(.catalog-hover-expand) .catalog-container .exif {\n\
+ display: none !important;\n\
+}\n\
.catalog-post > * > .exif {\n\
border-collapse: collapse;\n\
}\n\
-.catalog-post > * > .exif[style*=\"display: block;\"] {\n\
+:root.catalog-hover-expand .catalog-container:hover .exif[style*=\"display: block;\"] {\n\
display: inline-block !important;\n\
}\n\
.catalog-post > * > .exif,\n\
@@ -4017,6 +4023,156 @@ a:only-of-type > .remove {\n\
{\n\
background-image: url(\"data:image/svg+xml,\");\n\
}\n\
+/* General */\n\
+:root.spooky .dialog {\n\
+ background-color: #171526;\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .field:focus,\n\
+:root.spooky .field.focus {\n\
+ border-color: #98E;\n\
+}\n\
+/* Header */\n\
+:root.spooky #header-bar.dialog {\n\
+ background-color: rgba(23,21,38,0.98);\n\
+}\n\
+:root.spooky:not(.fixed) #header-bar, :root.spooky #notifications {\n\
+ font-size: 9pt;\n\
+}\n\
+:root.spooky #header-bar, :root.spooky #notifications {\n\
+ color: #C49756;\n\
+}\n\
+:root.spooky #board-list a, :root.spooky #shortcuts a {\n\
+ color: #FE9600;\n\
+}\n\
+:root.spooky.shortcut-icons .native-settings {\n\
+ background-image: url('//s.4cdn.org/image/favicon-ws.ico');\n\
+}\n\
+/* Settings */\n\
+:root.spooky #fourchanx-settings fieldset, :root.spooky .section-main div::before {\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .suboption-list > div:last-of-type {\n\
+ background-color: #171526;\n\
+}\n\
+/* Catalog */\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post {\n\
+ background-color: #171526;\n\
+}\n\
+:root.spooky.werkTyme .catalog-thread:not(:hover),\n\
+:root.spooky.werkTyme:not(.catalog-hover-expand) .catalog-thread,\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post,\n\
+:root.spooky.catalog-hover-expand .catalog-container:hover .catalog-reply {\n\
+ border-color: #707070;\n\
+}\n\
+/* Quote */\n\
+:root.spooky #arc-list span.quote {\n\
+ color: #634C2C;\n\
+}\n\
+:root.spooky .backlink.deadlink {\n\
+ color: #FE9600 !important;\n\
+}\n\
+:root.spooky .inline {\n\
+ border-color: #707070;\n\
+ background-color: rgba(255, 255, 255, .14);\n\
+}\n\
+/* Fappe and Werk Tyme */\n\
+:root.spooky .indicator {\n\
+ color: #171526;\n\
+}\n\
+/* Highlighting */\n\
+:root.spooky .qphl {\n\
+ outline: 2px solid rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky.highlight-you .quotesYou.opContainer,\n\
+:root.spooky.highlight-you .quotesYou > .reply {\n\
+ border-left: 3px solid rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky.highlight-own .yourPost.opContainer,\n\
+:root.spooky.highlight-own .yourPost > .reply {\n\
+ border-left: 3px dashed rgba(145, 182, 214, .8);\n\
+}\n\
+:root.spooky .opContainer.filter-highlight,\n\
+:root.spooky .filter-highlight > .reply {\n\
+ box-shadow: inset 5px 0 rgba(145, 182, 214, .5);\n\
+}\n\
+:root.spooky.highlight-own .yourPost > div.sideArrows,\n\
+:root.spooky.highlight-you .quotesYou > div.sideArrows,\n\
+:root.spooky .filter-highlight > div.sideArrows {\n\
+ color: rgb(155, 185, 210);\n\
+}\n\
+/* QR */\n\
+.spooky #dump-list::-webkit-scrollbar-thumb {\n\
+ background-color: #171526;\n\
+ border-color: #707070;\n\
+}\n\
+:root.spooky .qr-preview {\n\
+ background-color: rgba(0, 0, 0, .15);\n\
+}\n\
+:root.spooky #qr .field {\n\
+ background-color: rgb(26, 27, 29);\n\
+ color: rgb(197,200,198);\n\
+ border-color: rgb(40, 41, 42);\n\
+}\n\
+:root.spooky #qr .field:focus,\n\
+:root.spooky #qr .field.focus {\n\
+ border-color: rgb(254, 150, 0) !important;\n\
+ background-color: rgb(30,32,36);\n\
+}\n\
+:root.spooky .persona button {\n\
+ background: linear-gradient(to bottom, #2E3035, #222427) no-repeat;\n\
+ color: rgb(197,200,198);\n\
+ border-color: rgb(40, 41, 42);\n\
+ outline: none;\n\
+}\n\
+:root.spooky .persona button::-moz-focus-inner {\n\
+ border: none;\n\
+}\n\
+:root.spooky .persona button:focus {\n\
+ border-color: rgb(254, 150, 0);\n\
+}\n\
+:root.spooky #qr.sjis-preview #sjis-toggle,\n\
+:root.spooky #qr.tex-preview #tex-preview-button {\n\
+ background: rgb(26, 27, 29);\n\
+}\n\
+:root.spooky #qr select,\n\
+:root.spooky #file-n-submit > input,\n\
+:root.spooky #qr-draw-button {\n\
+ border-color: rgb(40, 41, 42);\n\
+}\n\
+:root.spooky #qr-filename {\n\
+ color: rgb(197,200,198);\n\
+}\n\
+:root.spooky .qr-link {\n\
+ border-color: rgb(8, 6, 23) rgb(8, 6, 23) rgb(0, 0, 8);\n\
+ background: linear-gradient(#262435, #171526) repeat scroll 0% 0% transparent;\n\
+}\n\
+:root.spooky .qr-link:hover {\n\
+ background: #1A1829;\n\
+}\n\
+/* Menu */\n\
+:root.spooky #menu {\n\
+ color: #FE9600;\n\
+}\n\
+:root.spooky .entry {\n\
+ font-size: 10pt;\n\
+}\n\
+:root.spooky .focused.entry {\n\
+ background: rgba(255, 255, 255, .33);\n\
+}\n\
+/* Unread */\n\
+:root.spooky #unread-line {\n\
+ border-color: rgb(197, 200, 198);\n\
+}\n\
+/* Thread Watcher */\n\
+:root.spooky .replies-quoting-you > a, :root.spooky #watcher-link.replies-quoting-you {\n\
+ color: #F00 !important;\n\
+}\n\
+/* Watcher Favicon */\n\
+:root.spooky .watch-thread-link\n\
+{\n\
+ background-image: url(\"data:image/svg+xml,\");\n\
+}\n\
/* Link Title Favicons */\n\
.linkify.audio::before {\n\
content: \"\";\n\
@@ -13760,6 +13916,9 @@ Embedding = (function() {
}
},
ready: function() {
+ if (!Main.isThisPageLegit()) {
+ return;
+ }
$.addClass(Embedding.dialog, 'empty');
$.on($('.close', Embedding.dialog), 'click', Embedding.closeFloat);
$.on($('.move', Embedding.dialog), 'mousedown', Embedding.dragEmbed);
@@ -19799,7 +19958,7 @@ Captcha = {};
container = document.querySelector('#qr .captcha-container');
return container.dataset.widgetID = window.grecaptcha.render(container, {
sitekey: '6Ldp2bsSAAAAAAJ5uyx_lx34lJeEpTLVkP5k04qc',
- theme: classList.contains('tomorrow') || classList.contains('dark-captcha') ? 'dark' : 'light',
+ theme: classList.contains('tomorrow') || classList.contains('spooky') || classList.contains('dark-captcha') ? 'dark' : 'light',
callback: function(response) {
return window.dispatchEvent(new CustomEvent('captcha:success', {
detail: response
@@ -23326,7 +23485,14 @@ Main = (function() {
return Main.setClass();
},
setClass: function() {
- var mainStyleSheet, setStyle, style, styleSheets;
+ var mainStyleSheet, setStyle, spooky, style, styleSheets;
+ if ((spooky = $('link[rel="stylesheet"][href^="//s.4cdn.org/css/spooky."]', d.head))) {
+ spooky.removeAttribute('media');
+ if (getComputedStyle(d.body).color === 'rgb(196, 151, 86)') {
+ $.addClass(doc, 'spooky');
+ return;
+ }
+ }
if (g.VIEW === 'catalog') {
$.addClass(doc, $.id('base-css').href.match(/catalog_(\w+)/)[1].replace('_new', '').replace(/_+/g, '-'));
return;
diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip
index e01ecfaa1..f4634851a 100644
Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ
diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml
index 806732ec1..8a99105f3 100644
--- a/builds/updates-beta.xml
+++ b/builds/updates-beta.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/builds/updates.xml b/builds/updates.xml
index 6cb5fae3f..dcc2522df 100644
--- a/builds/updates.xml
+++ b/builds/updates.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/src/Linkification/Embedding.coffee b/src/Linkification/Embedding.coffee
index 40d7f2f7d..6fe79aeb0 100644
--- a/src/Linkification/Embedding.coffee
+++ b/src/Linkification/Embedding.coffee
@@ -65,6 +65,7 @@ Embedding =
$.on d, 'PostsInserted', autoEmbed
ready: ->
+ return if !Main.isThisPageLegit()
$.addClass Embedding.dialog, 'empty'
$.on $('.close', Embedding.dialog), 'click', Embedding.closeFloat
$.on $('.move', Embedding.dialog), 'mousedown', Embedding.dragEmbed
diff --git a/src/Posting/Captcha.v2.coffee b/src/Posting/Captcha.v2.coffee
index 95513c578..dad266681 100644
--- a/src/Posting/Captcha.v2.coffee
+++ b/src/Posting/Captcha.v2.coffee
@@ -109,7 +109,7 @@ Captcha.v2 =
container = document.querySelector '#qr .captcha-container'
container.dataset.widgetID = window.grecaptcha.render container,
sitekey: '<%= meta.recaptchaKey %>'
- theme: if classList.contains('tomorrow') or classList.contains('dark-captcha') then 'dark' else 'light'
+ theme: if classList.contains('tomorrow') or classList.contains('spooky') or classList.contains('dark-captcha') then 'dark' else 'light'
callback: (response) ->
window.dispatchEvent new CustomEvent('captcha:success', {detail: response})
if window.grecaptcha
diff --git a/src/css/CSS.js b/src/css/CSS.js
index 2bb0209df..cbafdda42 100644
--- a/src/css/CSS.js
+++ b/src/css/CSS.js
@@ -2,7 +2,7 @@
var inc = require['style'];
var faCSS = read('/node_modules/font-awesome/css/font-awesome.css');
var faWebFont = readBase64('/node_modules/font-awesome/fonts/fontawesome-webfont.woff');
- var mainCSS = ['font-awesome', 'style', 'yotsuba', 'yotsuba-b', 'futaba', 'burichan', 'tomorrow', 'photon'].map(x => read(`${x}.css`)).join('');
+ var mainCSS = ['font-awesome', 'style', 'yotsuba', 'yotsuba-b', 'futaba', 'burichan', 'tomorrow', 'photon', 'spooky'].map(x => read(`${x}.css`)).join('');
var iconNames = files.filter(f => /^linkify\.[^.]+\.png$/.test(f));
var icons = iconNames.map(readBase64);
%>CSS = {
diff --git a/src/css/spooky.css b/src/css/spooky.css
new file mode 100644
index 000000000..a7db8fcf5
--- /dev/null
+++ b/src/css/spooky.css
@@ -0,0 +1,163 @@
+/* General */
+:root.spooky .dialog {
+ background-color: #171526;
+ border-color: #707070;
+}
+:root.spooky .field:focus,
+:root.spooky .field.focus {
+ border-color: #98E;
+}
+
+/* Header */
+:root.spooky #header-bar.dialog {
+ background-color: rgba(23,21,38,0.98);
+}
+:root.spooky:not(.fixed) #header-bar, :root.spooky #notifications {
+ font-size: 9pt;
+}
+:root.spooky #header-bar, :root.spooky #notifications {
+ color: #C49756;
+}
+:root.spooky #board-list a, :root.spooky #shortcuts a {
+ color: #FE9600;
+}
+:root.spooky.shortcut-icons .native-settings {
+ background-image: url('//s.4cdn.org/image/favicon-ws.ico');
+}
+
+/* Settings */
+:root.spooky #fourchanx-settings fieldset, :root.spooky .section-main div::before {
+ border-color: #707070;
+}
+:root.spooky .suboption-list > div:last-of-type {
+ background-color: #171526;
+}
+
+/* Catalog */
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post {
+ background-color: #171526;
+}
+:root.spooky.werkTyme .catalog-thread:not(:hover),
+:root.spooky.werkTyme:not(.catalog-hover-expand) .catalog-thread,
+:root.spooky.catalog-hover-expand .catalog-container:hover > .post,
+:root.spooky.catalog-hover-expand .catalog-container:hover .catalog-reply {
+ border-color: #707070;
+}
+
+/* Quote */
+:root.spooky #arc-list span.quote {
+ color: #634C2C;
+}
+:root.spooky .backlink.deadlink {
+ color: #FE9600 !important;
+}
+:root.spooky .inline {
+ border-color: #707070;
+ background-color: rgba(255, 255, 255, .14);
+}
+
+/* Fappe and Werk Tyme */
+:root.spooky .indicator {
+ color: #171526;
+}
+
+/* Highlighting */
+:root.spooky .qphl {
+ outline: 2px solid rgba(145, 182, 214, .8);
+}
+:root.spooky.highlight-you .quotesYou.opContainer,
+:root.spooky.highlight-you .quotesYou > .reply {
+ border-left: 3px solid rgba(145, 182, 214, .8);
+}
+:root.spooky.highlight-own .yourPost.opContainer,
+:root.spooky.highlight-own .yourPost > .reply {
+ border-left: 3px dashed rgba(145, 182, 214, .8);
+}
+:root.spooky .opContainer.filter-highlight,
+:root.spooky .filter-highlight > .reply {
+ box-shadow: inset 5px 0 rgba(145, 182, 214, .5);
+}
+:root.spooky.highlight-own .yourPost > div.sideArrows,
+:root.spooky.highlight-you .quotesYou > div.sideArrows,
+:root.spooky .filter-highlight > div.sideArrows {
+ color: rgb(155, 185, 210);
+}
+
+/* QR */
+.spooky #dump-list::-webkit-scrollbar-thumb {
+ background-color: #171526;
+ border-color: #707070;
+}
+:root.spooky .qr-preview {
+ background-color: rgba(0, 0, 0, .15);
+}
+:root.spooky #qr .field {
+ background-color: rgb(26, 27, 29);
+ color: rgb(197,200,198);
+ border-color: rgb(40, 41, 42);
+}
+:root.spooky #qr .field:focus,
+:root.spooky #qr .field.focus {
+ border-color: rgb(254, 150, 0) !important;
+ background-color: rgb(30,32,36);
+}
+:root.spooky .persona button {
+ background: linear-gradient(to bottom, #2E3035, #222427) no-repeat;
+ color: rgb(197,200,198);
+ border-color: rgb(40, 41, 42);
+ outline: none;
+}
+:root.spooky .persona button::-moz-focus-inner {
+ border: none;
+}
+:root.spooky .persona button:focus {
+ border-color: rgb(254, 150, 0);
+}
+:root.spooky #qr.sjis-preview #sjis-toggle,
+:root.spooky #qr.tex-preview #tex-preview-button {
+ background: rgb(26, 27, 29);
+}
+:root.spooky #qr select,
+:root.spooky #file-n-submit > input,
+:root.spooky #qr-draw-button {
+ border-color: rgb(40, 41, 42);
+}
+:root.spooky #qr-filename {
+ color: rgb(197,200,198);
+}
+
+:root.spooky .qr-link {
+ border-color: rgb(8, 6, 23) rgb(8, 6, 23) rgb(0, 0, 8);
+ background: linear-gradient(#262435, #171526) repeat scroll 0% 0% transparent;
+}
+:root.spooky .qr-link:hover {
+ background: #1A1829;
+}
+
+
+/* Menu */
+:root.spooky #menu {
+ color: #FE9600;
+}
+:root.spooky .entry {
+ font-size: 10pt;
+}
+:root.spooky .focused.entry {
+ background: rgba(255, 255, 255, .33);
+}
+
+/* Unread */
+:root.spooky #unread-line {
+ border-color: rgb(197, 200, 198);
+}
+
+/* Thread Watcher */
+:root.spooky .replies-quoting-you > a, :root.spooky #watcher-link.replies-quoting-you {
+ color: #F00 !important;
+}
+
+/* Watcher Favicon */
+:root.spooky .watch-thread-link
+{
+ background-image: url("data:image/svg+xml,");
+}
diff --git a/src/css/style.css b/src/css/style.css
index fed72a975..d72fc13f3 100644
--- a/src/css/style.css
+++ b/src/css/style.css
@@ -831,10 +831,12 @@ div[data-checked="false"] > .suboption-list {
.catalog-container:not(:hover) > * > .postInfo > :not(.subject),
.catalog-container:not(:hover) > * > .catalog-replies,
.catalog-container:not(:hover) .extra-linebreak,
+.catalog-container:not(:hover) .abbr,
:root:not(.catalog-hover-expand) .catalog-container > * > .file,
:root:not(.catalog-hover-expand) .catalog-container > * > .postInfo > :not(.subject),
:root:not(.catalog-hover-expand) .catalog-container > * > .catalog-replies,
:root:not(.catalog-hover-expand) .catalog-container .extra-linebreak,
+:root:not(.catalog-hover-expand) .catalog-container .abbr,
.catalog-thread > .catalog-container > :not(.catalog-post),
.catalog-post > .file > :not(.fileText),
.catalog-post > * > .fileText > :not(:first-child),
@@ -922,10 +924,14 @@ div[data-checked="false"] > .suboption-list {
.catalog-post .MathJax_Display {
text-align: center !important;
}
+.catalog-container:not(:hover) .exif,
+:root:not(.catalog-hover-expand) .catalog-container .exif {
+ display: none !important;
+}
.catalog-post > * > .exif {
border-collapse: collapse;
}
-.catalog-post > * > .exif[style*="display: block;"] {
+:root.catalog-hover-expand .catalog-container:hover .exif[style*="display: block;"] {
display: inline-block !important;
}
.catalog-post > * > .exif,
diff --git a/src/main/Main.coffee b/src/main/Main.coffee
index 78c0d0f19..3921ff298 100644
--- a/src/main/Main.coffee
+++ b/src/main/Main.coffee
@@ -205,6 +205,12 @@ Main =
Main.setClass()
setClass: ->
+ if (spooky = $ 'link[rel="stylesheet"][href^="//s.4cdn.org/css/spooky."]', d.head)
+ spooky.removeAttribute 'media'
+ if getComputedStyle(d.body).color is 'rgb(196, 151, 86)' # not blocked
+ $.addClass doc, 'spooky'
+ return
+
if g.VIEW is 'catalog'
$.addClass doc, $.id('base-css').href.match(/catalog_(\w+)/)[1].replace('_new', '').replace /_+/g, '-'
return
diff --git a/version.json b/version.json
index 2e5258e73..9fd0d334f 100644
--- a/version.json
+++ b/version.json
@@ -1,4 +1,4 @@
{
- "version": "1.13.0.18",
- "date": "2016-10-31T02:53:57.311Z"
+ "version": "1.13.0.20",
+ "date": "2016-11-05T00:00:58.595Z"
}
\ No newline at end of file