Merge branch 'v3'

Conflicts:
	CHANGELOG.md
	LICENSE
	builds/appchan-x.user.js
	builds/crx/script.js
	src/Images/Sauce.coffee
This commit is contained in:
Zixaphir 2014-01-28 01:14:01 -07:00
commit 9199f12ce0
8 changed files with 57 additions and 92 deletions

View File

@ -1,12 +1,14 @@
<<<<<<< HEAD
### v2.8.7
*2014-01-19*
=======
**MayhemYDG**: **MayhemYDG**:
- Added a `Reset Settings` button in the settings. - Added a `Reset Settings` button in the settings.
- More stability update. - More stability update.
- Stability update. - Stability update.
>>>>>>> v3
**ParrotParrot**:
- Added `Original filename` variable to Sauce panel.
### v2.8.7
*2014-01-19*
**Zixaphir**: **Zixaphir**:
- Fix posting. - Fix posting.

View File

@ -1,5 +1,5 @@
/* /*
* appchan x - Version 2.8.7 - 2014-01-26 * appchan x - Version 2.8.7 - 2014-01-28
* *
* Licensed under the MIT license. * Licensed under the MIT license.
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE * https://github.com/zixaphir/appchan-x/blob/master/LICENSE

View File

@ -23,7 +23,7 @@
// ==/UserScript== // ==/UserScript==
/* /*
* appchan x - Version 2.8.7 - 2014-01-26 * appchan x - Version 2.8.7 - 2014-01-28
* *
* Licensed under the MIT license. * Licensed under the MIT license.
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE * https://github.com/zixaphir/appchan-x/blob/master/LICENSE
@ -2736,21 +2736,12 @@
return __indexOf.call(el.classList, className) >= 0; return __indexOf.call(el.classList, className) >= 0;
}; };
$.rm = (function() { $.rm = function(el) {
if ('remove' in Element.prototype) { return el.remove();
return function(el) { };
return el.remove();
};
} else {
return function(el) {
var _ref;
return (_ref = el.parentNode) != null ? _ref.removeChild(el) : void 0;
};
}
})();
$.rmAll = function(root) { $.rmAll = function(root) {
return root.textContent = ''; return root.textContent = null;
}; };
$.tn = function(s) { $.tn = function(s) {
@ -10622,23 +10613,15 @@
}, },
createSauceLink: function(link) { createSauceLink: function(link) {
var m, text; var m, text;
link = link.replace(/(%(T?URL|MD5|board)|\$[1-4])/ig, function(parameter) { link = link.replace(/%(T?URL|MD5|board|name)/g, function(parameter) {
switch (parameter) { var type;
case '%TURL': return ((type = {
case '$1': '%TURL': 'post.file.thumbURL',
return "' + encodeURIComponent(post.file.thumbURL) + '"; '%URL': 'post.file.URL',
case '%URL': '%MD5': 'post.file.MD5',
case '$2': '%board': 'post.board',
return "' + encodeURIComponent(post.file.URL) + '"; '%name': 'post.file.name'
case '%MD5': }[parameter]) ? "' + encodeURIComponent(" + type + ") + '" : parameter);
case '$3':
return "' + encodeURIComponent(post.file.MD5) + '";
case '%board':
case '$4':
return "' + encodeURIComponent(post.board) + '";
default:
return parameter;
}
}); });
text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1]; text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1];
link = link.replace(/;text:.+$/, ''); link = link.replace(/;text:.+$/, '');
@ -16349,7 +16332,7 @@
}, },
sauce: function(section) { sauce: function(section) {
var ta; var ta;
section.innerHTML = "<div class=warning " + (Conf['Sauce'] ? 'hidden' : '') + "><code>Sauce</code> is disabled.</div><div>Lines starting with a <code>#</code> will be ignored.</div><div>You can specify a display text by appending <code>;text:[text]</code> to the URL.</div><ul>These parameters will be replaced by their corresponding values:<li><code>%TURL</code>: Thumbnail URL.</li><li><code>%URL</code>: Full image URL.</li><li><code>%MD5</code>: MD5 hash.</li><li><code>%board</code>: Current board.</li></ul><textarea name=sauces class=field spellcheck=false></textarea>"; section.innerHTML = "<div class=warning " + (Conf['Sauce'] ? 'hidden' : '') + "><code>Sauce</code> is disabled.</div><div>Lines starting with a <code>#</code> will be ignored.</div><div>You can specify a display text by appending <code>;text:[text]</code> to the URL.</div><ul>These parameters will be replaced by their corresponding values:<li><code>%TURL</code>: Thumbnail URL.</li><li><code>%URL</code>: Full image URL.</li><li><code>%MD5</code>: MD5 hash.</li><li><code>%name</code>: Original file name.</li><li><code>%board</code>: Current board.</li></ul><textarea name=sauces class=field spellcheck=false></textarea>";
ta = $('textarea', section); ta = $('textarea', section);
$.get('sauces', Conf['sauces'], function(item) { $.get('sauces', Conf['sauces'], function(item) {
return ta.value = item['sauces'].replace(/\$\d/g, function(c) { return ta.value = item['sauces'].replace(/\$\d/g, function(c) {

View File

@ -1,6 +1,6 @@
// Generated by CoffeeScript // Generated by CoffeeScript
/* /*
* appchan x - Version 2.8.7 - 2014-01-26 * appchan x - Version 2.8.7 - 2014-01-28
* *
* Licensed under the MIT license. * Licensed under the MIT license.
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE * https://github.com/zixaphir/appchan-x/blob/master/LICENSE
@ -2713,21 +2713,12 @@
return __indexOf.call(el.classList, className) >= 0; return __indexOf.call(el.classList, className) >= 0;
}; };
$.rm = (function() { $.rm = function(el) {
if ('remove' in Element.prototype) { return el.remove();
return function(el) { };
return el.remove();
};
} else {
return function(el) {
var _ref;
return (_ref = el.parentNode) != null ? _ref.removeChild(el) : void 0;
};
}
})();
$.rmAll = function(root) { $.rmAll = function(root) {
return root.textContent = ''; return root.textContent = null;
}; };
$.tn = function(s) { $.tn = function(s) {
@ -10615,23 +10606,15 @@
}, },
createSauceLink: function(link) { createSauceLink: function(link) {
var m, text; var m, text;
link = link.replace(/(%(T?URL|MD5|board)|\$[1-4])/ig, function(parameter) { link = link.replace(/%(T?URL|MD5|board|name)/g, function(parameter) {
switch (parameter) { var type;
case '%TURL': return ((type = {
case '$1': '%TURL': 'post.file.thumbURL',
return "' + encodeURIComponent(post.file.thumbURL) + '"; '%URL': 'post.file.URL',
case '%URL': '%MD5': 'post.file.MD5',
case '$2': '%board': 'post.board',
return "' + encodeURIComponent(post.file.URL) + '"; '%name': 'post.file.name'
case '%MD5': }[parameter]) ? "' + encodeURIComponent(" + type + ") + '" : parameter);
case '$3':
return "' + encodeURIComponent(post.file.MD5) + '";
case '%board':
case '$4':
return "' + encodeURIComponent(post.board) + '";
default:
return parameter;
}
}); });
text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1]; text = (m = link.match(/;text:(.+)$/)) ? m[1] : link.match(/(\w+)\.\w+\//)[1];
link = link.replace(/;text:.+$/, ''); link = link.replace(/;text:.+$/, '');
@ -16351,7 +16334,7 @@
}, },
sauce: function(section) { sauce: function(section) {
var ta; var ta;
section.innerHTML = "<div class=warning " + (Conf['Sauce'] ? 'hidden' : '') + "><code>Sauce</code> is disabled.</div><div>Lines starting with a <code>#</code> will be ignored.</div><div>You can specify a display text by appending <code>;text:[text]</code> to the URL.</div><ul>These parameters will be replaced by their corresponding values:<li><code>%TURL</code>: Thumbnail URL.</li><li><code>%URL</code>: Full image URL.</li><li><code>%MD5</code>: MD5 hash.</li><li><code>%board</code>: Current board.</li></ul><textarea name=sauces class=field spellcheck=false></textarea>"; section.innerHTML = "<div class=warning " + (Conf['Sauce'] ? 'hidden' : '') + "><code>Sauce</code> is disabled.</div><div>Lines starting with a <code>#</code> will be ignored.</div><div>You can specify a display text by appending <code>;text:[text]</code> to the URL.</div><ul>These parameters will be replaced by their corresponding values:<li><code>%TURL</code>: Thumbnail URL.</li><li><code>%URL</code>: Full image URL.</li><li><code>%MD5</code>: MD5 hash.</li><li><code>%name</code>: Original file name.</li><li><code>%board</code>: Current board.</li></ul><textarea name=sauces class=field spellcheck=false></textarea>";
ta = $('textarea', section); ta = $('textarea', section);
$.get('sauces', Conf['sauces'], function(item) { $.get('sauces', Conf['sauces'], function(item) {
return ta.value = item['sauces'].replace(/\$\d/g, function(c) { return ta.value = item['sauces'].replace(/\$\d/g, function(c) {

View File

@ -36,7 +36,7 @@
"grunt-contrib-concat": "~0.3.0", "grunt-contrib-concat": "~0.3.0",
"grunt-contrib-copy": "~0.5.0", "grunt-contrib-copy": "~0.5.0",
"grunt-contrib-watch": "~0.5.3", "grunt-contrib-watch": "~0.5.3",
"grunt-shell": "~0.6.3", "grunt-shell": "~0.6.4",
"load-grunt-tasks": "~0.2.1" "load-grunt-tasks": "~0.2.1"
}, },
"repository": { "repository": {

View File

@ -5,6 +5,7 @@
<li><code>%TURL</code>: Thumbnail URL.</li> <li><code>%TURL</code>: Thumbnail URL.</li>
<li><code>%URL</code>: Full image URL.</li> <li><code>%URL</code>: Full image URL.</li>
<li><code>%MD5</code>: MD5 hash.</li> <li><code>%MD5</code>: MD5 hash.</li>
<li><code>%name</code>: Original file name.</li>
<li><code>%board</code>: Current board.</li> <li><code>%board</code>: Current board.</li>
</ul> </ul>
<textarea name=sauces class=field spellcheck=false></textarea> <textarea name=sauces class=field spellcheck=false></textarea>

View File

@ -127,14 +127,12 @@ $.toggleClass = (el, className) ->
$.hasClass = (el, className) -> $.hasClass = (el, className) ->
className in el.classList className in el.classList
$.rm = do -> $.rm = (el) ->
if 'remove' of Element:: el.remove()
(el) -> el.remove()
else
(el) -> el.parentNode?.removeChild el
# jsperf.com/emptify-element/9 $.rmAll = (root) ->
$.rmAll = (root) -> root.textContent = '' # https://gist.github.com/MayhemYDG/8646194
root.textContent = null
$.tn = (s) -> $.tn = (s) ->
d.createTextNode s d.createTextNode s

View File

@ -15,19 +15,17 @@ Sauce =
name: 'Sauce' name: 'Sauce'
cb: @node cb: @node
createSauceLink: (link) -> createSauceLink: (link) ->
# XXX Remove $1-4 after 31-7-2013 (v1 transitioning) link = link.replace /%(T?URL|MD5|board|name)/g, (parameter) ->
link = link.replace /(%(T?URL|MD5|board)|\$[1-4])/ig, (parameter) -> return (if type = {
switch parameter '%TURL': 'post.file.thumbURL'
when '%TURL', '$1' '%URL': 'post.file.URL'
"' + encodeURIComponent(post.file.thumbURL) + '" '%MD5': 'post.file.MD5'
when '%URL', '$2' '%board': 'post.board'
"' + encodeURIComponent(post.file.URL) + '" '%name': 'post.file.name'
when '%MD5', '$3' }[parameter]
"' + encodeURIComponent(post.file.MD5) + '" "' + encodeURIComponent(#{type}) + '"
when '%board', '$4' else
"' + encodeURIComponent(post.board) + '" parameter)
else
parameter
text = if m = link.match(/;text:(.+)$/) then m[1] else link.match(/(\w+)\.\w+\//)[1] text = if m = link.match(/;text:(.+)$/) then m[1] else link.match(/(\w+)\.\w+\//)[1]
link = link.replace /;text:.+$/, '' link = link.replace /;text:.+$/, ''
Function 'post', 'a', """ Function 'post', 'a', """