diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 5274289fc..b9e7014aa 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -4335,21 +4335,22 @@ }); }, node: function() { - var data, embedder, i, len, node, range, snapshot, _i, _j, _len, _len1, _ref, _ref1; + var data, el, i, items, node, range, snapshot, _i, _len, _ref; - if (this.isClone && Conf['Embedding']) { - _ref = $$('.embedder', this.nodes.comment); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - embedder = _ref[_i]; - $.on(embedder, "click", Linkify.cb.toggle); + if (this.isClone) { + if (Conf['Embedding']) { + i = 0; + items = $$('.embedded', this.nodes.comment); + while (el = items[i++]) { + $.on(el, "click", Linkify.cb.toggle); + Linkify.cb.toggle.call(el); + } } return; } snapshot = $.X('.//text()', this.nodes.comment); - i = -1; - len = snapshot.snapshotLength; - while (++i < len) { - node = snapshot.snapshotItem(i); + i = 0; + while (node = snapshot.snapshotItem(i++)) { if (node.parentElement.nodeName === "A") { continue; } @@ -4362,9 +4363,9 @@ if (!(Conf['Embedding'] || Conf['Link Title'])) { return; } - _ref1 = this.nodes.links; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - range = _ref1[_j]; + _ref = this.nodes.links; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + range = _ref[_i]; if (data = Linkify.services(range)) { if (Conf['Embedding']) { Linkify.embed(data); @@ -4473,6 +4474,9 @@ $.addClass(link, "" + embed.dataset.key); $.on(embed, 'click', Linkify.cb.toggle); $.after(link, [$.tn(' '), embed]); + if (Conf['Auto-embed']) { + Linkify.cb.toggle.call(embed); + } }, title: function(data) { var err, key, link, options, service, title, titles, uid; @@ -4508,11 +4512,10 @@ }, cb: { toggle: function() { - var el, embed; + var string, _ref; - embed = this.previousElementSibling; - el = !this.className.contains("embedded") ? Linkify.cb.embed(this) : Linkify.cb.unembed(this); - $.replace(embed, el); + _ref = $.hasClass(this, "embedded") ? ['unembed', '(embed)'] : ['embed', '(unembed)'], string = _ref[0], this.textContent = _ref[1]; + $.replace(this.previousElementSibling, Linkify.cb[string](this)); return $.toggleClass(this, 'embedded'); }, embed: function(a) { @@ -4520,7 +4523,6 @@ el = (type = Linkify.types[a.dataset.key]).el.call(a); el.style.cssText = (style = type.style) ? style : "border: 0; width: 640px; height: 390px"; - a.textContent = '(unembed)'; return el; }, unembed: function(a) { @@ -4533,7 +4535,6 @@ href: a.dataset.href, innerHTML: a.dataset.title || a.dataset.nodedata }); - a.textContent = '(embed)'; $.addClass(el, a.dataset.key); return el; }, diff --git a/builds/crx/script.js b/builds/crx/script.js index d2295bea6..c74ca4489 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -4340,21 +4340,22 @@ }); }, node: function() { - var data, embedder, i, len, node, range, snapshot, _i, _j, _len, _len1, _ref, _ref1; + var data, el, i, items, node, range, snapshot, _i, _len, _ref; - if (this.isClone && Conf['Embedding']) { - _ref = $$('.embedder', this.nodes.comment); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - embedder = _ref[_i]; - $.on(embedder, "click", Linkify.cb.toggle); + if (this.isClone) { + if (Conf['Embedding']) { + i = 0; + items = $$('.embedded', this.nodes.comment); + while (el = items[i++]) { + $.on(el, "click", Linkify.cb.toggle); + Linkify.cb.toggle.call(el); + } } return; } snapshot = $.X('.//text()', this.nodes.comment); - i = -1; - len = snapshot.snapshotLength; - while (++i < len) { - node = snapshot.snapshotItem(i); + i = 0; + while (node = snapshot.snapshotItem(i++)) { if (node.parentElement.nodeName === "A") { continue; } @@ -4367,9 +4368,9 @@ if (!(Conf['Embedding'] || Conf['Link Title'])) { return; } - _ref1 = this.nodes.links; - for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { - range = _ref1[_j]; + _ref = this.nodes.links; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + range = _ref[_i]; if (data = Linkify.services(range)) { if (Conf['Embedding']) { Linkify.embed(data); @@ -4478,6 +4479,9 @@ $.addClass(link, "" + embed.dataset.key); $.on(embed, 'click', Linkify.cb.toggle); $.after(link, [$.tn(' '), embed]); + if (Conf['Auto-embed']) { + Linkify.cb.toggle.call(embed); + } }, title: function(data) { var err, key, link, options, service, title, titles, uid; @@ -4513,11 +4517,10 @@ }, cb: { toggle: function() { - var el, embed; + var string, _ref; - embed = this.previousElementSibling; - el = !this.className.contains("embedded") ? Linkify.cb.embed(this) : Linkify.cb.unembed(this); - $.replace(embed, el); + _ref = $.hasClass(this, "embedded") ? ['unembed', '(embed)'] : ['embed', '(unembed)'], string = _ref[0], this.textContent = _ref[1]; + $.replace(this.previousElementSibling, Linkify.cb[string](this)); return $.toggleClass(this, 'embedded'); }, embed: function(a) { @@ -4525,7 +4528,6 @@ el = (type = Linkify.types[a.dataset.key]).el.call(a); el.style.cssText = (style = type.style) ? style : "border: 0; width: 640px; height: 390px"; - a.textContent = '(unembed)'; return el; }, unembed: function(a) { @@ -4538,7 +4540,6 @@ href: a.dataset.href, innerHTML: a.dataset.title || a.dataset.nodedata }); - a.textContent = '(embed)'; $.addClass(el, a.dataset.key); return el; }, diff --git a/src/Linkification/Linkify.coffee b/src/Linkification/Linkify.coffee index 25742786e..9f4a7eaf2 100644 --- a/src/Linkification/Linkify.coffee +++ b/src/Linkification/Linkify.coffee @@ -33,20 +33,22 @@ Linkify = cb: @node node: -> - if @isClone and Conf['Embedding'] - for embedder in $$ '.embedder', @nodes.comment - $.on embedder, "click", Linkify.cb.toggle + if @isClone + if Conf['Embedding'] + i = 0 + items = $$ '.embedded', @nodes.comment + while el = items[i++] + $.on el, "click", Linkify.cb.toggle + Linkify.cb.toggle.call el + return snapshot = $.X './/text()', @nodes.comment - i = -1 - len = snapshot.snapshotLength + i = 0 + while node = snapshot.snapshotItem i++ - while ++i < len - node = snapshot.snapshotItem i - continue if node.parentElement.nodeName is "A" - + data = node.data if Linkify.regString.test data @@ -146,13 +148,17 @@ Linkify = for name, value of {key, href, uid, options} embed.dataset[name] = value - + embed.dataset.nodedata = link.innerHTML $.addClass link, "#{embed.dataset.key}" $.on embed, 'click', Linkify.cb.toggle $.after link, [$.tn(' '), embed] + + if Conf['Auto-embed'] + Linkify.cb.toggle.call embed + return title: (data) -> @@ -179,16 +185,11 @@ Linkify = cb: toggle: -> - # We setup the link to be replaced by the embedded video - embed = @previousElementSibling - - # Unembed. - el = unless @className.contains "embedded" - Linkify.cb.embed @ + [string, @textContent] = if $.hasClass @, "embedded" + ['unembed', '(embed)'] else - Linkify.cb.unembed @ - - $.replace embed, el + ['embed', '(unembed)'] + $.replace @previousElementSibling, Linkify.cb[string] @ $.toggleClass @, 'embedded' embed: (a) -> @@ -201,8 +202,6 @@ Linkify = else "border: 0; width: 640px; height: 390px" - a.textContent = '(unembed)' - return el unembed: (a) -> @@ -214,7 +213,6 @@ Linkify = href: a.dataset.href innerHTML: a.dataset.title or a.dataset.nodedata - a.textContent = '(embed)' $.addClass el, a.dataset.key return el