Release 4chan X v1.10.6.0.
This commit is contained in:
parent
a6a9d31733
commit
74a5c9197a
@ -2,6 +2,12 @@ Sometimes the changelog has notes (not comprehensive) acknowledging people's wor
|
||||
|
||||
The links to individual versions below are to copies of the script with the update URL removed. If you want automatic updates, install the script from the links on the [main page](https://github.com/ccd0/4chan-x).
|
||||
|
||||
### v1.10.6
|
||||
|
||||
**v1.10.6.0** *(2015-03-22)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.6.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.6.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
- Based on v1.10.5.3.
|
||||
- Add workaround for pasting images to the Quick Reply in Firefox.
|
||||
|
||||
### v1.10.5
|
||||
|
||||
**v1.10.5.3** *(2015-03-21)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.5.3/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.10.5.3/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.10.5.3
|
||||
// @version 1.10.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.10.5.3
|
||||
// @version 1.10.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -395,7 +395,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.10.5.3',
|
||||
VERSION: '1.10.6.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -7199,9 +7199,36 @@
|
||||
QR.handleFiles(files);
|
||||
return $.addClass(QR.nodes.el, 'dump');
|
||||
},
|
||||
handleUrl: function() {
|
||||
pasteFF: function() {
|
||||
var arr, blob, bstr, i, images, img, k, len1, m, pasteArea, q, ref, src;
|
||||
pasteArea = QR.nodes.pasteArea;
|
||||
if (!pasteArea.childNodes.length) {
|
||||
return;
|
||||
}
|
||||
images = $$('img', pasteArea);
|
||||
$.rmAll(pasteArea);
|
||||
for (k = 0, len1 = images.length; k < len1; k++) {
|
||||
img = images[k];
|
||||
src = img.src;
|
||||
if (m = src.match(/data:(image\/(\w+));base64,(.+)/)) {
|
||||
bstr = atob(m[3]);
|
||||
arr = new Uint8Array(bstr.length);
|
||||
for (i = q = 0, ref = bstr.length; 0 <= ref ? q < ref : q > ref; i = 0 <= ref ? ++q : --q) {
|
||||
arr[i] = bstr.charCodeAt(i);
|
||||
}
|
||||
blob = new Blob([arr], {
|
||||
type: m[1]
|
||||
});
|
||||
blob.name = "image." + m[2];
|
||||
QR.handleFiles([blob]);
|
||||
} else if (/^https?:\/\//.test(src)) {
|
||||
QR.handleUrl(src);
|
||||
}
|
||||
}
|
||||
},
|
||||
handleUrl: function(urlDefault) {
|
||||
var url;
|
||||
url = prompt('Enter a URL:');
|
||||
url = prompt('Enter a URL:', urlDefault);
|
||||
if (url === null) {
|
||||
return;
|
||||
}
|
||||
@ -7284,7 +7311,7 @@
|
||||
var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, setNode;
|
||||
QR.nodes = nodes = {
|
||||
el: dialog = UI.dialog('qr', 'top: 50px; right: 0px;', {
|
||||
innerHTML: "<div class=move><label><input type=checkbox id=autohide title=Auto-hide>Quick Reply</label><a href=javascript:; class=close title=Close>×</a><select data-name=thread title='Create a new thread / Reply'><option value=new>New thread</option></select></div><form><div class=persona><input name=name data-name=name list=\"list-name\" placeholder=Name class=field size=1><input name=email data-name=email list=\"list-email\" placeholder=Options class=field size=1><input name=sub data-name=sub list=\"list-sub\" placeholder=Subject class=field size=1></div><div class=textarea><textarea data-name=com placeholder=Comment class=field></textarea><span id=char-count></span></div><div id=dump-list-container><div id=dump-list></div><a id=add-post href=javascript:; title=\"Add a post\">+</a></div><div id=\"file-n-submit\"><input type=\"button\" id=\"qr-file-button\" value=\"Files\"><span id=\"qr-filename-container\" class=\"field\"><span id=\"qr-no-file\">No selected file</span><input id=\"qr-filename\" data-name=\"filename\" spellcheck=\"false\"><label id=\"qr-spoiler-label\"><input type=\"checkbox\" id=\"qr-file-spoiler\" title=\"Spoiler image\"></label><a href=\"javascript:;\" id=\"qr-filerm\" title=\"Remove file\"><i class=\"fa fa-times-circle\"></i></a><a id=\"url-button\" title=\"Post from url\"><i class=\"fa fa-link\"></i></a><a id=\"custom-cooldown-button\" title=\"Toggle custom cooldown\" class=\"disabled\"><i class=\"fa fa-clock-o\"></i></a><a id=\"dump-button\" title=\"Dump list\"><i class=\"fa fa-plus-square\"></i></a></span><input type=\"submit\"></div><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
innerHTML: "<div class=move><label><input type=checkbox id=autohide title=Auto-hide>Quick Reply</label><a href=javascript:; class=close title=Close>×</a><select data-name=thread title='Create a new thread / Reply'><option value=new>New thread</option></select></div><form><div class=persona><input name=name data-name=name list=\"list-name\" placeholder=Name class=field size=1><input name=email data-name=email list=\"list-email\" placeholder=Options class=field size=1><input name=sub data-name=sub list=\"list-sub\" placeholder=Subject class=field size=1></div><div class=textarea><textarea data-name=com placeholder=Comment class=field></textarea><span id=char-count></span></div><div id=dump-list-container><div id=dump-list></div><a id=add-post href=javascript:; title=\"Add a post\">+</a></div><div id=\"file-n-submit\"><input type=\"button\" id=\"qr-file-button\" value=\"Files\"><span id=\"qr-filename-container\" class=\"field\"><span id=\"qr-no-file\">No selected file</span><input id=\"qr-filename\" data-name=\"filename\" spellcheck=\"false\"><label id=\"qr-spoiler-label\"><input type=\"checkbox\" id=\"qr-file-spoiler\" title=\"Spoiler image\"></label><a href=\"javascript:;\" id=\"qr-filerm\" title=\"Remove file\"><i class=\"fa fa-times-circle\"></i></a><a hidden id=\"paste-area\" title=\"Paste image\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></a><a id=\"url-button\" title=\"Post from url\"><i class=\"fa fa-link\"></i></a><a id=\"custom-cooldown-button\" title=\"Toggle custom cooldown\" class=\"disabled\"><i class=\"fa fa-clock-o\"></i></a><a id=\"dump-button\" title=\"Dump list\"><i class=\"fa fa-plus-square\"></i></a></span><input type=\"submit\"></div><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
})
|
||||
};
|
||||
setNode = function(name, query) {
|
||||
@ -7297,6 +7324,7 @@
|
||||
setNode('close', '.close');
|
||||
setNode('form', 'form');
|
||||
setNode('dumpButton', '#dump-button');
|
||||
setNode('pasteArea', '#paste-area');
|
||||
setNode('urlButton', '#url-button');
|
||||
setNode('name', '[data-name=name]');
|
||||
setNode('email', '[data-name=email]');
|
||||
@ -7376,7 +7404,9 @@
|
||||
$.on(nodes.dumpButton, 'click', function() {
|
||||
return nodes.el.classList.toggle('dump');
|
||||
});
|
||||
$.on(nodes.urlButton, 'click', QR.handleUrl);
|
||||
$.on(nodes.urlButton, 'click', function() {
|
||||
return QR.handleUrl('');
|
||||
});
|
||||
$.on(nodes.addPost, 'click', function() {
|
||||
return new QR.post(true);
|
||||
});
|
||||
@ -7392,6 +7422,12 @@
|
||||
window.addEventListener('focus', QR.focus, true);
|
||||
window.addEventListener('blur', QR.focus, true);
|
||||
$.on(d, 'click', QR.focus);
|
||||
if (typeof chrome === "undefined" || chrome === null) {
|
||||
nodes.pasteArea.hidden = false;
|
||||
new MutationObserver(QR.pasteFF).observe(nodes.pasteArea, {
|
||||
childList: true
|
||||
});
|
||||
}
|
||||
items = ['thread', 'name', 'email', 'sub', 'com', 'filename'];
|
||||
i = 0;
|
||||
save = function() {
|
||||
@ -18290,9 +18326,9 @@
|
||||
" flex: none;\n" +
|
||||
" margin: 0;\n" +
|
||||
" margin-right: 3px;\n" +
|
||||
" font: 13px sans-serif;\n" +
|
||||
"}\n" +
|
||||
"#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label,\n" +
|
||||
".has-file #paste-area,\n" +
|
||||
".has-file #url-button,\n" +
|
||||
"#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" +
|
||||
" display: none;\n" +
|
||||
@ -18300,9 +18336,15 @@
|
||||
"#qr-file-spoiler {\n" +
|
||||
" margin: 0;\n" +
|
||||
"}\n" +
|
||||
"#url-button, #custom-cooldown-button, #dump-button {\n" +
|
||||
"#paste-area, #url-button, #custom-cooldown-button, #dump-button {\n" +
|
||||
" opacity: 0.6;\n" +
|
||||
"}\n" +
|
||||
"#paste-area {\n" +
|
||||
" font-size: 0;\n" +
|
||||
"}\n" +
|
||||
"#paste-area:focus {\n" +
|
||||
" opacity: 1;\n" +
|
||||
"}\n" +
|
||||
"#custom-cooldown-button.disabled {\n" +
|
||||
" opacity: 0.27;\n" +
|
||||
"}\n" +
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.10.5.3
|
||||
// @version 1.10.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -394,7 +394,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.10.5.3',
|
||||
VERSION: '1.10.6.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -7198,9 +7198,36 @@
|
||||
QR.handleFiles(files);
|
||||
return $.addClass(QR.nodes.el, 'dump');
|
||||
},
|
||||
handleUrl: function() {
|
||||
pasteFF: function() {
|
||||
var arr, blob, bstr, i, images, img, k, len1, m, pasteArea, q, ref, src;
|
||||
pasteArea = QR.nodes.pasteArea;
|
||||
if (!pasteArea.childNodes.length) {
|
||||
return;
|
||||
}
|
||||
images = $$('img', pasteArea);
|
||||
$.rmAll(pasteArea);
|
||||
for (k = 0, len1 = images.length; k < len1; k++) {
|
||||
img = images[k];
|
||||
src = img.src;
|
||||
if (m = src.match(/data:(image\/(\w+));base64,(.+)/)) {
|
||||
bstr = atob(m[3]);
|
||||
arr = new Uint8Array(bstr.length);
|
||||
for (i = q = 0, ref = bstr.length; 0 <= ref ? q < ref : q > ref; i = 0 <= ref ? ++q : --q) {
|
||||
arr[i] = bstr.charCodeAt(i);
|
||||
}
|
||||
blob = new Blob([arr], {
|
||||
type: m[1]
|
||||
});
|
||||
blob.name = "image." + m[2];
|
||||
QR.handleFiles([blob]);
|
||||
} else if (/^https?:\/\//.test(src)) {
|
||||
QR.handleUrl(src);
|
||||
}
|
||||
}
|
||||
},
|
||||
handleUrl: function(urlDefault) {
|
||||
var url;
|
||||
url = prompt('Enter a URL:');
|
||||
url = prompt('Enter a URL:', urlDefault);
|
||||
if (url === null) {
|
||||
return;
|
||||
}
|
||||
@ -7283,7 +7310,7 @@
|
||||
var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, setNode;
|
||||
QR.nodes = nodes = {
|
||||
el: dialog = UI.dialog('qr', 'top: 50px; right: 0px;', {
|
||||
innerHTML: "<div class=move><label><input type=checkbox id=autohide title=Auto-hide>Quick Reply</label><a href=javascript:; class=close title=Close>×</a><select data-name=thread title='Create a new thread / Reply'><option value=new>New thread</option></select></div><form><div class=persona><input name=name data-name=name list=\"list-name\" placeholder=Name class=field size=1><input name=email data-name=email list=\"list-email\" placeholder=Options class=field size=1><input name=sub data-name=sub list=\"list-sub\" placeholder=Subject class=field size=1></div><div class=textarea><textarea data-name=com placeholder=Comment class=field></textarea><span id=char-count></span></div><div id=dump-list-container><div id=dump-list></div><a id=add-post href=javascript:; title=\"Add a post\">+</a></div><div id=\"file-n-submit\"><input type=\"button\" id=\"qr-file-button\" value=\"Files\"><span id=\"qr-filename-container\" class=\"field\"><span id=\"qr-no-file\">No selected file</span><input id=\"qr-filename\" data-name=\"filename\" spellcheck=\"false\"><label id=\"qr-spoiler-label\"><input type=\"checkbox\" id=\"qr-file-spoiler\" title=\"Spoiler image\"></label><a href=\"javascript:;\" id=\"qr-filerm\" title=\"Remove file\"><i class=\"fa fa-times-circle\"></i></a><a id=\"url-button\" title=\"Post from url\"><i class=\"fa fa-link\"></i></a><a id=\"custom-cooldown-button\" title=\"Toggle custom cooldown\" class=\"disabled\"><i class=\"fa fa-clock-o\"></i></a><a id=\"dump-button\" title=\"Dump list\"><i class=\"fa fa-plus-square\"></i></a></span><input type=\"submit\"></div><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
innerHTML: "<div class=move><label><input type=checkbox id=autohide title=Auto-hide>Quick Reply</label><a href=javascript:; class=close title=Close>×</a><select data-name=thread title='Create a new thread / Reply'><option value=new>New thread</option></select></div><form><div class=persona><input name=name data-name=name list=\"list-name\" placeholder=Name class=field size=1><input name=email data-name=email list=\"list-email\" placeholder=Options class=field size=1><input name=sub data-name=sub list=\"list-sub\" placeholder=Subject class=field size=1></div><div class=textarea><textarea data-name=com placeholder=Comment class=field></textarea><span id=char-count></span></div><div id=dump-list-container><div id=dump-list></div><a id=add-post href=javascript:; title=\"Add a post\">+</a></div><div id=\"file-n-submit\"><input type=\"button\" id=\"qr-file-button\" value=\"Files\"><span id=\"qr-filename-container\" class=\"field\"><span id=\"qr-no-file\">No selected file</span><input id=\"qr-filename\" data-name=\"filename\" spellcheck=\"false\"><label id=\"qr-spoiler-label\"><input type=\"checkbox\" id=\"qr-file-spoiler\" title=\"Spoiler image\"></label><a href=\"javascript:;\" id=\"qr-filerm\" title=\"Remove file\"><i class=\"fa fa-times-circle\"></i></a><a hidden id=\"paste-area\" title=\"Paste image\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></a><a id=\"url-button\" title=\"Post from url\"><i class=\"fa fa-link\"></i></a><a id=\"custom-cooldown-button\" title=\"Toggle custom cooldown\" class=\"disabled\"><i class=\"fa fa-clock-o\"></i></a><a id=\"dump-button\" title=\"Dump list\"><i class=\"fa fa-plus-square\"></i></a></span><input type=\"submit\"></div><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
})
|
||||
};
|
||||
setNode = function(name, query) {
|
||||
@ -7296,6 +7323,7 @@
|
||||
setNode('close', '.close');
|
||||
setNode('form', 'form');
|
||||
setNode('dumpButton', '#dump-button');
|
||||
setNode('pasteArea', '#paste-area');
|
||||
setNode('urlButton', '#url-button');
|
||||
setNode('name', '[data-name=name]');
|
||||
setNode('email', '[data-name=email]');
|
||||
@ -7375,7 +7403,9 @@
|
||||
$.on(nodes.dumpButton, 'click', function() {
|
||||
return nodes.el.classList.toggle('dump');
|
||||
});
|
||||
$.on(nodes.urlButton, 'click', QR.handleUrl);
|
||||
$.on(nodes.urlButton, 'click', function() {
|
||||
return QR.handleUrl('');
|
||||
});
|
||||
$.on(nodes.addPost, 'click', function() {
|
||||
return new QR.post(true);
|
||||
});
|
||||
@ -7391,6 +7421,12 @@
|
||||
window.addEventListener('focus', QR.focus, true);
|
||||
window.addEventListener('blur', QR.focus, true);
|
||||
$.on(d, 'click', QR.focus);
|
||||
if (typeof chrome === "undefined" || chrome === null) {
|
||||
nodes.pasteArea.hidden = false;
|
||||
new MutationObserver(QR.pasteFF).observe(nodes.pasteArea, {
|
||||
childList: true
|
||||
});
|
||||
}
|
||||
items = ['thread', 'name', 'email', 'sub', 'com', 'filename'];
|
||||
i = 0;
|
||||
save = function() {
|
||||
@ -18289,9 +18325,9 @@
|
||||
" flex: none;\n" +
|
||||
" margin: 0;\n" +
|
||||
" margin-right: 3px;\n" +
|
||||
" font: 13px sans-serif;\n" +
|
||||
"}\n" +
|
||||
"#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label,\n" +
|
||||
".has-file #paste-area,\n" +
|
||||
".has-file #url-button,\n" +
|
||||
"#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" +
|
||||
" display: none;\n" +
|
||||
@ -18299,9 +18335,15 @@
|
||||
"#qr-file-spoiler {\n" +
|
||||
" margin: 0;\n" +
|
||||
"}\n" +
|
||||
"#url-button, #custom-cooldown-button, #dump-button {\n" +
|
||||
"#paste-area, #url-button, #custom-cooldown-button, #dump-button {\n" +
|
||||
" opacity: 0.6;\n" +
|
||||
"}\n" +
|
||||
"#paste-area {\n" +
|
||||
" font-size: 0;\n" +
|
||||
"}\n" +
|
||||
"#paste-area:focus {\n" +
|
||||
" opacity: 1;\n" +
|
||||
"}\n" +
|
||||
"#custom-cooldown-button.disabled {\n" +
|
||||
" opacity: 0.27;\n" +
|
||||
"}\n" +
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.10.5.3
|
||||
// @version 1.10.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.10.5.3
|
||||
// @version 1.10.6.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -395,7 +395,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.10.5.3',
|
||||
VERSION: '1.10.6.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
NAME: '4chan X',
|
||||
FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions',
|
||||
@ -7199,9 +7199,36 @@
|
||||
QR.handleFiles(files);
|
||||
return $.addClass(QR.nodes.el, 'dump');
|
||||
},
|
||||
handleUrl: function() {
|
||||
pasteFF: function() {
|
||||
var arr, blob, bstr, i, images, img, k, len1, m, pasteArea, q, ref, src;
|
||||
pasteArea = QR.nodes.pasteArea;
|
||||
if (!pasteArea.childNodes.length) {
|
||||
return;
|
||||
}
|
||||
images = $$('img', pasteArea);
|
||||
$.rmAll(pasteArea);
|
||||
for (k = 0, len1 = images.length; k < len1; k++) {
|
||||
img = images[k];
|
||||
src = img.src;
|
||||
if (m = src.match(/data:(image\/(\w+));base64,(.+)/)) {
|
||||
bstr = atob(m[3]);
|
||||
arr = new Uint8Array(bstr.length);
|
||||
for (i = q = 0, ref = bstr.length; 0 <= ref ? q < ref : q > ref; i = 0 <= ref ? ++q : --q) {
|
||||
arr[i] = bstr.charCodeAt(i);
|
||||
}
|
||||
blob = new Blob([arr], {
|
||||
type: m[1]
|
||||
});
|
||||
blob.name = "image." + m[2];
|
||||
QR.handleFiles([blob]);
|
||||
} else if (/^https?:\/\//.test(src)) {
|
||||
QR.handleUrl(src);
|
||||
}
|
||||
}
|
||||
},
|
||||
handleUrl: function(urlDefault) {
|
||||
var url;
|
||||
url = prompt('Enter a URL:');
|
||||
url = prompt('Enter a URL:', urlDefault);
|
||||
if (url === null) {
|
||||
return;
|
||||
}
|
||||
@ -7284,7 +7311,7 @@
|
||||
var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, setNode;
|
||||
QR.nodes = nodes = {
|
||||
el: dialog = UI.dialog('qr', 'top: 50px; right: 0px;', {
|
||||
innerHTML: "<div class=move><label><input type=checkbox id=autohide title=Auto-hide>Quick Reply</label><a href=javascript:; class=close title=Close>×</a><select data-name=thread title='Create a new thread / Reply'><option value=new>New thread</option></select></div><form><div class=persona><input name=name data-name=name list=\"list-name\" placeholder=Name class=field size=1><input name=email data-name=email list=\"list-email\" placeholder=Options class=field size=1><input name=sub data-name=sub list=\"list-sub\" placeholder=Subject class=field size=1></div><div class=textarea><textarea data-name=com placeholder=Comment class=field></textarea><span id=char-count></span></div><div id=dump-list-container><div id=dump-list></div><a id=add-post href=javascript:; title=\"Add a post\">+</a></div><div id=\"file-n-submit\"><input type=\"button\" id=\"qr-file-button\" value=\"Files\"><span id=\"qr-filename-container\" class=\"field\"><span id=\"qr-no-file\">No selected file</span><input id=\"qr-filename\" data-name=\"filename\" spellcheck=\"false\"><label id=\"qr-spoiler-label\"><input type=\"checkbox\" id=\"qr-file-spoiler\" title=\"Spoiler image\"></label><a href=\"javascript:;\" id=\"qr-filerm\" title=\"Remove file\"><i class=\"fa fa-times-circle\"></i></a><a id=\"url-button\" title=\"Post from url\"><i class=\"fa fa-link\"></i></a><a id=\"custom-cooldown-button\" title=\"Toggle custom cooldown\" class=\"disabled\"><i class=\"fa fa-clock-o\"></i></a><a id=\"dump-button\" title=\"Dump list\"><i class=\"fa fa-plus-square\"></i></a></span><input type=\"submit\"></div><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
innerHTML: "<div class=move><label><input type=checkbox id=autohide title=Auto-hide>Quick Reply</label><a href=javascript:; class=close title=Close>×</a><select data-name=thread title='Create a new thread / Reply'><option value=new>New thread</option></select></div><form><div class=persona><input name=name data-name=name list=\"list-name\" placeholder=Name class=field size=1><input name=email data-name=email list=\"list-email\" placeholder=Options class=field size=1><input name=sub data-name=sub list=\"list-sub\" placeholder=Subject class=field size=1></div><div class=textarea><textarea data-name=com placeholder=Comment class=field></textarea><span id=char-count></span></div><div id=dump-list-container><div id=dump-list></div><a id=add-post href=javascript:; title=\"Add a post\">+</a></div><div id=\"file-n-submit\"><input type=\"button\" id=\"qr-file-button\" value=\"Files\"><span id=\"qr-filename-container\" class=\"field\"><span id=\"qr-no-file\">No selected file</span><input id=\"qr-filename\" data-name=\"filename\" spellcheck=\"false\"><label id=\"qr-spoiler-label\"><input type=\"checkbox\" id=\"qr-file-spoiler\" title=\"Spoiler image\"></label><a href=\"javascript:;\" id=\"qr-filerm\" title=\"Remove file\"><i class=\"fa fa-times-circle\"></i></a><a hidden id=\"paste-area\" title=\"Paste image\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></a><a id=\"url-button\" title=\"Post from url\"><i class=\"fa fa-link\"></i></a><a id=\"custom-cooldown-button\" title=\"Toggle custom cooldown\" class=\"disabled\"><i class=\"fa fa-clock-o\"></i></a><a id=\"dump-button\" title=\"Dump list\"><i class=\"fa fa-plus-square\"></i></a></span><input type=\"submit\"></div><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
})
|
||||
};
|
||||
setNode = function(name, query) {
|
||||
@ -7297,6 +7324,7 @@
|
||||
setNode('close', '.close');
|
||||
setNode('form', 'form');
|
||||
setNode('dumpButton', '#dump-button');
|
||||
setNode('pasteArea', '#paste-area');
|
||||
setNode('urlButton', '#url-button');
|
||||
setNode('name', '[data-name=name]');
|
||||
setNode('email', '[data-name=email]');
|
||||
@ -7376,7 +7404,9 @@
|
||||
$.on(nodes.dumpButton, 'click', function() {
|
||||
return nodes.el.classList.toggle('dump');
|
||||
});
|
||||
$.on(nodes.urlButton, 'click', QR.handleUrl);
|
||||
$.on(nodes.urlButton, 'click', function() {
|
||||
return QR.handleUrl('');
|
||||
});
|
||||
$.on(nodes.addPost, 'click', function() {
|
||||
return new QR.post(true);
|
||||
});
|
||||
@ -7392,6 +7422,12 @@
|
||||
window.addEventListener('focus', QR.focus, true);
|
||||
window.addEventListener('blur', QR.focus, true);
|
||||
$.on(d, 'click', QR.focus);
|
||||
if (typeof chrome === "undefined" || chrome === null) {
|
||||
nodes.pasteArea.hidden = false;
|
||||
new MutationObserver(QR.pasteFF).observe(nodes.pasteArea, {
|
||||
childList: true
|
||||
});
|
||||
}
|
||||
items = ['thread', 'name', 'email', 'sub', 'com', 'filename'];
|
||||
i = 0;
|
||||
save = function() {
|
||||
@ -18290,9 +18326,9 @@
|
||||
" flex: none;\n" +
|
||||
" margin: 0;\n" +
|
||||
" margin-right: 3px;\n" +
|
||||
" font: 13px sans-serif;\n" +
|
||||
"}\n" +
|
||||
"#qr.has-spoiler #file-n-submit:not(.has-file) #qr-spoiler-label,\n" +
|
||||
".has-file #paste-area,\n" +
|
||||
".has-file #url-button,\n" +
|
||||
"#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" +
|
||||
" display: none;\n" +
|
||||
@ -18300,9 +18336,15 @@
|
||||
"#qr-file-spoiler {\n" +
|
||||
" margin: 0;\n" +
|
||||
"}\n" +
|
||||
"#url-button, #custom-cooldown-button, #dump-button {\n" +
|
||||
"#paste-area, #url-button, #custom-cooldown-button, #dump-button {\n" +
|
||||
" opacity: 0.6;\n" +
|
||||
"}\n" +
|
||||
"#paste-area {\n" +
|
||||
" font-size: 0;\n" +
|
||||
"}\n" +
|
||||
"#paste-area:focus {\n" +
|
||||
" opacity: 1;\n" +
|
||||
"}\n" +
|
||||
"#custom-cooldown-button.disabled {\n" +
|
||||
" opacity: 0.27;\n" +
|
||||
"}\n" +
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.10.5.3' />
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X-beta.crx' version='1.10.6.0' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
|
||||
<app appid='lacclbnghgdicfifcamcmcnilckjamag'>
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.10.5.3' />
|
||||
<updatecheck codebase='https://ccd0.github.io/4chan-x/builds/4chan-X.crx' version='1.10.6.0' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
"description": "Cross-browser userscript for maximum lurking on 4chan.",
|
||||
"meta": {
|
||||
"name": "4chan X",
|
||||
"version": "1.10.5.3",
|
||||
"date": "2015-03-21T19:46:19.628Z",
|
||||
"version": "1.10.6.0",
|
||||
"date": "2015-03-22T11:55:08.762Z",
|
||||
"repo": "https://github.com/ccd0/4chan-x/",
|
||||
"page": "https://github.com/ccd0/4chan-x",
|
||||
"downloads": "https://ccd0.github.io/4chan-x/builds/",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user