Merge branch 'v3' of git://github.com/MayhemYDG/4chan-x into v3
Conflicts: json/archives.json src/General/Main.coffee
This commit is contained in:
commit
0ac6747810
@ -984,33 +984,30 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseQuotes = function() {
|
Post.prototype.parseQuotes = function() {
|
||||||
var hash, pathname, quotelink, quotes, _i, _len, _ref;
|
var quotelink, _i, _len, _ref;
|
||||||
|
|
||||||
quotes = {};
|
this.quotes = [];
|
||||||
_ref = $$('.quotelink', this.nodes.comment);
|
_ref = $$('.quotelink', this.nodes.comment);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
quotelink = _ref[_i];
|
quotelink = _ref[_i];
|
||||||
hash = quotelink.hash;
|
this.parseQuote(quotelink);
|
||||||
if (!hash) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pathname = quotelink.pathname;
|
|
||||||
if (/catalog$/.test(pathname)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (quotelink.hostname !== 'boards.4chan.org') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
this.nodes.quotelinks.push(quotelink);
|
|
||||||
if (!this.isReply && $.hasClass(quotelink.parentNode.parentNode, 'capcodeReplies')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
quotes["" + (pathname.split('/')[1]) + "." + hash.slice(2)] = true;
|
|
||||||
}
|
}
|
||||||
if (this.isClone) {
|
};
|
||||||
|
|
||||||
|
Post.prototype.parseQuote = function(quotelink) {
|
||||||
|
var fullID, match;
|
||||||
|
|
||||||
|
if (!(match = quotelink.href.match(/boards\.4chan\.org\/([^\/]+)\/res\/\d+#p(\d+)$/))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.quotes = Object.keys(quotes);
|
this.nodes.quotelinks.push(quotelink);
|
||||||
|
if (this.isClone || !this.isReply && $.hasClass(quotelink.parentNode.parentNode, 'capcodeReplies')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fullID = "" + match[1] + "." + match[2];
|
||||||
|
if (this.quotes.indexOf(fullID) === -1) {
|
||||||
|
return this.quotes.push(fullID);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseFile = function(that) {
|
Post.prototype.parseFile = function(that) {
|
||||||
|
|||||||
@ -990,33 +990,30 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseQuotes = function() {
|
Post.prototype.parseQuotes = function() {
|
||||||
var hash, pathname, quotelink, quotes, _i, _len, _ref;
|
var quotelink, _i, _len, _ref;
|
||||||
|
|
||||||
quotes = {};
|
this.quotes = [];
|
||||||
_ref = $$('.quotelink', this.nodes.comment);
|
_ref = $$('.quotelink', this.nodes.comment);
|
||||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||||
quotelink = _ref[_i];
|
quotelink = _ref[_i];
|
||||||
hash = quotelink.hash;
|
this.parseQuote(quotelink);
|
||||||
if (!hash) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
pathname = quotelink.pathname;
|
|
||||||
if (/catalog$/.test(pathname)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (quotelink.hostname !== 'boards.4chan.org') {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
this.nodes.quotelinks.push(quotelink);
|
|
||||||
if (!this.isReply && $.hasClass(quotelink.parentNode.parentNode, 'capcodeReplies')) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
quotes["" + (pathname.split('/')[1]) + "." + hash.slice(2)] = true;
|
|
||||||
}
|
}
|
||||||
if (this.isClone) {
|
};
|
||||||
|
|
||||||
|
Post.prototype.parseQuote = function(quotelink) {
|
||||||
|
var fullID, match;
|
||||||
|
|
||||||
|
if (!(match = quotelink.href.match(/boards\.4chan\.org\/([^\/]+)\/res\/\d+#p(\d+)$/))) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return this.quotes = Object.keys(quotes);
|
this.nodes.quotelinks.push(quotelink);
|
||||||
|
if (this.isClone || !this.isReply && $.hasClass(quotelink.parentNode.parentNode, 'capcodeReplies')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fullID = "" + match[1] + "." + match[2];
|
||||||
|
if (this.quotes.indexOf(fullID) === -1) {
|
||||||
|
return this.quotes.push(fullID);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Post.prototype.parseFile = function(that) {
|
Post.prototype.parseFile = function(that) {
|
||||||
|
|||||||
@ -1,3 +0,0 @@
|
|||||||
<div class="move" title="Post count / File count / Page count">
|
|
||||||
<span id="post-count">...</span> / <span id="file-count">...</span> / <span id="page-count">...</span>
|
|
||||||
</div>
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
<div>
|
|
||||||
<input type="checkbox" id="autohide" title="Auto-hide">
|
|
||||||
<select data-name="thread" title="Create a new thread / Reply">
|
|
||||||
<option value="new">New thread</option>
|
|
||||||
</select>
|
|
||||||
<span class="move"></span>
|
|
||||||
<a href="javascript:;" class="close" title="Close">×</a>
|
|
||||||
</div>
|
|
||||||
<form>
|
|
||||||
<div class="persona">
|
|
||||||
<input type="button" id="dump-button" title="Dump list" value="+">
|
|
||||||
<input data-name="name" list="list-name" placeholder="Name" class="field" size="1">
|
|
||||||
<input data-name="email" list="list-email" placeholder="E-mail" class="field" size="1">
|
|
||||||
<input data-name="sub" list="list-sub" placeholder="Subject" class="field" size="1">
|
|
||||||
</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="textarea">
|
|
||||||
<textarea data-name="com" placeholder="Comment" class="field"></textarea>
|
|
||||||
<span id="char-count"></span>
|
|
||||||
</div>
|
|
||||||
<div id="file-n-submit">
|
|
||||||
<input type="submit">
|
|
||||||
<input type="button" id="qr-file-button" value="Choose files">
|
|
||||||
<span id="qr-filename-container">
|
|
||||||
<span id="qr-no-file">No selected file</span>
|
|
||||||
<span id="qr-filename"></span>
|
|
||||||
</span>
|
|
||||||
<a id="qr-filerm" href="javascript:;" title="Remove file">×</a>
|
|
||||||
<input type="checkbox" id="qr-file-spoiler" title="Spoiler image">
|
|
||||||
</div>
|
|
||||||
<input type="file" multiple hidden>
|
|
||||||
</form>
|
|
||||||
<datalist id="list-name"></datalist>
|
|
||||||
<datalist id="list-email"></datalist>
|
|
||||||
<datalist id="list-sub"></datalist>
|
|
||||||
@ -83,29 +83,34 @@ class Post
|
|||||||
@info.comment = text.join('').trim().replace /\s+$/gm, ''
|
@info.comment = text.join('').trim().replace /\s+$/gm, ''
|
||||||
|
|
||||||
parseQuotes: ->
|
parseQuotes: ->
|
||||||
quotes = {}
|
@quotes = []
|
||||||
for quotelink in $$ '.quotelink', @nodes.comment
|
for quotelink in $$ '.quotelink', @nodes.comment
|
||||||
# Don't add board links. (>>>/b/)
|
@parseQuote quotelink
|
||||||
{hash} = quotelink
|
return
|
||||||
continue unless hash
|
|
||||||
|
parseQuote: (quotelink) ->
|
||||||
|
# Only add quotes that link to posts on an imageboard.
|
||||||
|
# Don't add:
|
||||||
|
# - board links. (>>>/b/)
|
||||||
|
# - catalog links. (>>>/b/catalog or >>>/b/search)
|
||||||
|
# - rules links. (>>>/a/rules)
|
||||||
|
# - text-board quotelinks. (>>>/img/1234)
|
||||||
|
return unless match = quotelink.href.match ///
|
||||||
|
boards\.4chan\.org/
|
||||||
|
([^/]+) # boardID
|
||||||
|
/res/\d+#p
|
||||||
|
(\d+) # postID
|
||||||
|
$
|
||||||
|
///
|
||||||
|
|
||||||
# Don't add catalog links. (>>>/b/catalog or >>>/b/search)
|
@nodes.quotelinks.push quotelink
|
||||||
{pathname} = quotelink
|
|
||||||
continue if /catalog$/.test pathname
|
|
||||||
|
|
||||||
# Don't add rules links. (>>>/a/rules)
|
# Don't count capcode replies as quotes in OPs. (Admin/Mod/Dev Replies: ...)
|
||||||
# Don't add text-board quotelinks. (>>>/img/1234)
|
return if @isClone or !@isReply and $.hasClass quotelink.parentNode.parentNode, 'capcodeReplies'
|
||||||
continue if quotelink.hostname isnt 'boards.4chan.org'
|
|
||||||
|
# ES6 Set when?
|
||||||
@nodes.quotelinks.push quotelink
|
fullID = "#{match[1]}.#{match[2]}"
|
||||||
|
@quotes.push fullID if @quotes.indexOf(fullID) is -1
|
||||||
# Don't count capcode replies as quotes in OPs. (Admin/Mod/Dev Replies: ...)
|
|
||||||
continue if !@isReply and $.hasClass quotelink.parentNode.parentNode, 'capcodeReplies'
|
|
||||||
|
|
||||||
# Basically, only add quotes that link to posts on an imageboard.
|
|
||||||
quotes["#{pathname.split('/')[1]}.#{hash[2..]}"] = true
|
|
||||||
return if @isClone
|
|
||||||
@quotes = Object.keys quotes
|
|
||||||
|
|
||||||
parseFile: (that) ->
|
parseFile: (that) ->
|
||||||
return unless (fileEl = $ '.file', @nodes.post) and thumb = $ 'img[data-md5]', fileEl
|
return unless (fileEl = $ '.file', @nodes.post) and thumb = $ 'img[data-md5]', fileEl
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user