Conflicts:
	CHANGELOG.md
	LICENSE
	builds/4chan-X.user.js
	builds/crx/script.js
	package.json
	src/Posting/QuickReply.coffee
This commit is contained in:
Zixaphir 2013-07-24 21:49:24 -07:00
commit 44a2b378ca
13 changed files with 192 additions and 465 deletions

View File

@ -4,6 +4,40 @@
- Fix flag filtering on /sp/ and /int/.
- Minor fixes.
### v1.2.24
*2013-07-24*
**seaweedchan**:
- Update archives (warosu is back up, and with it, the option to use it).
### v1.2.23
*2013-07-23*
**matt4682**:
- Small fix for new error message.
### v1.2.22
*2013-07-23*
**seaweedchan**:
- Update archives.
### v1.2.21
*2013-07-22*
**seaweedchan**:
- Fix /f/ posting.
- Change the "Connection error" message, and point to my own FAQ instead of Mayhem's.
### v1.2.20
*2013-07-22*
**MayhemYDG**:
- Fixed captcha caching not syncing across open threads.
**seaweedchan**:
- Changed some defaults around
### v1.2.19
*2013-07-14*

View File

@ -172,19 +172,19 @@ module.exports = (grunt) ->
]
grunt.registerTask 'patch', [
'bump'
'bump-only'
'reloadPkg'
'updcl:3'
]
grunt.registerTask 'minor', [
'bump:minor'
'bump-only:minor'
'reloadPkg'
'updcl:2'
]
grunt.registerTask 'major', [
'bump:major'
'bump-only:major'
'reloadPkg'
'updcl:1'
]

View File

