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.
|
||||
* 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
|
||||
// ==/UserScript==
|
||||
/*
|
||||
* 4chan X - Version 1.2.25 - 2013-08-06
|
||||
* 4chan X - Version 1.2.25 - 2013-08-07
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
|
||||
@ -551,7 +551,7 @@
|
||||
|
||||
$.X = function(path, root) {
|
||||
root || (root = d.body);
|
||||
return d.evaluate(path, root, null, 6, null);
|
||||
return d.evaluate(path, root, null, 7, null);
|
||||
};
|
||||
|
||||
$.addClass = function(el, className) {
|
||||
@ -963,21 +963,21 @@
|
||||
}
|
||||
|
||||
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);
|
||||
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
node = _ref[_i];
|
||||
nodes = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||
i = 0;
|
||||
while (node = nodes[i++]) {
|
||||
$.rm(node);
|
||||
}
|
||||
text = [];
|
||||
nodes = d.evaluate('.//br|.//text()', bq, null, 7, null);
|
||||
text = "";
|
||||
nodes = $.X('.//br|.//text()', bq);
|
||||
i = 0;
|
||||
while (i < nodes.snapshotLength) {
|
||||
text.push(nodes.snapshotItem(i++).data || '\n');
|
||||
while (node = nodes.snapshotItem(i++)) {
|
||||
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() {
|
||||
@ -1972,7 +1972,7 @@
|
||||
container = $.el('div', {
|
||||
id: "pc" + postID,
|
||||
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);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
@ -2176,32 +2176,7 @@
|
||||
bq = $.el('blockquote', {
|
||||
textContent: data.comment
|
||||
});
|
||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, 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>';
|
||||
}
|
||||
});
|
||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, Get.parseMarkup);
|
||||
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;
|
||||
o = {
|
||||
@ -2251,6 +2226,32 @@
|
||||
});
|
||||
Main.callbackNodes(Post, [post]);
|
||||
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==
|
||||
|
||||
/*
|
||||
* appchan x - Version 2.2.2 - 2013-08-06
|
||||
* appchan x - Version 2.2.2 - 2013-08-07
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
||||
@ -2908,7 +2908,7 @@
|
||||
|
||||
$.X = function(path, root) {
|
||||
root || (root = d.body);
|
||||
return d.evaluate(path, root, null, 6, null);
|
||||
return d.evaluate(path, root, null, 7, null);
|
||||
};
|
||||
|
||||
$.addClass = function(el, className) {
|
||||
@ -3320,21 +3320,21 @@
|
||||
}
|
||||
|
||||
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);
|
||||
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
node = _ref[_i];
|
||||
nodes = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||
i = 0;
|
||||
while (node = nodes[i++]) {
|
||||
$.rm(node);
|
||||
}
|
||||
text = [];
|
||||
nodes = d.evaluate('.//br|.//text()', bq, null, 7, null);
|
||||
text = "";
|
||||
nodes = $.X('.//br|.//text()', bq);
|
||||
i = 0;
|
||||
while (i < nodes.snapshotLength) {
|
||||
text.push(nodes.snapshotItem(i++).data || '\n');
|
||||
while (node = nodes.snapshotItem(i++)) {
|
||||
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() {
|
||||
@ -4268,7 +4268,7 @@
|
||||
container = $.el('div', {
|
||||
id: "pc" + postID,
|
||||
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);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
@ -4472,32 +4472,7 @@
|
||||
bq = $.el('blockquote', {
|
||||
textContent: data.comment
|
||||
});
|
||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, 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>';
|
||||
}
|
||||
});
|
||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, Get.parseMarkup);
|
||||
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;
|
||||
o = {
|
||||
@ -4547,6 +4522,32 @@
|
||||
});
|
||||
Main.callbackNodes(Post, [post]);
|
||||
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
|
||||
/*
|
||||
* appchan x - Version 2.2.2 - 2013-08-06
|
||||
* appchan x - Version 2.2.2 - 2013-08-07
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* https://github.com/zixaphir/appchan-x/blob/master/LICENSE
|
||||
@ -2891,7 +2891,7 @@
|
||||
|
||||
$.X = function(path, root) {
|
||||
root || (root = d.body);
|
||||
return d.evaluate(path, root, null, 6, null);
|
||||
return d.evaluate(path, root, null, 7, null);
|
||||
};
|
||||
|
||||
$.addClass = function(el, className) {
|
||||
@ -3333,21 +3333,21 @@
|
||||
}
|
||||
|
||||
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);
|
||||
_ref = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
node = _ref[_i];
|
||||
nodes = $$('.abbr, .capcodeReplies, .exif, b', bq);
|
||||
i = 0;
|
||||
while (node = nodes[i++]) {
|
||||
$.rm(node);
|
||||
}
|
||||
text = [];
|
||||
nodes = d.evaluate('.//br|.//text()', bq, null, 7, null);
|
||||
text = "";
|
||||
nodes = $.X('.//br|.//text()', bq);
|
||||
i = 0;
|
||||
while (i < nodes.snapshotLength) {
|
||||
text.push(nodes.snapshotItem(i++).data || '\n');
|
||||
while (node = nodes.snapshotItem(i++)) {
|
||||
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() {
|
||||
@ -4282,7 +4282,7 @@
|
||||
container = $.el('div', {
|
||||
id: "pc" + postID,
|
||||
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);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
@ -4486,32 +4486,7 @@
|
||||
bq = $.el('blockquote', {
|
||||
textContent: data.comment
|
||||
});
|
||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, 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>';
|
||||
}
|
||||
});
|
||||
bq.innerHTML = bq.innerHTML.replace(/\n|\[\/?b\]|\[\/?spoiler\]|\[\/?code\]|\[\/?moot\]|\[\/?banned\]/g, Get.parseMarkup);
|
||||
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;
|
||||
o = {
|
||||
@ -4561,6 +4536,32 @@
|
||||
});
|
||||
Main.callbackNodes(Post, [post]);
|
||||
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',
|
||||
id: "pc#{postID}"
|
||||
className: "postContainer #{if isOP then 'op' else 'reply'}Container"
|
||||
innerHTML: \
|
||||
(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>'
|
||||
innerHTML: <%= grunt.file.read('src/General/html/Build/post.html').replace(/>\s+/g, '>').replace(/\s+</g, '<').replace(/\s+/g, ' ').trim() %>
|
||||
|
||||
for quote in $$ '.quotelink', container
|
||||
href = quote.getAttribute 'href'
|
||||
|
||||
@ -153,30 +153,7 @@ Get =
|
||||
| \[/?code\]
|
||||
| \[/?moot\]
|
||||
| \[/?banned\]
|
||||
///g, (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>'
|
||||
///g, Get.parseMarkup
|
||||
|
||||
comment = bq.innerHTML
|
||||
# greentext
|
||||
@ -228,3 +205,27 @@ Get =
|
||||
isArchived: true
|
||||
Main.callbackNodes Post, [post]
|
||||
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) ->
|
||||
root or= d.body
|
||||
# XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE === 6
|
||||
d.evaluate path, root, null, 6, null
|
||||
# XPathResult.ORDERED_NODE_SNAPSHOT_TYPE === 7
|
||||
d.evaluate path, root, null, 7, null
|
||||
|
||||
$.addClass = (el, className) ->
|
||||
el.classList.add className
|
||||
|
||||
@ -72,15 +72,16 @@ class Post
|
||||
# Preceding and following new lines.
|
||||
# Trailing spaces.
|
||||
bq = @nodes.comment.cloneNode true
|
||||
for node in $$ '.abbr, .capcodeReplies, .exif, b', bq
|
||||
$.rm node
|
||||
text = []
|
||||
# XPathResult.ORDERED_NODE_SNAPSHOT_TYPE === 7
|
||||
nodes = d.evaluate './/br|.//text()', bq, null, 7, null
|
||||
nodes = $$ '.abbr, .capcodeReplies, .exif, b', bq
|
||||
i = 0
|
||||
while i < nodes.snapshotLength
|
||||
text.push nodes.snapshotItem(i++).data or '\n'
|
||||
@info.comment = text.join('').trim().replace /\s+$/gm, ''
|
||||
while node = nodes[i++]
|
||||
$.rm node
|
||||
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: ->
|
||||
@quotes = []
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user