Merge branch 'v3'
Conflicts: LICENSE builds/crx/script.js
This commit is contained in:
commit
ff46f521b2
2
LICENSE
2
LICENSE
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* appchan x - Version 2.2.2 - 2013-08-06
|
* appchan x - Version 2.2.2 - 2013-08-07
|
||||||
*
|
*
|
||||||
* 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
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAACVBMVEUAAGcAAABmzDNZt9VtAAAAAXRSTlMAQObYZgAAAHFJREFUKFOt0LENACEIBdBv4Qju4wgWanEj3D6OcIVMKaitYHEU/jwTCQj8W75kiVCSBvdQ5/AvfVHBin11BgdRq3ysBgfwBDRrj3MCIA+oAQaku/Q1cNctrAmyDl577tOThYt/Y1RBM4DgOHzM0HFTAyLukH/cmRnqAAAAAElFTkSuQmCC
|
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwAgMAAAAqbBEUAAAACVBMVEUAAGcAAABmzDNZt9VtAAAAAXRSTlMAQObYZgAAAHFJREFUKFOt0LENACEIBdBv4Qju4wgWanEj3D6OcIVMKaitYHEU/jwTCQj8W75kiVCSBvdQ5/AvfVHBin11BgdRq3ysBgfwBDRrj3MCIA+oAQaku/Q1cNctrAmyDl577tOThYt/Y1RBM4DgOHzM0HFTAyLukH/cmRnqAAAAAElFTkSuQmCC
|
||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
/*
|
/*
|
||||||
* 4chan X - Version 1.2.25 - 2013-08-06
|
* 4chan X - Version 1.2.25 - 2013-08-07
|
||||||
*
|
*
|
||||||
* Licensed under the MIT license.
|
* Licensed under the MIT license.
|
||||||
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
|
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
|
||||||
@ -551,7 +551,7 @@
|
|||||||
|
|
||||||
$.X = function(path, root) {
|
$.X = function(path, root) {
|
||||||
root || (root = d.body);
|
root || (root = d.body);
|
||||||
return d.evaluate(path, root, null, 6, null);
|
return d.evaluate(path, root, null, 7, null);
|
||||||
};
|
};
|
||||||
|
|
||||||
$.addClass = function(el, className) {
|
$.addClass = function(el, className) {
|
||||||
@ -963,21 +963,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
Post.prototype.parseComment = function() {
|
Post.prototype.parseComment = function() {
|
||||||
var bq, i, node, nodes, text, _i, _len, _ref;
|
var bq, i, node, nodes, text;
|
||||||
|
|
||||||
bq = this.nodes.comment.cloneNode(true);
|
bq = this.nodes.comment.cloneNode(true);
|
||||||
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
nodes = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
i = 0;
|
||||||
node = _ref[_i];
|
while (node = nodes[i++]) {
|
||||||
$.rm(node);
|
$.rm(node);
|
||||||
}
|
}
|
||||||
text = [];
|
text = "";
|
||||||
nodes = d.evaluate('.//br|.//text()', bq, null, 7, null);
|
nodes = $.X('.//br|.//text()', bq);
|
||||||
i = 0;
|
i = 0;
|
||||||
while (i < nodes.snapshotLength) {
|
while (node = nodes.snapshotItem(i++)) {
|
||||||
text.push(nodes.snapshotItem(i++).data || '\n');
|
text += node.data || '\n';
|
||||||
}
|
}
|
||||||
return this.info.comment = text.join('').trim().replace(/\s+$/gm, '');
|
return this.info.comment = text.trim().replace(/\s+$/gm, '');
|
||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseQuotes = function() {
|
Post.prototype.parseQuotes = function() {
|
||||||
@ -1972,7 +1972,7 @@
|
|||||||
container = $.el('div', {
|
container = $.el('div', {
|
||||||
id: "pc" + postID,
|
id: "pc" + postID,
|
||||||
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
|
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
|
||||||
innerHTML: (isOP ? '' : "<div class=sideArrows id=sa" + postID + ">>></div>") + ("<div id=p" + postID + " class='post " + (isOP ? 'op' : 'reply') + (capcode === 'admin_highlight' ? ' highlightPost' : '') + "'>") + ("<div class='postInfoM mobile' id=pim" + postID + ">") + ("<span class='nameBlock" + capcodeClass + "'>") + ("<span class=name>" + (name || '') + "</span>") + tripcode + capcodeStart + capcode + userID + flag + sticky + closed + ("<br>" + subject) + ("</span><span class='dateTime postNum' data-utc=" + dateUTC + ">" + date) + ("<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + ">No.</a>") + ("<a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "'>" + postID + "</a>") + '</span>' + '</div>' + (isOP ? fileHTML : '') + ("<div class='postInfo desktop' id=pi" + postID + ">") + ("<input type=checkbox name=" + postID + " value=delete> ") + ("" + subject + " ") + ("<span class='nameBlock" + capcodeClass + "'>") + emailStart + ("<span class=name>" + (name || '') + "</span>") + tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed + ' </span> ' + ("<span class=dateTime data-utc=" + dateUTC + ">" + date + "</span> ") + "<span class='postNum desktop'>" + ("<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + " title='Highlight this post'>No.</a>") + ("<a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "' title='Quote this post'>" + postID + "</a>") + '</span>' + '</div>' + (isOP ? '' : fileHTML) + ("<blockquote class=postMessage id=m" + postID + ">" + (comment || '') + capcodeReplies + "</blockquote> ") + '</div>'
|
innerHTML: "" + (isOP ? '' : "<div class=sideArrows id=sa" + postID + ">>></div>") + "<div id=p" + postID + " class='post " + (isOP ? 'op' : 'reply') + (capcode === 'admin_highlight' ? ' highlightPost' : '') + "'><div class='postInfoM mobile' id=pim" + postID + "><span class='nameBlock" + capcodeClass + "'><span class=name>" + (name || '') + "</span>" + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + "<br>" + subject + "</span><span class='dateTime postNum' data-utc=" + dateUTC + ">" + date + "<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + ">No.</a><a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "'>" + postID + "</a></span></div>" + (isOP ? fileHTML : '') + "<div class='postInfo desktop' id=pi" + postID + "><input type=checkbox name=" + postID + " value=delete>" + subject + "<span class='nameBlock" + capcodeClass + "'>" + emailStart + "<span class=name>" + (name || '') + "</span>" + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + "</span>" + " " + "<span class=dateTime data-utc=" + dateUTC + ">" + date + "</span>" + " " + "<span class='postNum desktop'><a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + " title='Highlight this post'>No.</a><a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "' title='Quote this post'>" + postID + "</a></span></div>" + (isOP ? '' : fileHTML) + "<blockquote class=postMessage id=m" + postID + ">" + (comment || '') + capcodeReplies + "</blockquote>" + " " + "</div>"
|
||||||
});
|
});
|
||||||
_ref = $$('.quotelink', container);
|
_ref = $$('.quotelink', container);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
@ -2176,32 +2176,7 @@
|
|||||||
bq = $.el('blockquote', {
|
bq = $.el('blockquote', {
|
||||||
textContent: data.comment
|
textContent: data.comment
|
||||||
});
|
});
|
||||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, function(text) {
|
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, Get.parseMarkup);
|
||||||
switch (text) {
|
|
||||||
case '\n':
|
|
||||||
return '<br>';
|
|
||||||
case '[b]':
|
|
||||||
return '<b>';
|
|
||||||
case '[/b]':
|
|
||||||
return '</b>';
|
|
||||||
case '[spoiler]':
|
|
||||||
return '<s>';
|
|
||||||
case '[/spoiler]':
|
|
||||||
return '</s>';
|
|
||||||
case '[code]':
|
|
||||||
return '<pre class=prettyprint>';
|
|
||||||
case '[/code]':
|
|
||||||
return '</pre>';
|
|
||||||
case '[moot]':
|
|
||||||
return '<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">';
|
|
||||||
case '[/moot]':
|
|
||||||
return '</div>';
|
|
||||||
case '[banned]':
|
|
||||||
return '<b style="color: red;">';
|
|
||||||
case '[/banned]':
|
|
||||||
return '</b>';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
comment = bq.innerHTML.replace(/(^|>)(>[^<$]*)(<|$)/g, '$1<span class=quote>$2</span>$3').replace(/((>){2}(>\/[a-z\d]+\/)?\d+)/g, '<span class=deadlink>$1</span>');
|
comment = bq.innerHTML.replace(/(^|>)(>[^<$]*)(<|$)/g, '$1<span class=quote>$2</span>$3').replace(/((>){2}(>\/[a-z\d]+\/)?\d+)/g, '<span class=deadlink>$1</span>');
|
||||||
threadID = +data.thread_num;
|
threadID = +data.thread_num;
|
||||||
o = {
|
o = {
|
||||||
@ -2251,6 +2226,32 @@
|
|||||||
});
|
});
|
||||||
Main.callbackNodes(Post, [post]);
|
Main.callbackNodes(Post, [post]);
|
||||||
return Get.insert(post, root, context);
|
return Get.insert(post, root, context);
|
||||||
|
},
|
||||||
|
parseMarkup: function(text) {
|
||||||
|
switch (text) {
|
||||||
|
case '\n':
|
||||||
|
return '<br>';
|
||||||
|
case '[b]':
|
||||||
|
return '<b>';
|
||||||
|
case '[/b]':
|
||||||
|
return '</b>';
|
||||||
|
case '[spoiler]':
|
||||||
|
return '<s>';
|
||||||
|
case '[/spoiler]':
|
||||||
|
return '</s>';
|
||||||
|
case '[code]':
|
||||||
|
return '<pre class=prettyprint>';
|
||||||
|
case '[/code]':
|
||||||
|
return '</pre>';
|
||||||
|
case '[moot]':
|
||||||
|
return '<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">';
|
||||||
|
case '[/moot]':
|
||||||
|
return '</div>';
|
||||||
|
case '[banned]':
|
||||||
|
return '<b style="color: red;">';
|
||||||
|
case '[/banned]':
|
||||||
|
return '</b>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -18,7 +18,7 @@
|
|||||||
// ==/UserScript==
|
// ==/UserScript==
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* appchan x - Version 2.2.2 - 2013-08-06
|
* appchan x - Version 2.2.2 - 2013-08-07
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -2908,7 +2908,7 @@
|
|||||||
|
|
||||||
$.X = function(path, root) {
|
$.X = function(path, root) {
|
||||||
root || (root = d.body);
|
root || (root = d.body);
|
||||||
return d.evaluate(path, root, null, 6, null);
|
return d.evaluate(path, root, null, 7, null);
|
||||||
};
|
};
|
||||||
|
|
||||||
$.addClass = function(el, className) {
|
$.addClass = function(el, className) {
|
||||||
@ -3320,21 +3320,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
Post.prototype.parseComment = function() {
|
Post.prototype.parseComment = function() {
|
||||||
var bq, i, node, nodes, text, _i, _len, _ref;
|
var bq, i, node, nodes, text;
|
||||||
|
|
||||||
bq = this.nodes.comment.cloneNode(true);
|
bq = this.nodes.comment.cloneNode(true);
|
||||||
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
nodes = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
i = 0;
|
||||||
node = _ref[_i];
|
while (node = nodes[i++]) {
|
||||||
$.rm(node);
|
$.rm(node);
|
||||||
}
|
}
|
||||||
text = [];
|
text = "";
|
||||||
nodes = d.evaluate('.//br|.//text()', bq, null, 7, null);
|
nodes = $.X('.//br|.//text()', bq);
|
||||||
i = 0;
|
i = 0;
|
||||||
while (i < nodes.snapshotLength) {
|
while (node = nodes.snapshotItem(i++)) {
|
||||||
text.push(nodes.snapshotItem(i++).data || '\n');
|
text += node.data || '\n';
|
||||||
}
|
}
|
||||||
return this.info.comment = text.join('').trim().replace(/\s+$/gm, '');
|
return this.info.comment = text.trim().replace(/\s+$/gm, '');
|
||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseQuotes = function() {
|
Post.prototype.parseQuotes = function() {
|
||||||
@ -4268,7 +4268,7 @@
|
|||||||
container = $.el('div', {
|
container = $.el('div', {
|
||||||
id: "pc" + postID,
|
id: "pc" + postID,
|
||||||
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
|
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
|
||||||
innerHTML: (isOP ? '' : "<div class=sideArrows id=sa" + postID + ">>></div>") + ("<div id=p" + postID + " class='post " + (isOP ? 'op' : 'reply') + (capcode === 'admin_highlight' ? ' highlightPost' : '') + "'>") + ("<div class='postInfoM mobile' id=pim" + postID + ">") + ("<span class='nameBlock" + capcodeClass + "'>") + ("<span class=name>" + (name || '') + "</span>") + tripcode + capcodeStart + capcode + userID + flag + sticky + closed + ("<br>" + subject) + ("</span><span class='dateTime postNum' data-utc=" + dateUTC + ">" + date) + ("<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + ">No.</a>") + ("<a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "'>" + postID + "</a>") + '</span>' + '</div>' + (isOP ? fileHTML : '') + ("<div class='postInfo desktop' id=pi" + postID + ">") + ("<input type=checkbox name=" + postID + " value=delete> ") + ("" + subject + " ") + ("<span class='nameBlock" + capcodeClass + "'>") + emailStart + ("<span class=name>" + (name || '') + "</span>") + tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed + ' </span> ' + ("<span class=dateTime data-utc=" + dateUTC + ">" + date + "</span> ") + "<span class='postNum desktop'>" + ("<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + " title='Highlight this post'>No.</a>") + ("<a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "' title='Quote this post'>" + postID + "</a>") + '</span>' + '</div>' + (isOP ? '' : fileHTML) + ("<blockquote class=postMessage id=m" + postID + ">" + (comment || '') + capcodeReplies + "</blockquote> ") + '</div>'
|
innerHTML: "" + (isOP ? '' : "<div class=sideArrows id=sa" + postID + ">>></div>") + "<div id=p" + postID + " class='post " + (isOP ? 'op' : 'reply') + (capcode === 'admin_highlight' ? ' highlightPost' : '') + "'><div class='postInfoM mobile' id=pim" + postID + "><span class='nameBlock" + capcodeClass + "'><span class=name>" + (name || '') + "</span>" + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + "<br>" + subject + "</span><span class='dateTime postNum' data-utc=" + dateUTC + ">" + date + "<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + ">No.</a><a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "'>" + postID + "</a></span></div>" + (isOP ? fileHTML : '') + "<div class='postInfo desktop' id=pi" + postID + "><input type=checkbox name=" + postID + " value=delete>" + subject + "<span class='nameBlock" + capcodeClass + "'>" + emailStart + "<span class=name>" + (name || '') + "</span>" + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + "</span>" + " " + "<span class=dateTime data-utc=" + dateUTC + ">" + date + "</span>" + " " + "<span class='postNum desktop'><a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + " title='Highlight this post'>No.</a><a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "' title='Quote this post'>" + postID + "</a></span></div>" + (isOP ? '' : fileHTML) + "<blockquote class=postMessage id=m" + postID + ">" + (comment || '') + capcodeReplies + "</blockquote>" + " " + "</div>"
|
||||||
});
|
});
|
||||||
_ref = $$('.quotelink', container);
|
_ref = $$('.quotelink', container);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
@ -4472,32 +4472,7 @@
|
|||||||
bq = $.el('blockquote', {
|
bq = $.el('blockquote', {
|
||||||
textContent: data.comment
|
textContent: data.comment
|
||||||
});
|
});
|
||||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, function(text) {
|
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, Get.parseMarkup);
|
||||||
switch (text) {
|
|
||||||
case '\n':
|
|
||||||
return '<br>';
|
|
||||||
case '[b]':
|
|
||||||
return '<b>';
|
|
||||||
case '[/b]':
|
|
||||||
return '</b>';
|
|
||||||
case '[spoiler]':
|
|
||||||
return '<s>';
|
|
||||||
case '[/spoiler]':
|
|
||||||
return '</s>';
|
|
||||||
case '[code]':
|
|
||||||
return '<pre class=prettyprint>';
|
|
||||||
case '[/code]':
|
|
||||||
return '</pre>';
|
|
||||||
case '[moot]':
|
|
||||||
return '<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">';
|
|
||||||
case '[/moot]':
|
|
||||||
return '</div>';
|
|
||||||
case '[banned]':
|
|
||||||
return '<b style="color: red;">';
|
|
||||||
case '[/banned]':
|
|
||||||
return '</b>';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
comment = bq.innerHTML.replace(/(^|>)(>[^<$]*)(<|$)/g, '$1<span class=quote>$2</span>$3').replace(/((>){2}(>\/[a-z\d]+\/)?\d+)/g, '<span class=deadlink>$1</span>');
|
comment = bq.innerHTML.replace(/(^|>)(>[^<$]*)(<|$)/g, '$1<span class=quote>$2</span>$3').replace(/((>){2}(>\/[a-z\d]+\/)?\d+)/g, '<span class=deadlink>$1</span>');
|
||||||
threadID = +data.thread_num;
|
threadID = +data.thread_num;
|
||||||
o = {
|
o = {
|
||||||
@ -4547,6 +4522,32 @@
|
|||||||
});
|
});
|
||||||
Main.callbackNodes(Post, [post]);
|
Main.callbackNodes(Post, [post]);
|
||||||
return Get.insert(post, root, context);
|
return Get.insert(post, root, context);
|
||||||
|
},
|
||||||
|
parseMarkup: function(text) {
|
||||||
|
switch (text) {
|
||||||
|
case '\n':
|
||||||
|
return '<br>';
|
||||||
|
case '[b]':
|
||||||
|
return '<b>';
|
||||||
|
case '[/b]':
|
||||||
|
return '</b>';
|
||||||
|
case '[spoiler]':
|
||||||
|
return '<s>';
|
||||||
|
case '[/spoiler]':
|
||||||
|
return '</s>';
|
||||||
|
case '[code]':
|
||||||
|
return '<pre class=prettyprint>';
|
||||||
|
case '[/code]':
|
||||||
|
return '</pre>';
|
||||||
|
case '[moot]':
|
||||||
|
return '<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">';
|
||||||
|
case '[/moot]':
|
||||||
|
return '</div>';
|
||||||
|
case '[banned]':
|
||||||
|
return '<b style="color: red;">';
|
||||||
|
case '[/banned]':
|
||||||
|
return '</b>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
// Generated by CoffeeScript
|
// Generated by CoffeeScript
|
||||||
/*
|
/*
|
||||||
* appchan x - Version 2.2.2 - 2013-08-06
|
* appchan x - Version 2.2.2 - 2013-08-07
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@ -2891,7 +2891,7 @@
|
|||||||
|
|
||||||
$.X = function(path, root) {
|
$.X = function(path, root) {
|
||||||
root || (root = d.body);
|
root || (root = d.body);
|
||||||
return d.evaluate(path, root, null, 6, null);
|
return d.evaluate(path, root, null, 7, null);
|
||||||
};
|
};
|
||||||
|
|
||||||
$.addClass = function(el, className) {
|
$.addClass = function(el, className) {
|
||||||
@ -3333,21 +3333,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
Post.prototype.parseComment = function() {
|
Post.prototype.parseComment = function() {
|
||||||
var bq, i, node, nodes, text, _i, _len, _ref;
|
var bq, i, node, nodes, text;
|
||||||
|
|
||||||
bq = this.nodes.comment.cloneNode(true);
|
bq = this.nodes.comment.cloneNode(true);
|
||||||
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
nodes = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
i = 0;
|
||||||
node = _ref[_i];
|
while (node = nodes[i++]) {
|
||||||
$.rm(node);
|
$.rm(node);
|
||||||
}
|
}
|
||||||
text = [];
|
text = "";
|
||||||
nodes = d.evaluate('.//br|.//text()', bq, null, 7, null);
|
nodes = $.X('.//br|.//text()', bq);
|
||||||
i = 0;
|
i = 0;
|
||||||
while (i < nodes.snapshotLength) {
|
while (node = nodes.snapshotItem(i++)) {
|
||||||
text.push(nodes.snapshotItem(i++).data || '\n');
|
text += node.data || '\n';
|
||||||
}
|
}
|
||||||
return this.info.comment = text.join('').trim().replace(/\s+$/gm, '');
|
return this.info.comment = text.trim().replace(/\s+$/gm, '');
|
||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseQuotes = function() {
|
Post.prototype.parseQuotes = function() {
|
||||||
@ -4282,7 +4282,7 @@
|
|||||||
container = $.el('div', {
|
container = $.el('div', {
|
||||||
id: "pc" + postID,
|
id: "pc" + postID,
|
||||||
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
|
className: "postContainer " + (isOP ? 'op' : 'reply') + "Container",
|
||||||
innerHTML: (isOP ? '' : "<div class=sideArrows id=sa" + postID + ">>></div>") + ("<div id=p" + postID + " class='post " + (isOP ? 'op' : 'reply') + (capcode === 'admin_highlight' ? ' highlightPost' : '') + "'>") + ("<div class='postInfoM mobile' id=pim" + postID + ">") + ("<span class='nameBlock" + capcodeClass + "'>") + ("<span class=name>" + (name || '') + "</span>") + tripcode + capcodeStart + capcode + userID + flag + sticky + closed + ("<br>" + subject) + ("</span><span class='dateTime postNum' data-utc=" + dateUTC + ">" + date) + ("<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + ">No.</a>") + ("<a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "'>" + postID + "</a>") + '</span>' + '</div>' + (isOP ? fileHTML : '') + ("<div class='postInfo desktop' id=pi" + postID + ">") + ("<input type=checkbox name=" + postID + " value=delete> ") + ("" + subject + " ") + ("<span class='nameBlock" + capcodeClass + "'>") + emailStart + ("<span class=name>" + (name || '') + "</span>") + tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed + ' </span> ' + ("<span class=dateTime data-utc=" + dateUTC + ">" + date + "</span> ") + "<span class='postNum desktop'>" + ("<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + " title='Highlight this post'>No.</a>") + ("<a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "' title='Quote this post'>" + postID + "</a>") + '</span>' + '</div>' + (isOP ? '' : fileHTML) + ("<blockquote class=postMessage id=m" + postID + ">" + (comment || '') + capcodeReplies + "</blockquote> ") + '</div>'
|
innerHTML: "" + (isOP ? '' : "<div class=sideArrows id=sa" + postID + ">>></div>") + "<div id=p" + postID + " class='post " + (isOP ? 'op' : 'reply') + (capcode === 'admin_highlight' ? ' highlightPost' : '') + "'><div class='postInfoM mobile' id=pim" + postID + "><span class='nameBlock" + capcodeClass + "'><span class=name>" + (name || '') + "</span>" + (tripcode + capcodeStart + capcode + userID + flag + sticky + closed) + "<br>" + subject + "</span><span class='dateTime postNum' data-utc=" + dateUTC + ">" + date + "<a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + ">No.</a><a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "'>" + postID + "</a></span></div>" + (isOP ? fileHTML : '') + "<div class='postInfo desktop' id=pi" + postID + "><input type=checkbox name=" + postID + " value=delete>" + subject + "<span class='nameBlock" + capcodeClass + "'>" + emailStart + "<span class=name>" + (name || '') + "</span>" + (tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed) + "</span>" + " " + "<span class=dateTime data-utc=" + dateUTC + ">" + date + "</span>" + " " + "<span class='postNum desktop'><a href=" + ("/" + boardID + "/res/" + threadID + "#p" + postID) + " title='Highlight this post'>No.</a><a href='" + (g.VIEW === 'thread' && g.THREADID === +threadID ? "javascript:quote(" + postID + ")" : "/" + boardID + "/res/" + threadID + "#q" + postID) + "' title='Quote this post'>" + postID + "</a></span></div>" + (isOP ? '' : fileHTML) + "<blockquote class=postMessage id=m" + postID + ">" + (comment || '') + capcodeReplies + "</blockquote>" + " " + "</div>"
|
||||||
});
|
});
|
||||||
_ref = $$('.quotelink', container);
|
_ref = $$('.quotelink', container);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
@ -4486,32 +4486,7 @@
|
|||||||
bq = $.el('blockquote', {
|
bq = $.el('blockquote', {
|
||||||
textContent: data.comment
|
textContent: data.comment
|
||||||
});
|
});
|
||||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, function(text) {
|
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, Get.parseMarkup);
|
||||||
switch (text) {
|
|
||||||
case '\n':
|
|
||||||
return '<br>';
|
|
||||||
case '[b]':
|
|
||||||
return '<b>';
|
|
||||||
case '[/b]':
|
|
||||||
return '</b>';
|
|
||||||
case '[spoiler]':
|
|
||||||
return '<s>';
|
|
||||||
case '[/spoiler]':
|
|
||||||
return '</s>';
|
|
||||||
case '[code]':
|
|
||||||
return '<pre class=prettyprint>';
|
|
||||||
case '[/code]':
|
|
||||||
return '</pre>';
|
|
||||||
case '[moot]':
|
|
||||||
return '<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">';
|
|
||||||
case '[/moot]':
|
|
||||||
return '</div>';
|
|
||||||
case '[banned]':
|
|
||||||
return '<b style="color: red;">';
|
|
||||||
case '[/banned]':
|
|
||||||
return '</b>';
|
|
||||||
}
|
|
||||||
});
|
|
||||||
comment = bq.innerHTML.replace(/(^|>)(>[^<$]*)(<|$)/g, '$1<span class=quote>$2</span>$3').replace(/((>){2}(>\/[a-z\d]+\/)?\d+)/g, '<span class=deadlink>$1</span>');
|
comment = bq.innerHTML.replace(/(^|>)(>[^<$]*)(<|$)/g, '$1<span class=quote>$2</span>$3').replace(/((>){2}(>\/[a-z\d]+\/)?\d+)/g, '<span class=deadlink>$1</span>');
|
||||||
threadID = +data.thread_num;
|
threadID = +data.thread_num;
|
||||||
o = {
|
o = {
|
||||||
@ -4561,6 +4536,32 @@
|
|||||||
});
|
});
|
||||||
Main.callbackNodes(Post, [post]);
|
Main.callbackNodes(Post, [post]);
|
||||||
return Get.insert(post, root, context);
|
return Get.insert(post, root, context);
|
||||||
|
},
|
||||||
|
parseMarkup: function(text) {
|
||||||
|
switch (text) {
|
||||||
|
case '\n':
|
||||||
|
return '<br>';
|
||||||
|
case '[b]':
|
||||||
|
return '<b>';
|
||||||
|
case '[/b]':
|
||||||
|
return '</b>';
|
||||||
|
case '[spoiler]':
|
||||||
|
return '<s>';
|
||||||
|
case '[/spoiler]':
|
||||||
|
return '</s>';
|
||||||
|
case '[code]':
|
||||||
|
return '<pre class=prettyprint>';
|
||||||
|
case '[/code]':
|
||||||
|
return '</pre>';
|
||||||
|
case '[moot]':
|
||||||
|
return '<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">';
|
||||||
|
case '[/moot]':
|
||||||
|
return '</div>';
|
||||||
|
case '[banned]':
|
||||||
|
return '<b style="color: red;">';
|
||||||
|
case '[/banned]':
|
||||||
|
return '</b>';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -214,58 +214,7 @@ Build =
|
|||||||
container = $.el 'div',
|
container = $.el 'div',
|
||||||
id: "pc#{postID}"
|
id: "pc#{postID}"
|
||||||
className: "postContainer #{if isOP then 'op' else 'reply'}Container"
|
className: "postContainer #{if isOP then 'op' else 'reply'}Container"
|
||||||
innerHTML: \
|
innerHTML: <%= grunt.file.read('src/General/html/Build/post.html').replace(/>\s+/g, '>').replace(/\s+</g, '<').replace(/\s+/g, ' ').trim() %>
|
||||||
(if isOP then '' else "<div class=sideArrows id=sa#{postID}>>></div>") +
|
|
||||||
"<div id=p#{postID} class='post #{if isOP then 'op' else 'reply'}#{
|
|
||||||
if capcode is 'admin_highlight'
|
|
||||||
' highlightPost'
|
|
||||||
else
|
|
||||||
''
|
|
||||||
}'>" +
|
|
||||||
|
|
||||||
"<div class='postInfoM mobile' id=pim#{postID}>" +
|
|
||||||
"<span class='nameBlock#{capcodeClass}'>" +
|
|
||||||
"<span class=name>#{name or ''}</span>" + tripcode +
|
|
||||||
capcodeStart + capcode + userID + flag + sticky + closed +
|
|
||||||
"<br>#{subject}" +
|
|
||||||
"</span><span class='dateTime postNum' data-utc=#{dateUTC}>#{date}" +
|
|
||||||
"<a href=#{"/#{boardID}/res/#{threadID}#p#{postID}"}>No.</a>" +
|
|
||||||
"<a href='#{
|
|
||||||
if g.VIEW is 'thread' and g.THREADID is +threadID
|
|
||||||
"javascript:quote(#{postID})"
|
|
||||||
else
|
|
||||||
"/#{boardID}/res/#{threadID}#q#{postID}"
|
|
||||||
}'>#{postID}</a>" +
|
|
||||||
'</span>' +
|
|
||||||
'</div>' +
|
|
||||||
|
|
||||||
(if isOP then fileHTML else '') +
|
|
||||||
|
|
||||||
"<div class='postInfo desktop' id=pi#{postID}>" +
|
|
||||||
"<input type=checkbox name=#{postID} value=delete> " +
|
|
||||||
"#{subject} " +
|
|
||||||
"<span class='nameBlock#{capcodeClass}'>" +
|
|
||||||
emailStart +
|
|
||||||
"<span class=name>#{name or ''}</span>" + tripcode +
|
|
||||||
capcodeStart + emailEnd + capcode + userID + flag + sticky + closed +
|
|
||||||
' </span> ' +
|
|
||||||
"<span class=dateTime data-utc=#{dateUTC}>#{date}</span> " +
|
|
||||||
"<span class='postNum desktop'>" +
|
|
||||||
"<a href=#{"/#{boardID}/res/#{threadID}#p#{postID}"} title='Highlight this post'>No.</a>" +
|
|
||||||
"<a href='#{
|
|
||||||
if g.VIEW is 'thread' and g.THREADID is +threadID
|
|
||||||
"javascript:quote(#{postID})"
|
|
||||||
else
|
|
||||||
"/#{boardID}/res/#{threadID}#q#{postID}"
|
|
||||||
}' title='Quote this post'>#{postID}</a>" +
|
|
||||||
'</span>' +
|
|
||||||
'</div>' +
|
|
||||||
|
|
||||||
(if isOP then '' else fileHTML) +
|
|
||||||
|
|
||||||
"<blockquote class=postMessage id=m#{postID}>#{comment or ''}#{capcodeReplies}</blockquote> " +
|
|
||||||
|
|
||||||
'</div>'
|
|
||||||
|
|
||||||
for quote in $$ '.quotelink', container
|
for quote in $$ '.quotelink', container
|
||||||
href = quote.getAttribute 'href'
|
href = quote.getAttribute 'href'
|
||||||
|
|||||||
@ -153,30 +153,7 @@ Get =
|
|||||||
| \[/?code\]
|
| \[/?code\]
|
||||||
| \[/?moot\]
|
| \[/?moot\]
|
||||||
| \[/?banned\]
|
| \[/?banned\]
|
||||||
///g, (text) ->
|
///g, Get.parseMarkup
|
||||||
switch text
|
|
||||||
when '\n'
|
|
||||||
'<br>'
|
|
||||||
when '[b]'
|
|
||||||
'<b>'
|
|
||||||
when '[/b]'
|
|
||||||
'</b>'
|
|
||||||
when '[spoiler]'
|
|
||||||
'<s>'
|
|
||||||
when '[/spoiler]'
|
|
||||||
'</s>'
|
|
||||||
when '[code]'
|
|
||||||
'<pre class=prettyprint>'
|
|
||||||
when '[/code]'
|
|
||||||
'</pre>'
|
|
||||||
when '[moot]'
|
|
||||||
'<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">'
|
|
||||||
when '[/moot]'
|
|
||||||
'</div>'
|
|
||||||
when '[banned]'
|
|
||||||
'<b style="color: red;">'
|
|
||||||
when '[/banned]'
|
|
||||||
'</b>'
|
|
||||||
|
|
||||||
comment = bq.innerHTML
|
comment = bq.innerHTML
|
||||||
# greentext
|
# greentext
|
||||||
@ -228,3 +205,27 @@ Get =
|
|||||||
isArchived: true
|
isArchived: true
|
||||||
Main.callbackNodes Post, [post]
|
Main.callbackNodes Post, [post]
|
||||||
Get.insert post, root, context
|
Get.insert post, root, context
|
||||||
|
parseMarkup: (text) ->
|
||||||
|
switch text
|
||||||
|
when '\n'
|
||||||
|
'<br>'
|
||||||
|
when '[b]'
|
||||||
|
'<b>'
|
||||||
|
when '[/b]'
|
||||||
|
'</b>'
|
||||||
|
when '[spoiler]'
|
||||||
|
'<s>'
|
||||||
|
when '[/spoiler]'
|
||||||
|
'</s>'
|
||||||
|
when '[code]'
|
||||||
|
'<pre class=prettyprint>'
|
||||||
|
when '[/code]'
|
||||||
|
'</pre>'
|
||||||
|
when '[moot]'
|
||||||
|
'<div style="padding:5px;margin-left:.5em;border-color:#faa;border:2px dashed rgba(255,0,0,.1);border-radius:2px">'
|
||||||
|
when '[/moot]'
|
||||||
|
'</div>'
|
||||||
|
when '[banned]'
|
||||||
|
'<b style="color: red;">'
|
||||||
|
when '[/banned]'
|
||||||
|
'</b>'
|
||||||
59
src/General/html/Build/post.html
Normal file
59
src/General/html/Build/post.html
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
"""#{if isOP then '' else "<div class=sideArrows id=sa#{postID}>>></div>"}
|
||||||
|
<div id=p#{postID} class='post #{if isOP then 'op' else 'reply'}#{
|
||||||
|
if capcode is 'admin_highlight' then
|
||||||
|
' highlightPost'
|
||||||
|
else
|
||||||
|
''
|
||||||
|
}'>
|
||||||
|
|
||||||
|
<div class='postInfoM mobile' id=pim#{postID}>
|
||||||
|
<span class='nameBlock#{capcodeClass}'>
|
||||||
|
<span class=name>
|
||||||
|
#{name or ''}
|
||||||
|
</span>
|
||||||
|
#{tripcode + capcodeStart + capcode + userID + flag + sticky + closed}
|
||||||
|
<br>#{subject}
|
||||||
|
</span>
|
||||||
|
<span class='dateTime postNum' data-utc=#{dateUTC}>
|
||||||
|
#{date}
|
||||||
|
<a href=#{"/#{boardID}/res/#{threadID}#p#{postID}"}>
|
||||||
|
No.
|
||||||
|
</a>
|
||||||
|
<a href='#{
|
||||||
|
if g.VIEW is 'thread' and g.THREADID is +threadID then
|
||||||
|
"javascript:quote(#{postID})"
|
||||||
|
else
|
||||||
|
"/#{boardID}/res/#{threadID}#q#{postID}"
|
||||||
|
}'>
|
||||||
|
#{postID}
|
||||||
|
</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
#{if isOP then fileHTML else ''}
|
||||||
|
|
||||||
|
<div class='postInfo desktop' id=pi#{postID}>
|
||||||
|
<input type=checkbox name=#{postID} value=delete>
|
||||||
|
#{subject}
|
||||||
|
<span class='nameBlock#{capcodeClass}'>
|
||||||
|
#{emailStart}
|
||||||
|
<span class=name>#{name or ''}</span>
|
||||||
|
#{tripcode + capcodeStart + emailEnd + capcode + userID + flag + sticky + closed}
|
||||||
|
</span>#{" "}
|
||||||
|
<span class=dateTime data-utc=#{dateUTC}>#{date}</span>#{" "}
|
||||||
|
<span class='postNum desktop'>
|
||||||
|
<a href=#{"/#{boardID}/res/#{threadID}#p#{postID}"} title='Highlight this post'>No.</a>
|
||||||
|
<a href='#{
|
||||||
|
if g.VIEW is 'thread' and g.THREADID is +threadID then
|
||||||
|
"javascript:quote(#{postID})"
|
||||||
|
else
|
||||||
|
"/#{boardID}/res/#{threadID}#q#{postID}"
|
||||||
|
}' title='Quote this post'>#{postID}</a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
#{if isOP then '' else fileHTML}
|
||||||
|
|
||||||
|
<blockquote class=postMessage id=m#{postID}>#{comment or ''}#{capcodeReplies}</blockquote>#{" "}
|
||||||
|
|
||||||
|
</div>"""
|
||||||
@ -143,8 +143,8 @@ $.x = (path, root) ->
|
|||||||
|
|
||||||
$.X = (path, root) ->
|
$.X = (path, root) ->
|
||||||
root or= d.body
|
root or= d.body
|
||||||
# XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE === 6
|
# XPathResult.ORDERED_NODE_SNAPSHOT_TYPE === 7
|
||||||
d.evaluate path, root, null, 6, null
|
d.evaluate path, root, null, 7, null
|
||||||
|
|
||||||
$.addClass = (el, className) ->
|
$.addClass = (el, className) ->
|
||||||
el.classList.add className
|
el.classList.add className
|
||||||
|
|||||||
@ -72,15 +72,16 @@ class Post
|
|||||||
# Preceding and following new lines.
|
# Preceding and following new lines.
|
||||||
# Trailing spaces.
|
# Trailing spaces.
|
||||||
bq = @nodes.comment.cloneNode true
|
bq = @nodes.comment.cloneNode true
|
||||||
for node in $$ '.abbr, .capcodeReplies, .exif, b', bq
|
nodes = $$ '.abbr, .capcodeReplies, .exif, b', bq
|
||||||
$.rm node
|
|
||||||
text = []
|
|
||||||
# XPathResult.ORDERED_NODE_SNAPSHOT_TYPE === 7
|
|
||||||
nodes = d.evaluate './/br|.//text()', bq, null, 7, null
|
|
||||||
i = 0
|
i = 0
|
||||||
while i < nodes.snapshotLength
|
while node = nodes[i++]
|
||||||
text.push nodes.snapshotItem(i++).data or '\n'
|
$.rm node
|
||||||
@info.comment = text.join('').trim().replace /\s+$/gm, ''
|
text = ""
|
||||||
|
nodes = $.X './/br|.//text()', bq
|
||||||
|
i = 0
|
||||||
|
while node = nodes.snapshotItem i++
|
||||||
|
text += node.data or '\n'
|
||||||
|
@info.comment = text.trim().replace /\s+$/gm, ''
|
||||||
|
|
||||||
parseQuotes: ->
|
parseQuotes: ->
|
||||||
@quotes = []
|
@quotes = []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user