@ -1,5 +1,5 @@
/*
* 4chan X - Version 1.2.19 - 2013-07-21
* 4chan X - Version 1.2.24 - 2013-07-24
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
// ==UserScript==
// @name 4chan X
// @version 1.2.19
// @version 1.2.24
// @namespace 4chan-X
// @description Cross-browser userscript for maximum lurking on 4chan.
// @license MIT; https://github.com/seaweedchan/4chan-x/blob/master/LICENSE

View File

@ -1,7 +1,7 @@
// Generated by CoffeeScript
// ==UserScript==
// @name 4chan X
// @version 1.2.19
// @version 1.2.24
// @namespace 4chan-X
// @description Cross-browser userscript for maximum lurking on 4chan.
// @license MIT; https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@ -19,7 +19,7 @@
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAACVBMVEUAAGcAAABmzDNZt9VtAAAAAXRSTlMAQObYZgAAAHFJREFUKFOt0LENACEIBdBv4Qju4wgWanEj3D6OcIVMKaitYHEU/jwTCQj8W75kiVCSBvdQ5/AvfVHBin11BgdRq3ysBgfwBDRrj3MCIA+oAQaku/Q1cNctrAmyDl577tOThYt/Y1RBM4DgOHzM0HFTAyLukH/cmRnqAAAAAElFTkSuQmCC
// ==/UserScript==
/*
* 4chan X - Version 1.2.19 - 2013-07-21
* 4chan X - Version 1.2.24 - 2013-07-24
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@ -126,7 +126,7 @@
'404 Redirect': [true, 'Redirect dead threads and images.'],
'Keybinds': [true, 'Bind actions to keyboard shortcuts.'],
'Time Formatting': [true, 'Localize and format timestamps.'],
'Relative Post Dates': [false, 'Display dates like "3 minutes ago". Tooltip shows the timestamp.'],
'Relative Post Dates': [true, 'Display dates like "3 minutes ago". Tooltip shows the timestamp.'],
'File Info Formatting': [true, 'Reformat the file information.'],
'Comment Expansion': [true, 'Add buttons to expand long comments.'],
'Thread Expansion': [true, 'Add buttons to expand threads.'],
@ -150,14 +150,14 @@
'Anonymize': [false, 'Make everyone Anonymous.'],
'Filter': [true, 'Self-moderation placebo.'],
'Recursive Hiding': [true, 'Hide replies of hidden posts, recursively.'],
'Thread Hiding Buttons': [true, 'Add buttons to hide entire threads.'],
'Reply Hiding Buttons': [true, 'Add buttons to hide single replies.'],
'Thread Hiding Buttons': [false, 'Add buttons to hide entire threads.'],
'Reply Hiding Buttons': [false, 'Add buttons to hide single replies.'],
'Filtered Backlinks': [true, 'When enabled, shows backlinks to filtered posts with a line-through decoration. Otherwise, hides the backlinks.'],
'Stubs': [true, 'Show stubs of hidden threads / replies.']
},
'Images': {
'Image Expansion': [true, 'Expand images.'],
'Image Hover': [false, 'Show full image on mouseover.'],
'Image Hover': [true, 'Show full image on mouseover.'],
'Sauce': [true, 'Add sauce links to images.'],
'Reveal Spoilers': [false, 'Reveal spoiler thumbnails.'],
'Replace GIF': [false, 'Replace thumbnail of gifs with its actual image.'],
@ -186,14 +186,14 @@
'Page Count in Stats': [false, 'Display the page count in the thread stats as well.'],
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
'Thread Watcher': [true, 'Bookmark threads.'],
'Toggleable Thread Watcher': [false, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.'],
'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.'],
'Auto Watch': [true, 'Automatically watch threads you start.'],
'Auto Watch Reply': [false, 'Automatically watch threads you reply to.']
},
'Posting': {
'Quick Reply': [true, 'All-in-one form to reply, create threads, automate dumping and more.'],
'Persistent QR': [false, 'The Quick reply won\'t disappear after posting.'],
'Auto Hide QR': [false, 'Automatically hide the quick reply when posting.'],
'Persistent QR': [true, 'The Quick reply won\'t disappear after posting.'],
'Auto Hide QR': [true, 'Automatically hide the quick reply when posting.'],
'Open Post in New Tab': [true, 'Open new threads or replies to a thread from the index in a new tab.'],
'Remember Subject': [false, 'Remember the subject field, instead of resetting after posting.'],
'Remember QR Size': [false, 'Remember the size of the Quick reply.'],
@ -219,14 +219,14 @@
'Highlight Own Posts': [false, 'Highlights own posts if Mark Quotes of You is enabled.'],
'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'],
'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'],
'Quote Threading': [false, 'Thread conversations']
'Quote Threading': [true, 'Thread conversations']
}
},
imageExpansion: {
'Fit width': [true, ''],
'Fit width': [false, ''],
'Fit height': [false, ''],
'Expand spoilers': [true, 'Expand all images along with spoilers.'],
'Expand from here': [true, 'Expand all images only from current position to thread end.'],
'Expand from here': [false, 'Expand all images only from current position to thread end.'],
'Advance on contract': [false, 'Advance to next post when contracting an expanded image.']
},
filter: {
@ -256,7 +256,7 @@
'Bottom Board List': true,
'Custom Board Navigation': true
},
boardnav: "[ toggle-all ]\n[current-title]\n[external-text:\"FAQ\",\"https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions\"]",
boardnav: "[ toggle-all ]\na-replace\nc-replace\ng-replace\nk-replace\nv-replace\nvg-replace\nvr-replace\nck-replace\nco-replace\nfit-replace\njp-replace\nmu-replace\nsp-replace\ntv-replace\nvp-replace\nq-replace\n[external-text:\"FAQ\",\"https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions\"]",
QR: {
'QR.personas': "#email:\"sage\";boards:jp;always"
},
@ -320,7 +320,7 @@
doc = d.documentElement;
g = {
VERSION: '1.2.19',
VERSION: '1.2.24',
NAMESPACE: '4chan X.',
boards: {},
threads: {},
@ -4672,7 +4672,7 @@
}
$.ready(this.initReady);
if (Conf['Persistent QR']) {
if (g.BOARD.ID !== 'f') {
if (!(g.BOARD.ID === 'f' && g.VIEW === 'index')) {
$.on(d, '4chanXInitFinished', this.persist);
} else {
$.ready(this.persist);
@ -5948,7 +5948,7 @@
QR.cooldown.auto = false;
QR.status();
return QR.error($.el('span', {
innerHTML: "Connection error. You may have been <a href=//www.4chan.org/banned target=_blank>banned</a>.\n[<a href=\"https://github.com/MayhemYDG/4chan-x/wiki/FAQ#what-does-connection-error-you-may-have-been-banned-mean\" target=_blank>FAQ</a>]"
innerHTML: "4chan X encountered an error while posting. Please try again. \n[<a href=\"https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions#what-does-4chan-x-encountered-an-error-while-posting-please-try-again-mean\" target=_blank>?</a>]"
}));
}
};
@ -8002,7 +8002,7 @@
'http': false,
'https': true,
'software': 'foolfuuka',
'boards': ['a', 'co', 'gd', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'vg', 'vp', 'vr', 'wsg'],
'boards': ['a', 'co', 'gd', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'v', 'vg', 'vp', 'vr', 'wsg'],
'files': ['a', 'gd', 'jp', 'm', 'q', 'tg', 'vg', 'vp', 'vr', 'wsg']
},
'NSFW Foolz': {
@ -8044,6 +8044,14 @@
'boards': ['adv', 'asp', 'cm', 'i', 'lgbt', 'n', 'o', 'p', 's4s', 't', 'trv'],
'files': ['adv', 'asp', 'cm', 'i', 'lgbt', 'n', 'o', 'p', 's4s', 't', 'trv']
},
'World Athletic Project': {
'domain': 'fuuka.worldathleticproject.org',
'http': true,
'https': false,
'software': 'foolfuuka',
'boards': ['e', 'h', 'p', 's', 'u'],
'files': ['e', 'h', 'p', 's', 'u']
},
'Install Gentoo': {
'domain': 'archive.installgentoo.net',
'http': false,
@ -8052,6 +8060,14 @@
'boards': ['diy', 'g', 'sci'],
'files': []
},
'warosu': {
'domain': 'fuuka.warosu.org',
'http': true,
'https': true,
'software': 'fuuka',
'boards': ['3', 'cgl', 'ck', 'fa', 'ic', 'jp', 'lit', 'q', 'tg', 'vr'],
'files': ['3', 'cgl', 'ck', 'fa', 'ic', 'jp', 'lit', 'q', 'tg', 'vr']
},
'Rebecca Black Tech': {
'domain': 'rbt.asia',
'http': true,

View File

@ -1,6 +1,6 @@
{
"name": "4chan X",
"version": "1.2.19",
"version": "1.2.24",
"manifest_version": 2,
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"icons": {

View File

@ -1,6 +1,6 @@
// Generated by CoffeeScript
/*
* 4chan X - Version 1.2.19 - 2013-07-21
* 4chan X - Version 1.2.24 - 2013-07-24
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@ -107,7 +107,7 @@
'404 Redirect': [true, 'Redirect dead threads and images.'],
'Keybinds': [true, 'Bind actions to keyboard shortcuts.'],
'Time Formatting': [true, 'Localize and format timestamps.'],
'Relative Post Dates': [false, 'Display dates like "3 minutes ago". Tooltip shows the timestamp.'],
'Relative Post Dates': [true, 'Display dates like "3 minutes ago". Tooltip shows the timestamp.'],
'File Info Formatting': [true, 'Reformat the file information.'],
'Comment Expansion': [true, 'Add buttons to expand long comments.'],
'Thread Expansion': [true, 'Add buttons to expand threads.'],
@ -130,14 +130,14 @@
'Anonymize': [false, 'Make everyone Anonymous.'],
'Filter': [true, 'Self-moderation placebo.'],
'Recursive Hiding': [true, 'Hide replies of hidden posts, recursively.'],
'Thread Hiding Buttons': [true, 'Add buttons to hide entire threads.'],
'Reply Hiding Buttons': [true, 'Add buttons to hide single replies.'],
'Thread Hiding Buttons': [false, 'Add buttons to hide entire threads.'],
'Reply Hiding Buttons': [false, 'Add buttons to hide single replies.'],
'Filtered Backlinks': [true, 'When enabled, shows backlinks to filtered posts with a line-through decoration. Otherwise, hides the backlinks.'],
'Stubs': [true, 'Show stubs of hidden threads / replies.']
},
'Images': {
'Image Expansion': [true, 'Expand images.'],
'Image Hover': [false, 'Show full image on mouseover.'],
'Image Hover': [true, 'Show full image on mouseover.'],
'Sauce': [true, 'Add sauce links to images.'],
'Reveal Spoilers': [false, 'Reveal spoiler thumbnails.'],
'Replace GIF': [false, 'Replace thumbnail of gifs with its actual image.'],
@ -167,14 +167,14 @@
'Page Count in Stats': [false, 'Display the page count in the thread stats as well.'],
'Updater and Stats in Header': [true, 'Places the thread updater and thread stats in the header instead of floating them.'],
'Thread Watcher': [true, 'Bookmark threads.'],
'Toggleable Thread Watcher': [false, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.'],
'Toggleable Thread Watcher': [true, 'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.'],
'Auto Watch': [true, 'Automatically watch threads you start.'],
'Auto Watch Reply': [false, 'Automatically watch threads you reply to.']
},
'Posting': {
'Quick Reply': [true, 'All-in-one form to reply, create threads, automate dumping and more.'],
'Persistent QR': [false, 'The Quick reply won\'t disappear after posting.'],
'Auto Hide QR': [false, 'Automatically hide the quick reply when posting.'],
'Persistent QR': [true, 'The Quick reply won\'t disappear after posting.'],
'Auto Hide QR': [true, 'Automatically hide the quick reply when posting.'],
'Open Post in New Tab': [true, 'Open new threads or replies to a thread from the index in a new tab.'],
'Remember Subject': [false, 'Remember the subject field, instead of resetting after posting.'],
'Remember Spoiler': [false, 'Remember the spoiler state, instead of resetting after posting.'],
@ -199,14 +199,14 @@
'Highlight Own Posts': [false, 'Highlights own posts if Mark Quotes of You is enabled.'],
'Mark OP Quotes': [true, 'Add \'(OP)\' to OP quotes.'],
'Mark Cross-thread Quotes': [true, 'Add \'(Cross-thread)\' to cross-threads quotes.'],
'Quote Threading': [false, 'Thread conversations']
'Quote Threading': [true, 'Thread conversations']
}
},
imageExpansion: {
'Fit width': [true, ''],
'Fit width': [false, ''],
'Fit height': [false, ''],
'Expand spoilers': [true, 'Expand all images along with spoilers.'],
'Expand from here': [true, 'Expand all images only from current position to thread end.'],
'Expand from here': [false, 'Expand all images only from current position to thread end.'],
'Advance on contract': [false, 'Advance to next post when contracting an expanded image.']
},
filter: {
@ -236,7 +236,7 @@
'Bottom Board List': true,
'Custom Board Navigation': true
},
boardnav: "[ toggle-all ]\n[current-title]\n[external-text:\"FAQ\",\"https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions\"]",
boardnav: "[ toggle-all ]\na-replace\nc-replace\ng-replace\nk-replace\nv-replace\nvg-replace\nvr-replace\nck-replace\nco-replace\nfit-replace\njp-replace\nmu-replace\nsp-replace\ntv-replace\nvp-replace\nq-replace\n[external-text:\"FAQ\",\"https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions\"]",
QR: {
'QR.personas': "#email:\"sage\";boards:jp;always"
},
@ -300,7 +300,7 @@
doc = d.documentElement;
g = {
VERSION: '1.2.19',
VERSION: '1.2.24',
NAMESPACE: '4chan X.',
boards: {},
threads: {},
@ -4672,7 +4672,7 @@
}
$.ready(this.initReady);
if (Conf['Persistent QR']) {
if (g.BOARD.ID !== 'f') {
if (!(g.BOARD.ID === 'f' && g.VIEW === 'index')) {
$.on(d, '4chanXInitFinished', this.persist);
} else {
$.ready(this.persist);
@ -5924,7 +5924,7 @@
QR.cooldown.auto = false;
QR.status();
return QR.error($.el('span', {
innerHTML: "Connection error. You may have been <a href=//www.4chan.org/banned target=_blank>banned</a>.\n[<a href=\"https://github.com/MayhemYDG/4chan-x/wiki/FAQ#what-does-connection-error-you-may-have-been-banned-mean\" target=_blank>FAQ</a>]"
innerHTML: "4chan X encountered an error while posting. Please try again. \n[<a href=\"https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions#what-does-4chan-x-encountered-an-error-while-posting-please-try-again-mean\" target=_blank>?</a>]"
}));
}
};
@ -7983,7 +7983,7 @@
'http': false,
'https': true,
'software': 'foolfuuka',
'boards': ['a', 'co', 'gd', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'vg', 'vp', 'vr', 'wsg'],
'boards': ['a', 'co', 'gd', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'v', 'vg', 'vp', 'vr', 'wsg'],
'files': ['a', 'gd', 'jp', 'm', 'q', 'tg', 'vg', 'vp', 'vr', 'wsg']
},
'NSFW Foolz': {
@ -8025,6 +8025,14 @@
'boards': ['adv', 'asp', 'cm', 'i', 'lgbt', 'n', 'o', 'p', 's4s', 't', 'trv'],
'files': ['adv', 'asp', 'cm', 'i', 'lgbt', 'n', 'o', 'p', 's4s', 't', 'trv']
},
'World Athletic Project': {
'domain': 'fuuka.worldathleticproject.org',
'http': true,
'https': false,
'software': 'foolfuuka',
'boards': ['e', 'h', 'p', 's', 'u'],
'files': ['e', 'h', 'p', 's', 'u']
},
'Install Gentoo': {
'domain': 'archive.installgentoo.net',
'http': false,
@ -8033,6 +8041,14 @@
'boards': ['diy', 'g', 'sci'],
'files': []
},
'warosu': {
'domain': 'fuuka.warosu.org',
'http': true,
'https': true,
'software': 'fuuka',
'boards': ['3', 'cgl', 'ck', 'fa', 'ic', 'jp', 'lit', 'q', 'tg', 'vr'],
'files': ['3', 'cgl', 'ck', 'fa', 'ic', 'jp', 'lit', 'q', 'tg', 'vr']
},
'Rebecca Black Tech': {
'domain': 'rbt.asia',
'http': true,

View File

@ -1 +1 @@
postMessage({version:'1.2.19'},'*')
postMessage({version:'1.2.24'},'*')

View File

@ -1,6 +1,6 @@
{
"name": "4chan-X",
"version": "1.2.19",
"version": "1.2.24",
"description": "Cross-browser userscript for maximum lurking on 4chan.",
"meta": {
"name": "4chan X",

View File

@ -28,7 +28,7 @@ Redirect =
'http': false
'https': true
'software': 'foolfuuka'
'boards': ['a', 'co', 'gd', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'vg', 'vp', 'vr', 'wsg']
'boards': ['a', 'co', 'gd', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'v', 'vg', 'vp', 'vr', 'wsg']
'files': ['a', 'gd', 'jp', 'm', 'q', 'tg', 'vg', 'vp', 'vr', 'wsg']
'NSFW Foolz':
@ -70,6 +70,14 @@ Redirect =
'boards': ['adv', 'asp', 'cm', 'i', 'lgbt', 'n', 'o', 'p', 's4s', 't', 'trv']
'files': ['adv', 'asp', 'cm', 'i', 'lgbt', 'n', 'o', 'p', 's4s', 't', 'trv']
'World Athletic Project':
'domain': 'fuuka.worldathleticproject.org'
'http': true
'https': false
'software': 'foolfuuka'
'boards': ['e', 'h', 'p', 's', 'u']
'files': ['e', 'h', 'p', 's', 'u']
'Install Gentoo':
'domain': 'archive.installgentoo.net'
'http': false
@ -78,6 +86,14 @@ Redirect =
'boards': ['diy', 'g', 'sci']
'files': []
'warosu':
'domain': 'fuuka.warosu.org'
'http': true
'https': true
'software': 'fuuka'
'boards': ['3', 'cgl', 'ck', 'fa', 'ic', 'jp', 'lit', 'q', 'tg', 'vr']
'files': ['3', 'cgl', 'ck', 'fa', 'ic', 'jp', 'lit', 'q', 'tg', 'vr']
'Rebecca Black Tech':
'domain': 'rbt.asia'
'http': true

View File

@ -30,7 +30,7 @@ Config =
'Localize and format timestamps.'
]
'Relative Post Dates': [
false
true
'Display dates like "3 minutes ago". Tooltip shows the timestamp.'
]
'File Info Formatting': [
@ -116,11 +116,11 @@ Config =
'Hide replies of hidden posts, recursively.'
]
'Thread Hiding Buttons': [
true
false
'Add buttons to hide entire threads.'
]
'Reply Hiding Buttons': [
true
false
'Add buttons to hide single replies.'
]
'Filtered Backlinks': [
@ -138,7 +138,7 @@ Config =
'Expand images.'
]
'Image Hover': [
false
true
'Show full image on mouseover.'
]
'Sauce': [
@ -248,7 +248,7 @@ Config =
'Bookmark threads.'
]
'Toggleable Thread Watcher': [
false
true
'Adds a shortcut for the thread watcher, hides the watcher by default, and makes it scroll with the page.'
]
'Auto Watch': [
@ -266,11 +266,11 @@ Config =
'All-in-one form to reply, create threads, automate dumping and more.'
]
'Persistent QR': [
false
true
'The Quick reply won\'t disappear after posting.'
]
'Auto Hide QR': [
false
true
'Automatically hide the quick reply when posting.'
]
'Open Post in New Tab': [
@ -370,13 +370,13 @@ Config =
'Add \'(Cross-thread)\' to cross-threads quotes.'
]
'Quote Threading': [
false
true
'Thread conversations'
]
imageExpansion:
'Fit width': [
true
false
''
]
'Fit height': [
@ -388,7 +388,7 @@ Config =
'Expand all images along with spoilers.'
]
'Expand from here': [
true
false
'Expand all images only from current position to thread end.'
]
'Advance on contract': [
@ -476,7 +476,22 @@ http://iqdb.org/?url=%TURL
boardnav: """
[ toggle-all ]
[current-title]
a-replace
c-replace
g-replace
k-replace
v-replace
vg-replace
vr-replace
ck-replace
co-replace
fit-replace
jp-replace
mu-replace
sp-replace
tv-replace
vp-replace
q-replace
[external-text:"FAQ","https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions"]
"""

View File

@ -28,7 +28,7 @@ QR =
$.ready @initReady
if Conf['Persistent QR']
unless g.BOARD.ID is 'f'
unless g.BOARD.ID is 'f' and g.VIEW is 'index'
$.on d, '4chanXInitFinished', @persist
else
$.ready @persist
@ -766,6 +766,7 @@ QR =
$.on input, 'keydown', @keydown.bind @
$.on input, 'focus', -> $.addClass QR.nodes.el, 'focus'
$.on input, 'blur', -> $.rmClass QR.nodes.el, 'focus'
$.get 'captchas', [], ({captchas}) =>
@sync captchas
$.sync 'captchas', @sync
@ -1056,8 +1057,8 @@ QR =
QR.status()
QR.error $.el 'span',
innerHTML: """
Connection error. You may have been <a href=//www.4chan.org/banned target=_blank>banned</a>.
[<a href="https://github.com/MayhemYDG/4chan-x/wiki/FAQ#what-does-connection-error-you-may-have-been-banned-mean" target=_blank>FAQ</a>]
4chan X encountered an error while posting. Please try again.
[<a href="https://github.com/seaweedchan/4chan-x/wiki/Frequently-Asked-Questions#what-does-4chan-x-encountered-an-error-while-posting-please-try-again-mean" target=_blank>?</a>]
"""
opts =
cred: true