Some refactor here and there.
This commit is contained in:
parent
610ee5df38
commit
b38bad6c63
@ -1280,6 +1280,9 @@
|
||||
case 'ck':
|
||||
case 'lit':
|
||||
return "//fuuka.warosu.org/" + board + "/full_image/" + filename;
|
||||
case 'diy':
|
||||
case 'sci':
|
||||
return "//archive.installgentoo.net/" + board + "/full_image/" + filename;
|
||||
case 'cgl':
|
||||
case 'g':
|
||||
case 'mu':
|
||||
@ -1580,6 +1583,9 @@
|
||||
postID: postID
|
||||
};
|
||||
},
|
||||
contextFromLink: function(quotelink) {
|
||||
return Get.postFromRoot($.x('ancestor::div[parent::div[@class="thread"]][1]', quotelink));
|
||||
},
|
||||
postClone: function(board, threadID, postID, root, context) {
|
||||
var post, url;
|
||||
if (post = g.posts["" + board + "." + postID]) {
|
||||
@ -1611,7 +1617,7 @@
|
||||
return $.add(root, nodes.root);
|
||||
},
|
||||
fetchedPost: function(req, board, threadID, postID, root, context) {
|
||||
var post, posts, spoilerRange, status, thread, url, _i, _len;
|
||||
var post, posts, status, thread, url, _i, _len;
|
||||
if (post = g.posts["" + board + "." + postID]) {
|
||||
Get.insert(post, root, context);
|
||||
return;
|
||||
@ -1629,10 +1635,7 @@
|
||||
return;
|
||||
}
|
||||
posts = JSON.parse(req.response).posts;
|
||||
if (spoilerRange = posts[0].custom_spoiler) {
|
||||
Build.spoilerRange[board] = spoilerRange;
|
||||
}
|
||||
postID = +postID;
|
||||
Build.spoilerRange[board] = posts[0].custom_spoiler;
|
||||
for (_i = 0, _len = posts.length; _i < _len; _i++) {
|
||||
post = posts[_i];
|
||||
if (post.no === postID) {
|
||||
@ -1863,17 +1866,24 @@
|
||||
}
|
||||
return this.classList.toggle('inlined');
|
||||
},
|
||||
findRoot: function(quotelink, isBacklink) {
|
||||
if (isBacklink) {
|
||||
return quotelink.parentNode.parentNode;
|
||||
} else {
|
||||
return $.x('ancestor-or-self::*[parent::blockquote][1]', quotelink);
|
||||
}
|
||||
},
|
||||
add: function(quotelink, board, threadID, postID) {
|
||||
var context, inline, isBacklink, post, root;
|
||||
var context, inline, isBacklink, post;
|
||||
isBacklink = $.hasClass(quotelink, 'backlink');
|
||||
inline = $.el('div', {
|
||||
id: "i" + postID,
|
||||
className: 'inline'
|
||||
});
|
||||
root = (isBacklink = $.hasClass(quotelink, 'backlink')) ? quotelink.parentNode.parentNode : $.x('ancestor-or-self::*[parent::blockquote][1]', quotelink);
|
||||
context = Get.postFromRoot($.x('ancestor::div[parent::div[@class="thread"]][1]', quotelink));
|
||||
$.after(root, inline);
|
||||
context = Get.contextFromLink(quotelink);
|
||||
$.after(QuoteInline.findRoot(quotelink, isBacklink), inline);
|
||||
Get.postClone(board, threadID, postID, inline, context);
|
||||
if (!(board === g.BOARD.ID && $.x("ancestor::div[@id='t" + threadID + "']", quotelink))) {
|
||||
if (context.thread !== g.threads["" + board + "." + threadID]) {
|
||||
return;
|
||||
}
|
||||
post = g.posts["" + board + "." + postID];
|
||||
@ -1883,8 +1893,8 @@
|
||||
}
|
||||
},
|
||||
rm: function(quotelink, board, threadID, postID) {
|
||||
var el, inThreadID, inline, inlines, post, root, _i, _len, _ref;
|
||||
root = $.hasClass(quotelink, 'backlink') ? quotelink.parentNode.parentNode : $.x('ancestor-or-self::*[parent::blockquote][1]', quotelink);
|
||||
var context, el, inline, post, root, _i, _len, _ref, _ref1;
|
||||
root = QuoteInline.findRoot(quotelink, $.hasClass(quotelink, 'backlink'));
|
||||
root = $.x("following-sibling::div[@id='i" + postID + "'][1]", root);
|
||||
$.rm(root);
|
||||
if (!(el = root.firstElementChild)) {
|
||||
@ -1892,29 +1902,25 @@
|
||||
}
|
||||
post = g.posts["" + board + "." + postID];
|
||||
post.rmClone(el.dataset.clone);
|
||||
inThreadID = +$.x('ancestor::div[@class="thread"]', quotelink).id.slice(1);
|
||||
if (Conf['Forward Hiding'] && board === g.BOARD.ID && threadID === inThreadID && $.hasClass(quotelink, 'backlink')) {
|
||||
if (!--post.forwarded) {
|
||||
delete post.forwarded;
|
||||
$.rmClass(post.nodes.root, 'forwarded');
|
||||
}
|
||||
context = Get.contextFromLink(quotelink);
|
||||
if (Conf['Forward Hiding'] && context.thread === g.threads["" + board + "." + threadID] && $.hasClass(quotelink, 'backlink') && !--post.forwarded) {
|
||||
delete post.forwarded;
|
||||
$.rmClass(post.nodes.root, 'forwarded');
|
||||
}
|
||||
inlines = $$('.inlined', el);
|
||||
for (_i = 0, _len = inlines.length; _i < _len; _i++) {
|
||||
inline = inlines[_i];
|
||||
_ref = Get.postDataFromLink(inline), board = _ref.board, threadID = _ref.threadID, postID = _ref.postID;
|
||||
root = $.hasClass(inline, 'backlink') ? inline.parentNode.parentNode : $.x('ancestor-or-self::*[parent::blockquote][1]', inline);
|
||||
_ref = $$('.inlined', el);
|
||||
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
||||
inline = _ref[_i];
|
||||
_ref1 = Get.postDataFromLink(inline), board = _ref1.board, threadID = _ref1.threadID, postID = _ref1.postID;
|
||||
root = QuoteInline.findRoot(inline, $.hasClass(inline, 'backlink'));
|
||||
root = $.x("following-sibling::div[@id='i" + postID + "'][1]", root);
|
||||
if (!(el = root.firstElementChild)) {
|
||||
continue;
|
||||
}
|
||||
post = g.posts["" + board + "." + postID];
|
||||
post.rmClone(el.dataset.clone);
|
||||
if (Conf['Forward Hiding'] && board === g.BOARD.ID && threadID === inThreadID && $.hasClass(inline, 'backlink')) {
|
||||
if (!--post.forwarded) {
|
||||
delete post.forwarded;
|
||||
$.rmClass(post.nodes.root, 'forwarded');
|
||||
}
|
||||
if (Conf['Forward Hiding'] && context.thread === g.threads["" + board + "." + threadID] && $.hasClass(inline, 'backlink') && !--post.forwarded) {
|
||||
delete post.forwarded;
|
||||
$.rmClass(post.nodes.root, 'forwarded');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1941,7 +1947,7 @@
|
||||
}
|
||||
},
|
||||
mouseover: function(e) {
|
||||
var board, clone, context, origin, post, postID, posts, qp, quote, quoterID, threadID, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
|
||||
var board, clone, origin, post, postID, posts, qp, quote, quoterID, threadID, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2;
|
||||
if ($.hasClass(this, 'inlined')) {
|
||||
return;
|
||||
}
|
||||
@ -1950,9 +1956,8 @@
|
||||
id: 'qp',
|
||||
className: 'reply dialog'
|
||||
});
|
||||
context = Get.postFromRoot($.x('ancestor::div[parent::div[@class="thread"]][1]', this));
|
||||
$.add(d.body, qp);
|
||||
Get.postClone(board, threadID, postID, qp, context);
|
||||
Get.postClone(board, threadID, postID, qp, Get.contextFromLink(this));
|
||||
UI.hover(this, qp, 'mouseout click', QuotePreview.mouseout);
|
||||
if (!(origin = g.posts["" + board + "." + postID])) {
|
||||
return;
|
||||
@ -1984,8 +1989,7 @@
|
||||
},
|
||||
mouseout: function() {
|
||||
var clone, post, root, _i, _len, _ref;
|
||||
root = this.el.firstElementChild;
|
||||
if (!root) {
|
||||
if (!(root = this.el.firstElementChild)) {
|
||||
return;
|
||||
}
|
||||
clone = Get.postFromRoot(root);
|
||||
|
||||
@ -994,6 +994,7 @@ Main =
|
||||
|
||||
settings: ->
|
||||
alert 'Here be settings'
|
||||
|
||||
css: """
|
||||
/* general */
|
||||
.dialog.reply {
|
||||
@ -1159,6 +1160,7 @@ body.fourchan_x {
|
||||
|
||||
Redirect =
|
||||
image: (board, filename) ->
|
||||
# XXX need to differentiate between thumbnail only and full_image for img src=
|
||||
# Do not use g.BOARD, the image url can originate from a cross-quote.
|
||||
switch board
|
||||
when 'a', 'co', 'jp', 'm', 'q', 'sp', 'tg', 'tv', 'v', 'vg', 'wsg'
|
||||
@ -1167,8 +1169,8 @@ Redirect =
|
||||
"//nsfw.foolz.us/#{board}/full_image/#{filename}"
|
||||
when 'ck', 'lit'
|
||||
"//fuuka.warosu.org/#{board}/full_image/#{filename}"
|
||||
# when 'diy', 'sci'
|
||||
# "//archive.installgentoo.net/#{board}/full_image/#{filename}"
|
||||
when 'diy', 'sci'
|
||||
"//archive.installgentoo.net/#{board}/full_image/#{filename}"
|
||||
when 'cgl', 'g', 'mu', 'soc', 'w'
|
||||
"//archive.rebeccablacktech.com/#{board}/full_image/#{filename}"
|
||||
when 'an', 'fit', 'k', 'mlp', 'r9k', 'toy', 'x'
|
||||
@ -1505,6 +1507,8 @@ Get =
|
||||
threadID: threadID
|
||||
postID: postID
|
||||
}
|
||||
contextFromLink: (quotelink) ->
|
||||
Get.postFromRoot $.x 'ancestor::div[parent::div[@class="thread"]][1]', quotelink
|
||||
postClone: (board, threadID, postID, root, context) ->
|
||||
if post = g.posts["#{board}.#{postID}"]
|
||||
Get.insert post, root, context
|
||||
@ -1536,6 +1540,7 @@ Get =
|
||||
if post = g.posts["#{board}.#{postID}"]
|
||||
Get.insert post, root, context
|
||||
return
|
||||
|
||||
{status} = req
|
||||
if status isnt 200
|
||||
# The thread can die by the time we check a quote.
|
||||
@ -1552,9 +1557,7 @@ Get =
|
||||
return
|
||||
|
||||
posts = JSON.parse(req.response).posts
|
||||
if spoilerRange = posts[0].custom_spoiler
|
||||
Build.spoilerRange[board] = spoilerRange
|
||||
postID = +postID
|
||||
Build.spoilerRange[board] = posts[0].custom_spoiler
|
||||
for post in posts
|
||||
break if post.no is postID # we found it!
|
||||
if post.no > postID
|
||||
@ -1580,6 +1583,7 @@ Get =
|
||||
if post = g.posts["#{board}.#{postID}"]
|
||||
Get.insert post, root, context
|
||||
return
|
||||
|
||||
data = JSON.parse req.response
|
||||
if data.error
|
||||
$.addClass root, 'warning'
|
||||
@ -1770,21 +1774,21 @@ QuoteInline =
|
||||
QuoteInline.add @, board, threadID, postID
|
||||
@classList.toggle 'inlined'
|
||||
|
||||
findRoot: (quotelink, isBacklink) ->
|
||||
if isBacklink
|
||||
quotelink.parentNode.parentNode
|
||||
else
|
||||
$.x 'ancestor-or-self::*[parent::blockquote][1]', quotelink
|
||||
add: (quotelink, board, threadID, postID) ->
|
||||
isBacklink = $.hasClass quotelink, 'backlink'
|
||||
inline = $.el 'div',
|
||||
id: "i#{postID}"
|
||||
className: 'inline'
|
||||
|
||||
root =
|
||||
if isBacklink = $.hasClass quotelink, 'backlink'
|
||||
quotelink.parentNode.parentNode
|
||||
else
|
||||
$.x 'ancestor-or-self::*[parent::blockquote][1]', quotelink
|
||||
context = Get.postFromRoot $.x 'ancestor::div[parent::div[@class="thread"]][1]', quotelink
|
||||
$.after root, inline
|
||||
context = Get.contextFromLink quotelink
|
||||
$.after QuoteInline.findRoot(quotelink, isBacklink), inline
|
||||
Get.postClone board, threadID, postID, inline, context
|
||||
|
||||
return unless board is g.BOARD.ID and $.x "ancestor::div[@id='t#{threadID}']", quotelink
|
||||
return unless context.thread is g.threads["#{board}.#{threadID}"]
|
||||
post = g.posts["#{board}.#{postID}"]
|
||||
|
||||
# Hide forward post if it's a backlink of a post in this thread.
|
||||
@ -1801,11 +1805,7 @@ QuoteInline =
|
||||
|
||||
rm: (quotelink, board, threadID, postID) ->
|
||||
# Select the corresponding inlined quote, and remove it.
|
||||
root =
|
||||
if $.hasClass quotelink, 'backlink'
|
||||
quotelink.parentNode.parentNode
|
||||
else
|
||||
$.x 'ancestor-or-self::*[parent::blockquote][1]', quotelink
|
||||
root = QuoteInline.findRoot quotelink, $.hasClass quotelink, 'backlink'
|
||||
root = $.x "following-sibling::div[@id='i#{postID}'][1]", root
|
||||
$.rm root
|
||||
|
||||
@ -1816,38 +1816,31 @@ QuoteInline =
|
||||
post = g.posts["#{board}.#{postID}"]
|
||||
post.rmClone el.dataset.clone
|
||||
|
||||
inThreadID = +$.x('ancestor::div[@class="thread"]', quotelink).id[1..]
|
||||
context = Get.contextFromLink quotelink
|
||||
|
||||
# Decrease forward count and unhide.
|
||||
if Conf['Forward Hiding'] and
|
||||
board is g.BOARD.ID and
|
||||
threadID is inThreadID and
|
||||
$.hasClass quotelink, 'backlink'
|
||||
unless --post.forwarded
|
||||
delete post.forwarded
|
||||
$.rmClass post.nodes.root, 'forwarded'
|
||||
context.thread is g.threads["#{board}.#{threadID}"] and
|
||||
$.hasClass(quotelink, 'backlink') and
|
||||
not --post.forwarded
|
||||
delete post.forwarded
|
||||
$.rmClass post.nodes.root, 'forwarded'
|
||||
|
||||
# Repeat.
|
||||
inlines = $$ '.inlined', el
|
||||
for inline in inlines
|
||||
for inline in $$ '.inlined', el
|
||||
{board, threadID, postID} = Get.postDataFromLink inline
|
||||
root =
|
||||
if $.hasClass inline, 'backlink'
|
||||
inline.parentNode.parentNode
|
||||
else
|
||||
$.x 'ancestor-or-self::*[parent::blockquote][1]', inline
|
||||
root = QuoteInline.findRoot inline, $.hasClass inline, 'backlink'
|
||||
root = $.x "following-sibling::div[@id='i#{postID}'][1]", root
|
||||
continue unless el = root.firstElementChild
|
||||
post = g.posts["#{board}.#{postID}"]
|
||||
post.rmClone el.dataset.clone
|
||||
|
||||
if Conf['Forward Hiding'] and
|
||||
board is g.BOARD.ID and
|
||||
threadID is inThreadID and
|
||||
$.hasClass inline, 'backlink'
|
||||
unless --post.forwarded
|
||||
delete post.forwarded
|
||||
$.rmClass post.nodes.root, 'forwarded'
|
||||
context.thread is g.threads["#{board}.#{threadID}"] and
|
||||
$.hasClass(inline, 'backlink') and
|
||||
not --post.forwarded
|
||||
delete post.forwarded
|
||||
$.rmClass post.nodes.root, 'forwarded'
|
||||
return
|
||||
|
||||
QuotePreview =
|
||||
@ -1869,9 +1862,8 @@ QuotePreview =
|
||||
qp = $.el 'div',
|
||||
id: 'qp'
|
||||
className: 'reply dialog'
|
||||
context = Get.postFromRoot $.x 'ancestor::div[parent::div[@class="thread"]][1]', @
|
||||
$.add d.body, qp
|
||||
Get.postClone board, threadID, postID, qp, context
|
||||
Get.postClone board, threadID, postID, qp, Get.contextFromLink @
|
||||
|
||||
UI.hover @, qp, 'mouseout click', QuotePreview.mouseout
|
||||
|
||||
@ -1894,10 +1886,8 @@ QuotePreview =
|
||||
$.addClass quote, 'forwardlink'
|
||||
return
|
||||
mouseout: ->
|
||||
root = @el.firstElementChild
|
||||
|
||||
# Stop if it only contains text.
|
||||
return unless root
|
||||
return unless root = @el.firstElementChild
|
||||
|
||||
clone = Get.postFromRoot root
|
||||
post = clone.origin
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user