Release 4chan X v1.11.14.0.
This commit is contained in:
parent
2f5d3a06d1
commit
154272ece7
@ -2,6 +2,12 @@
|
||||
|
||||
Sometimes the changelog has notes (not comprehensive) acknowledging people's work. This does not mean the changes are their fault, only that their code was used. All changes to the script are chosen by and the fault of the maintainer (ccd0).
|
||||
|
||||
### v1.11.14
|
||||
|
||||
**v1.11.14.0** *(2015-10-25)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.14.0/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.14.0/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
- Based on v1.11.13.9.
|
||||
- Allow editing Quick Reply images in the oekaki painter on all boards.
|
||||
|
||||
### v1.11.13
|
||||
|
||||
**v1.11.13.9** *(2015-10-24)* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.9/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.11.13.9/builds/4chan-X-noupdate.crx "Chromium version")]
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.13.9
|
||||
// @version 1.11.14.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X beta
|
||||
// @version 1.11.13.9
|
||||
// @version 1.11.14.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -413,7 +413,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.13.9',
|
||||
VERSION: '1.11.14.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -902,6 +902,10 @@
|
||||
return $.rm(script);
|
||||
};
|
||||
|
||||
$.global = function(fn) {
|
||||
return $.globalEval("(" + fn + ")();");
|
||||
};
|
||||
|
||||
$.bytesToString = function(size) {
|
||||
var unit;
|
||||
unit = 0;
|
||||
@ -6863,6 +6867,15 @@
|
||||
'swf': 'application/vnd.adobe.flash.movie',
|
||||
'webm': 'video/webm'
|
||||
},
|
||||
extensionFromType: {
|
||||
'image/jpeg': 'jpg',
|
||||
'image/png': 'png',
|
||||
'image/gif': 'gif',
|
||||
'application/pdf': 'pdf',
|
||||
'application/vnd.adobe.flash.movie': 'swf',
|
||||
'application/x-shockwave-flash': 'swf',
|
||||
'video/webm': 'webm'
|
||||
},
|
||||
init: function() {
|
||||
var sc, version;
|
||||
if (!Conf['Quick Reply']) {
|
||||
@ -7099,9 +7112,6 @@
|
||||
QR.setCustomCooldown(enabled);
|
||||
return $.set('customCooldownEnabled', enabled);
|
||||
},
|
||||
oekakiDraw: function() {
|
||||
return $.globalEval('Tegaki.open({\n onDone: function() {\n Tegaki.flatten().toBlob(function (blob) {\n var detail = {file: blob, name: \'tegaki.png\'};\n var event = new CustomEvent(\'QRSetFile\', {bubbles: true, detail: detail});\n document.dispatchEvent(event);\n });\n },\n onCancel: function() {},\n width: +document.querySelector(\'#qr [name=oekaki-width]\').value,\n height: +document.querySelector(\'#qr [name=oekaki-height]\').value\n});');
|
||||
},
|
||||
error: function(err, focusOverride) {
|
||||
var el, notice, notif;
|
||||
QR.open();
|
||||
@ -7425,7 +7435,7 @@
|
||||
var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, scriptData, 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\"><button type=\"button\" id=\"sjis-toggle\" title=\"Toggle Mona font\">∀</button><button type=\"button\" id=\"tex-preview-button\" title=\"Preview TeX\">T<sub>E</sub>X</button><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 id=\"tex-preview\"></div></div><div id=\"dump-list-container\"><div id=\"dump-list\"></div><a id=\"add-post\" href=\"javascript:;\" title=\"Add a post\">+</a></div><div class=\"oekaki\"><input type=\"button\" id=\"qr-draw-button\" value=\"Draw\"><label><span>Width:</span><input name=\"oekaki-width\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label><label><span>Height:</span><input name=\"oekaki-height\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label></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\"><a class=\"checkbox-letter\">S</a></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 hidden id=\"paste-area\" title=\"Select to paste images\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></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><select data-default=\"4\" name=\"filetag\"><option value=\"0\">Hentai</option><option value=\"6\">Porn</option><option value=\"1\">Japanese</option><option value=\"2\">Anime</option><option value=\"3\">Game</option><option value=\"5\">Loop</option><option value=\"4\" selected>Other</option></select><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\"><button type=\"button\" id=\"sjis-toggle\" title=\"Toggle Mona font\">∀</button><button type=\"button\" id=\"tex-preview-button\" title=\"Preview TeX\">T<sub>E</sub>X</button><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 id=\"tex-preview\"></div></div><div id=\"dump-list-container\"><div id=\"dump-list\"></div><a id=\"add-post\" href=\"javascript:;\" title=\"Add a post\">+</a></div><div class=\"oekaki\"><input type=\"button\" id=\"qr-draw-button\" value=\"Draw\"><label><span>Width:</span><input name=\"oekaki-width\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label><label><span>Height:</span><input name=\"oekaki-height\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label></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\"><a class=\"checkbox-letter\">S</a></label><a id=\"qr-edit-button\" title=\"Edit image\"><i class=\"fa fa-edit\"></i></a><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 hidden id=\"paste-area\" title=\"Select to paste images\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></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><select data-default=\"4\" name=\"filetag\"><option value=\"0\">Hentai</option><option value=\"6\">Porn</option><option value=\"1\">Japanese</option><option value=\"2\">Anime</option><option value=\"3\">Game</option><option value=\"5\">Loop</option><option value=\"4\" selected>Other</option></select><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
})
|
||||
};
|
||||
setNode = function(name, query) {
|
||||
@ -7462,6 +7472,7 @@
|
||||
setNode('customCooldown', '#custom-cooldown-button');
|
||||
setNode('flashTag', '[name=filetag]');
|
||||
setNode('drawButton', '#qr-draw-button');
|
||||
setNode('editButton', '#qr-edit-button');
|
||||
rules = $('ul.rules').textContent.trim();
|
||||
match_min = rules.match(/.+smaller than (\d+)x(\d+).+/);
|
||||
match_max = rules.match(/.+greater than (\d+)x(\d+).+/);
|
||||
@ -7534,7 +7545,8 @@
|
||||
$.on(nodes.texButton, 'mousedown', QR.texPreviewShow);
|
||||
$.on(nodes.texButton, 'mouseup', QR.texPreviewHide);
|
||||
$.on(nodes.customCooldown, 'click', QR.toggleCustomCooldown);
|
||||
$.on(nodes.drawButton, 'click', QR.oekakiDraw);
|
||||
$.on(nodes.drawButton, 'click', QR.oekaki.draw);
|
||||
$.on(nodes.editButton, 'click', QR.oekaki.edit);
|
||||
window.addEventListener('focus', QR.focus, true);
|
||||
window.addEventListener('blur', QR.focus, true);
|
||||
$.on(d, 'click', QR.focus);
|
||||
@ -8913,6 +8925,115 @@
|
||||
}
|
||||
};
|
||||
|
||||
QR.oekaki = {
|
||||
load: function(cb) {
|
||||
var n, onload, script, style;
|
||||
if ($('script[src^="//s.4cdn.org/js/painter"]', d.head)) {
|
||||
return cb();
|
||||
} else {
|
||||
style = $.el('link', {
|
||||
rel: 'stylesheet',
|
||||
href: "//s.4cdn.org/css/painter." + (Date.now()) + ".css"
|
||||
});
|
||||
script = $.el('script', {
|
||||
src: "//s.4cdn.org/js/painter.min." + (Date.now()) + ".js"
|
||||
});
|
||||
n = 0;
|
||||
onload = function() {
|
||||
if (++n === 2) {
|
||||
return cb();
|
||||
}
|
||||
};
|
||||
$.on(style, 'load', onload);
|
||||
$.on(script, 'load', onload);
|
||||
return $.add(d.head, [style, script]);
|
||||
}
|
||||
},
|
||||
draw: function() {
|
||||
return $.global(function() {
|
||||
var Tegaki;
|
||||
Tegaki = window.Tegaki;
|
||||
return Tegaki.open({
|
||||
onDone: function() {
|
||||
return Tegaki.flatten().toBlob(function(file) {
|
||||
return document.dispatchEvent(new CustomEvent('QRSetFile', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
file: file,
|
||||
name: 'tegaki.png'
|
||||
}
|
||||
}));
|
||||
});
|
||||
},
|
||||
onCancel: function() {},
|
||||
width: +document.querySelector('#qr [name=oekaki-width]').value,
|
||||
height: +document.querySelector('#qr [name=oekaki-height]').value
|
||||
});
|
||||
});
|
||||
},
|
||||
edit: function() {
|
||||
return QR.oekaki.load(function() {
|
||||
return $.global(function() {
|
||||
var Tegaki, cb, error, name;
|
||||
Tegaki = window.Tegaki;
|
||||
name = document.getElementById('qr-filename').value.replace(/\.\w+$/, '') + '.png';
|
||||
error = function(content) {
|
||||
return document.dispatchEvent(new CustomEvent('CreateNotification', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
type: 'warning',
|
||||
content: content,
|
||||
lifetime: 20
|
||||
}
|
||||
}));
|
||||
};
|
||||
cb = function(e) {
|
||||
var img;
|
||||
document.removeEventListener('QRFile', cb, false);
|
||||
if (!e.detail) {
|
||||
return error('No file to edit.');
|
||||
}
|
||||
if (!/^image\//.test(e.detail.type)) {
|
||||
return error('Not an image.');
|
||||
}
|
||||
img = new Image();
|
||||
img.onerror = function() {
|
||||
return error('Could not open image.');
|
||||
};
|
||||
img.onload = function() {
|
||||
if (Tegaki.bg) {
|
||||
Tegaki.destroy();
|
||||
}
|
||||
Tegaki.open({
|
||||
onDone: function() {
|
||||
return Tegaki.flatten().toBlob(function(file) {
|
||||
return document.dispatchEvent(new CustomEvent('QRSetFile', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
file: file,
|
||||
name: name
|
||||
}
|
||||
}));
|
||||
});
|
||||
},
|
||||
onCancel: function() {},
|
||||
width: img.naturalWidth,
|
||||
height: img.naturalHeight,
|
||||
bgColor: 'transparent'
|
||||
});
|
||||
return Tegaki.activeCtx.drawImage(img, 0, 0);
|
||||
};
|
||||
return img.src = URL.createObjectURL(e.detail);
|
||||
};
|
||||
document.addEventListener('QRFile', cb, false);
|
||||
return document.dispatchEvent(new CustomEvent('QRGetFile', {
|
||||
bubbles: true
|
||||
}));
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
QR.persona = {
|
||||
pwd: '',
|
||||
always: {},
|
||||
@ -9430,7 +9551,7 @@
|
||||
_Class.prototype.saveFilename = function() {
|
||||
this.file.newName = (this.filename || '').replace(/[\/\\]/g, '-');
|
||||
if (!QR.validExtension.test(this.filename)) {
|
||||
return this.file.newName += '.jpg';
|
||||
return this.file.newName += "." + (QR.extensionFromType[this.file.type] || 'jpg');
|
||||
}
|
||||
};
|
||||
|
||||
@ -19468,6 +19589,7 @@
|
||||
"}\n" +
|
||||
"#qr:not(.has-spoiler) #qr-spoiler-label,\n" +
|
||||
"#file-n-submit:not(.has-file) #qr-spoiler-label,\n" +
|
||||
"#file-n-submit:not(.has-file) #qr-edit-button,\n" +
|
||||
".has-file #paste-area,\n" +
|
||||
".has-file #url-button,\n" +
|
||||
"#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" +
|
||||
|
||||
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.13.9
|
||||
// @version 1.11.14.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -413,7 +413,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.13.9',
|
||||
VERSION: '1.11.14.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -902,6 +902,10 @@
|
||||
return $.rm(script);
|
||||
};
|
||||
|
||||
$.global = function(fn) {
|
||||
return $.globalEval("(" + fn + ")();");
|
||||
};
|
||||
|
||||
$.bytesToString = function(size) {
|
||||
var unit;
|
||||
unit = 0;
|
||||
@ -6863,6 +6867,15 @@
|
||||
'swf': 'application/vnd.adobe.flash.movie',
|
||||
'webm': 'video/webm'
|
||||
},
|
||||
extensionFromType: {
|
||||
'image/jpeg': 'jpg',
|
||||
'image/png': 'png',
|
||||
'image/gif': 'gif',
|
||||
'application/pdf': 'pdf',
|
||||
'application/vnd.adobe.flash.movie': 'swf',
|
||||
'application/x-shockwave-flash': 'swf',
|
||||
'video/webm': 'webm'
|
||||
},
|
||||
init: function() {
|
||||
var sc, version;
|
||||
if (!Conf['Quick Reply']) {
|
||||
@ -7099,9 +7112,6 @@
|
||||
QR.setCustomCooldown(enabled);
|
||||
return $.set('customCooldownEnabled', enabled);
|
||||
},
|
||||
oekakiDraw: function() {
|
||||
return $.globalEval('Tegaki.open({\n onDone: function() {\n Tegaki.flatten().toBlob(function (blob) {\n var detail = {file: blob, name: \'tegaki.png\'};\n var event = new CustomEvent(\'QRSetFile\', {bubbles: true, detail: detail});\n document.dispatchEvent(event);\n });\n },\n onCancel: function() {},\n width: +document.querySelector(\'#qr [name=oekaki-width]\').value,\n height: +document.querySelector(\'#qr [name=oekaki-height]\').value\n});');
|
||||
},
|
||||
error: function(err, focusOverride) {
|
||||
var el, notice, notif;
|
||||
QR.open();
|
||||
@ -7425,7 +7435,7 @@
|
||||
var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, scriptData, 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\"><button type=\"button\" id=\"sjis-toggle\" title=\"Toggle Mona font\">∀</button><button type=\"button\" id=\"tex-preview-button\" title=\"Preview TeX\">T<sub>E</sub>X</button><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 id=\"tex-preview\"></div></div><div id=\"dump-list-container\"><div id=\"dump-list\"></div><a id=\"add-post\" href=\"javascript:;\" title=\"Add a post\">+</a></div><div class=\"oekaki\"><input type=\"button\" id=\"qr-draw-button\" value=\"Draw\"><label><span>Width:</span><input name=\"oekaki-width\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label><label><span>Height:</span><input name=\"oekaki-height\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label></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\"><a class=\"checkbox-letter\">S</a></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 hidden id=\"paste-area\" title=\"Select to paste images\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></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><select data-default=\"4\" name=\"filetag\"><option value=\"0\">Hentai</option><option value=\"6\">Porn</option><option value=\"1\">Japanese</option><option value=\"2\">Anime</option><option value=\"3\">Game</option><option value=\"5\">Loop</option><option value=\"4\" selected>Other</option></select><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\"><button type=\"button\" id=\"sjis-toggle\" title=\"Toggle Mona font\">∀</button><button type=\"button\" id=\"tex-preview-button\" title=\"Preview TeX\">T<sub>E</sub>X</button><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 id=\"tex-preview\"></div></div><div id=\"dump-list-container\"><div id=\"dump-list\"></div><a id=\"add-post\" href=\"javascript:;\" title=\"Add a post\">+</a></div><div class=\"oekaki\"><input type=\"button\" id=\"qr-draw-button\" value=\"Draw\"><label><span>Width:</span><input name=\"oekaki-width\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label><label><span>Height:</span><input name=\"oekaki-height\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label></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\"><a class=\"checkbox-letter\">S</a></label><a id=\"qr-edit-button\" title=\"Edit image\"><i class=\"fa fa-edit\"></i></a><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 hidden id=\"paste-area\" title=\"Select to paste images\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></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><select data-default=\"4\" name=\"filetag\"><option value=\"0\">Hentai</option><option value=\"6\">Porn</option><option value=\"1\">Japanese</option><option value=\"2\">Anime</option><option value=\"3\">Game</option><option value=\"5\">Loop</option><option value=\"4\" selected>Other</option></select><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
})
|
||||
};
|
||||
setNode = function(name, query) {
|
||||
@ -7462,6 +7472,7 @@
|
||||
setNode('customCooldown', '#custom-cooldown-button');
|
||||
setNode('flashTag', '[name=filetag]');
|
||||
setNode('drawButton', '#qr-draw-button');
|
||||
setNode('editButton', '#qr-edit-button');
|
||||
rules = $('ul.rules').textContent.trim();
|
||||
match_min = rules.match(/.+smaller than (\d+)x(\d+).+/);
|
||||
match_max = rules.match(/.+greater than (\d+)x(\d+).+/);
|
||||
@ -7534,7 +7545,8 @@
|
||||
$.on(nodes.texButton, 'mousedown', QR.texPreviewShow);
|
||||
$.on(nodes.texButton, 'mouseup', QR.texPreviewHide);
|
||||
$.on(nodes.customCooldown, 'click', QR.toggleCustomCooldown);
|
||||
$.on(nodes.drawButton, 'click', QR.oekakiDraw);
|
||||
$.on(nodes.drawButton, 'click', QR.oekaki.draw);
|
||||
$.on(nodes.editButton, 'click', QR.oekaki.edit);
|
||||
window.addEventListener('focus', QR.focus, true);
|
||||
window.addEventListener('blur', QR.focus, true);
|
||||
$.on(d, 'click', QR.focus);
|
||||
@ -8913,6 +8925,115 @@
|
||||
}
|
||||
};
|
||||
|
||||
QR.oekaki = {
|
||||
load: function(cb) {
|
||||
var n, onload, script, style;
|
||||
if ($('script[src^="//s.4cdn.org/js/painter"]', d.head)) {
|
||||
return cb();
|
||||
} else {
|
||||
style = $.el('link', {
|
||||
rel: 'stylesheet',
|
||||
href: "//s.4cdn.org/css/painter." + (Date.now()) + ".css"
|
||||
});
|
||||
script = $.el('script', {
|
||||
src: "//s.4cdn.org/js/painter.min." + (Date.now()) + ".js"
|
||||
});
|
||||
n = 0;
|
||||
onload = function() {
|
||||
if (++n === 2) {
|
||||
return cb();
|
||||
}
|
||||
};
|
||||
$.on(style, 'load', onload);
|
||||
$.on(script, 'load', onload);
|
||||
return $.add(d.head, [style, script]);
|
||||
}
|
||||
},
|
||||
draw: function() {
|
||||
return $.global(function() {
|
||||
var Tegaki;
|
||||
Tegaki = window.Tegaki;
|
||||
return Tegaki.open({
|
||||
onDone: function() {
|
||||
return Tegaki.flatten().toBlob(function(file) {
|
||||
return document.dispatchEvent(new CustomEvent('QRSetFile', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
file: file,
|
||||
name: 'tegaki.png'
|
||||
}
|
||||
}));
|
||||
});
|
||||
},
|
||||
onCancel: function() {},
|
||||
width: +document.querySelector('#qr [name=oekaki-width]').value,
|
||||
height: +document.querySelector('#qr [name=oekaki-height]').value
|
||||
});
|
||||
});
|
||||
},
|
||||
edit: function() {
|
||||
return QR.oekaki.load(function() {
|
||||
return $.global(function() {
|
||||
var Tegaki, cb, error, name;
|
||||
Tegaki = window.Tegaki;
|
||||
name = document.getElementById('qr-filename').value.replace(/\.\w+$/, '') + '.png';
|
||||
error = function(content) {
|
||||
return document.dispatchEvent(new CustomEvent('CreateNotification', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
type: 'warning',
|
||||
content: content,
|
||||
lifetime: 20
|
||||
}
|
||||
}));
|
||||
};
|
||||
cb = function(e) {
|
||||
var img;
|
||||
document.removeEventListener('QRFile', cb, false);
|
||||
if (!e.detail) {
|
||||
return error('No file to edit.');
|
||||
}
|
||||
if (!/^image\//.test(e.detail.type)) {
|
||||
return error('Not an image.');
|
||||
}
|
||||
img = new Image();
|
||||
img.onerror = function() {
|
||||
return error('Could not open image.');
|
||||
};
|
||||
img.onload = function() {
|
||||
if (Tegaki.bg) {
|
||||
Tegaki.destroy();
|
||||
}
|
||||
Tegaki.open({
|
||||
onDone: function() {
|
||||
return Tegaki.flatten().toBlob(function(file) {
|
||||
return document.dispatchEvent(new CustomEvent('QRSetFile', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
file: file,
|
||||
name: name
|
||||
}
|
||||
}));
|
||||
});
|
||||
},
|
||||
onCancel: function() {},
|
||||
width: img.naturalWidth,
|
||||
height: img.naturalHeight,
|
||||
bgColor: 'transparent'
|
||||
});
|
||||
return Tegaki.activeCtx.drawImage(img, 0, 0);
|
||||
};
|
||||
return img.src = URL.createObjectURL(e.detail);
|
||||
};
|
||||
document.addEventListener('QRFile', cb, false);
|
||||
return document.dispatchEvent(new CustomEvent('QRGetFile', {
|
||||
bubbles: true
|
||||
}));
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
QR.persona = {
|
||||
pwd: '',
|
||||
always: {},
|
||||
@ -9430,7 +9551,7 @@
|
||||
_Class.prototype.saveFilename = function() {
|
||||
this.file.newName = (this.filename || '').replace(/[\/\\]/g, '-');
|
||||
if (!QR.validExtension.test(this.filename)) {
|
||||
return this.file.newName += '.jpg';
|
||||
return this.file.newName += "." + (QR.extensionFromType[this.file.type] || 'jpg');
|
||||
}
|
||||
};
|
||||
|
||||
@ -19468,6 +19589,7 @@
|
||||
"}\n" +
|
||||
"#qr:not(.has-spoiler) #qr-spoiler-label,\n" +
|
||||
"#file-n-submit:not(.has-file) #qr-spoiler-label,\n" +
|
||||
"#file-n-submit:not(.has-file) #qr-edit-button,\n" +
|
||||
".has-file #paste-area,\n" +
|
||||
".has-file #url-button,\n" +
|
||||
"#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\n" +
|
||||
|
||||
Binary file not shown.
@ -1,6 +1,6 @@
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.13.9
|
||||
// @version 1.11.14.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
// Generated by CoffeeScript
|
||||
// ==UserScript==
|
||||
// @name 4chan X
|
||||
// @version 1.11.13.9
|
||||
// @version 1.11.14.0
|
||||
// @minGMVer 1.14
|
||||
// @minFFVer 26
|
||||
// @namespace 4chan-X
|
||||
@ -413,7 +413,7 @@
|
||||
doc = d.documentElement;
|
||||
|
||||
g = {
|
||||
VERSION: '1.11.13.9',
|
||||
VERSION: '1.11.14.0',
|
||||
NAMESPACE: '4chan X.',
|
||||
boards: {}
|
||||
};
|
||||
@ -902,6 +902,10 @@
|
||||
return $.rm(script);
|
||||
};
|
||||
|
||||
$.global = function(fn) {
|
||||
return $.globalEval("(" + fn + ")();");
|
||||
};
|
||||
|
||||
$.bytesToString = function(size) {
|
||||
var unit;
|
||||
unit = 0;
|
||||
@ -6863,6 +6867,15 @@
|
||||
'swf': 'application/vnd.adobe.flash.movie',
|
||||
'webm': 'video/webm'
|
||||
},
|
||||
extensionFromType: {
|
||||
'image/jpeg': 'jpg',
|
||||
'image/png': 'png',
|
||||
'image/gif': 'gif',
|
||||
'application/pdf': 'pdf',
|
||||
'application/vnd.adobe.flash.movie': 'swf',
|
||||
'application/x-shockwave-flash': 'swf',
|
||||
'video/webm': 'webm'
|
||||
},
|
||||
init: function() {
|
||||
var sc, version;
|
||||
if (!Conf['Quick Reply']) {
|
||||
@ -7099,9 +7112,6 @@
|
||||
QR.setCustomCooldown(enabled);
|
||||
return $.set('customCooldownEnabled', enabled);
|
||||
},
|
||||
oekakiDraw: function() {
|
||||
return $.globalEval('Tegaki.open({\n onDone: function() {\n Tegaki.flatten().toBlob(function (blob) {\n var detail = {file: blob, name: \'tegaki.png\'};\n var event = new CustomEvent(\'QRSetFile\', {bubbles: true, detail: detail});\n document.dispatchEvent(event);\n });\n },\n onCancel: function() {},\n width: +document.querySelector(\'#qr [name=oekaki-width]\').value,\n height: +document.querySelector(\'#qr [name=oekaki-height]\').value\n});');
|
||||
},
|
||||
error: function(err, focusOverride) {
|
||||
var el, notice, notif;
|
||||
QR.open();
|
||||
@ -7425,7 +7435,7 @@
|
||||
var dialog, event, i, items, m, match_max, match_min, name, node, nodes, ref, rules, save, scriptData, 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\"><button type=\"button\" id=\"sjis-toggle\" title=\"Toggle Mona font\">∀</button><button type=\"button\" id=\"tex-preview-button\" title=\"Preview TeX\">T<sub>E</sub>X</button><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 id=\"tex-preview\"></div></div><div id=\"dump-list-container\"><div id=\"dump-list\"></div><a id=\"add-post\" href=\"javascript:;\" title=\"Add a post\">+</a></div><div class=\"oekaki\"><input type=\"button\" id=\"qr-draw-button\" value=\"Draw\"><label><span>Width:</span><input name=\"oekaki-width\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label><label><span>Height:</span><input name=\"oekaki-height\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label></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\"><a class=\"checkbox-letter\">S</a></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 hidden id=\"paste-area\" title=\"Select to paste images\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></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><select data-default=\"4\" name=\"filetag\"><option value=\"0\">Hentai</option><option value=\"6\">Porn</option><option value=\"1\">Japanese</option><option value=\"2\">Anime</option><option value=\"3\">Game</option><option value=\"5\">Loop</option><option value=\"4\" selected>Other</option></select><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\"><button type=\"button\" id=\"sjis-toggle\" title=\"Toggle Mona font\">∀</button><button type=\"button\" id=\"tex-preview-button\" title=\"Preview TeX\">T<sub>E</sub>X</button><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 id=\"tex-preview\"></div></div><div id=\"dump-list-container\"><div id=\"dump-list\"></div><a id=\"add-post\" href=\"javascript:;\" title=\"Add a post\">+</a></div><div class=\"oekaki\"><input type=\"button\" id=\"qr-draw-button\" value=\"Draw\"><label><span>Width:</span><input name=\"oekaki-width\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label><label><span>Height:</span><input name=\"oekaki-height\" value=\"400\" type=\"number\" class=\"field\" size=\"1\"></label></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\"><a class=\"checkbox-letter\">S</a></label><a id=\"qr-edit-button\" title=\"Edit image\"><i class=\"fa fa-edit\"></i></a><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 hidden id=\"paste-area\" title=\"Select to paste images\" class=\"fa fa-clipboard\" tabindex=\"-1\" contentEditable=\"true\"></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><select data-default=\"4\" name=\"filetag\"><option value=\"0\">Hentai</option><option value=\"6\">Porn</option><option value=\"1\">Japanese</option><option value=\"2\">Anime</option><option value=\"3\">Game</option><option value=\"5\">Loop</option><option value=\"4\" selected>Other</option></select><input type=\"file\" multiple></form><datalist id=\"list-name\"></datalist><datalist id=\"list-email\"></datalist><datalist id=\"list-sub\"></datalist> "
|
||||
})
|
||||
};
|
||||
setNode = function(name, query) {
|
||||
@ -7462,6 +7472,7 @@
|
||||
setNode('customCooldown', '#custom-cooldown-button');
|
||||
setNode('flashTag', '[name=filetag]');
|
||||
setNode('drawButton', '#qr-draw-button');
|
||||
setNode('editButton', '#qr-edit-button');
|
||||
rules = $('ul.rules').textContent.trim();
|
||||
match_min = rules.match(/.+smaller than (\d+)x(\d+).+/);
|
||||
match_max = rules.match(/.+greater than (\d+)x(\d+).+/);
|
||||
@ -7534,7 +7545,8 @@
|
||||
$.on(nodes.texButton, 'mousedown', QR.texPreviewShow);
|
||||
$.on(nodes.texButton, 'mouseup', QR.texPreviewHide);
|
||||
$.on(nodes.customCooldown, 'click', QR.toggleCustomCooldown);
|
||||
$.on(nodes.drawButton, 'click', QR.oekakiDraw);
|
||||
$.on(nodes.drawButton, 'click', QR.oekaki.draw);
|
||||
$.on(nodes.editButton, 'click', QR.oekaki.edit);
|
||||
window.addEventListener('focus', QR.focus, true);
|
||||
window.addEventListener('blur', QR.focus, true);
|
||||
$.on(d, 'click', QR.focus);
|
||||
@ -8913,6 +8925,115 @@
|
||||
}
|
||||
};
|
||||
|
||||
QR.oekaki = {
|
||||
load: function(cb) {
|
||||
var n, onload, script, style;
|
||||
if ($('script[src^="//s.4cdn.org/js/painter"]', d.head)) {
|
||||
return cb();
|
||||
} else {
|
||||
style = $.el('link', {
|
||||
rel: 'stylesheet',
|
||||
href: "//s.4cdn.org/css/painter." + (Date.now()) + ".css"
|
||||
});
|
||||
script = $.el('script', {
|
||||
src: "//s.4cdn.org/js/painter.min." + (Date.now()) + ".js"
|
||||
});
|
||||
n = 0;
|
||||
onload = function() {
|
||||
if (++n === 2) {
|
||||
return cb();
|
||||
}
|
||||
};
|
||||
$.on(style, 'load', onload);
|
||||
$.on(script, 'load', onload);
|
||||
return $.add(d.head, [style, script]);
|
||||
}
|
||||
},
|
||||
draw: function() {
|
||||
return $.global(function() {
|
||||
var Tegaki;
|
||||
Tegaki = window.Tegaki;
|
||||
return Tegaki.open({
|
||||
onDone: function() {
|
||||
return Tegaki.flatten().toBlob(function(file) {
|
||||
return document.dispatchEvent(new CustomEvent('QRSetFile', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
file: file,
|
||||
name: 'tegaki.png'
|
||||
}
|
||||
}));
|
||||
});
|
||||
},
|
||||
onCancel: function() {},
|
||||
width: +document.querySelector('#qr [name=oekaki-width]').value,
|
||||
height: +document.querySelector('#qr [name=oekaki-height]').value
|
||||
});
|
||||
});
|
||||
},
|
||||
edit: function() {
|
||||
return QR.oekaki.load(function() {
|
||||
return $.global(function() {
|
||||
var Tegaki, cb, error, name;
|
||||
Tegaki = window.Tegaki;
|
||||
name = document.getElementById('qr-filename').value.replace(/\.\w+$/, '') + '.png';
|
||||
error = function(content) {
|
||||
return document.dispatchEvent(new CustomEvent('CreateNotification', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
type: 'warning',
|
||||
content: content,
|
||||
lifetime: 20
|
||||
}
|
||||
}));
|
||||
};
|
||||
cb = function(e) {
|
||||
var img;
|
||||
document.removeEventListener('QRFile', cb, false);
|
||||
if (!e.detail) {
|
||||
return error('No file to edit.');
|
||||
}
|
||||
if (!/^image\//.test(e.detail.type)) {
|
||||
return error('Not an image.');
|
||||
}
|
||||
img = new Image();
|
||||
img.onerror = function() {
|
||||
return error('Could not open image.');
|
||||
};
|
||||
img.onload = function() {
|
||||
if (Tegaki.bg) {
|
||||
Tegaki.destroy();
|
||||
}
|
||||
Tegaki.open({
|
||||
onDone: function() {
|
||||
return Tegaki.flatten().toBlob(function(file) {
|
||||
return document.dispatchEvent(new CustomEvent('QRSetFile', {
|
||||
bubbles: true,
|
||||
detail: {
|
||||
file: file,
|
||||
name: name
|
||||
}
|
||||
}));
|
||||
});
|
||||
},
|
||||
onCancel: function() {},
|
||||
width: img.naturalWidth,
|
||||
height: img.naturalHeight,
|
||||
bgColor: 'transparent'
|
||||
});
|
||||
return Tegaki.activeCtx.drawImage(img, 0, 0);
|
||||
};
|
||||
return img.src = URL.createObjectURL(e.detail);
|
||||
};
|
||||
document.addEventListener('QRFile', cb, false);
|
||||
return document.dispatchEvent(new CustomEvent('QRGetFile', {
|
||||
bubbles: true
|
||||
}));
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
QR.persona = {
|
||||
pwd: '',
|
||||
always: {},
|
||||
@ -9430,7 +9551,7 @@
|
||||
_Class.prototype.saveFilename = function() {
|
||||
this.file.newName = (this.filename || '').replace(/[\/\\]/g, '-');
|
||||
if (!QR.validExtension.test(this.filename)) {
|
||||
return this.file.newName += '.jpg';
|
||||
return this.file.newName += "." + (QR.extensionFromType[this.file.type] || 'jpg');
|
||||
}
|
||||
};
|
||||
|
||||
@ -19468,6 +19589,7 @@
|
||||
"}\n" +
|
||||
"#qr:not(.has-spoiler) #qr-spoiler-label,\n" +
|
||||
"#file-n-submit:not(.has-file) #qr-spoiler-label,\n" +
|
||||
"#file-n-submit:not(.has-file) #qr-edit-button,\n" +
|
||||
".has-file #paste-area,\n" +
|
||||
".has-file #url-button,\n" +
|
||||
"#file-n-submit:not(.custom-cooldown) #custom-cooldown-button {\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://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.13.9' />
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X-beta.crx' version='1.11.14.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://www.4chan-x.net/builds/4chan-X.crx' version='1.11.13.9' />
|
||||
<updatecheck codebase='https://www.4chan-x.net/builds/4chan-X.crx' version='1.11.14.0' />
|
||||
</app>
|
||||
</gupdate>
|
||||
|
||||
|
||||
@ -4,8 +4,8 @@
|
||||
"meta": {
|
||||
"name": "4chan X",
|
||||
"fork": "ccd0",
|
||||
"version": "1.11.13.9",
|
||||
"date": "2015-10-25T00:38:31.311Z",
|
||||
"version": "1.11.14.0",
|
||||
"date": "2015-10-25T08:56:13.424Z",
|
||||
"page": "https://www.4chan-x.net/",
|
||||
"downloads": "https://www.4chan-x.net/builds/",
|
||||
"oldVersions": "https://raw.githubusercontent.com/ccd0/4chan-x/",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user