From b6df3d60fc9b914fb694dc9bc9f06439f52d243c Mon Sep 17 00:00:00 2001 From: James Campos Date: Sat, 9 Jun 2012 19:15:50 -0700 Subject: [PATCH 01/21] delete button --- 4chan_x.user.js | 29 ++++++++++++++++++++++++++++- changelog | 2 ++ script.coffee | 20 ++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 6563f2c59..358c9650c 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -72,7 +72,7 @@ */ (function() { - var $, $$, Anonymize, AutoGif, Conf, Config, ExpandComment, ExpandThread, Favicon, FileInfo, Filter, GetTitle, ImageExpand, ImageHover, Keybinds, Main, Nav, Options, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, Quotify, Redirect, ReplyHiding, ReportButton, RevealSpoilers, Sauce, StrikethroughQuotes, ThreadHiding, ThreadStats, Time, TitlePost, UI, Unread, Updater, Watcher, d, g, _base; + var $, $$, Anonymize, AutoGif, Conf, Config, DeleteButton, ExpandComment, ExpandThread, Favicon, FileInfo, Filter, GetTitle, ImageExpand, ImageHover, Keybinds, Main, Nav, Options, QR, QuoteBacklink, QuoteCT, QuoteInline, QuoteOP, QuotePreview, Quotify, Redirect, ReplyHiding, ReportButton, RevealSpoilers, Sauce, StrikethroughQuotes, ThreadHiding, ThreadStats, Time, TitlePost, UI, Unread, Updater, Watcher, d, g, _base; Config = { main: { @@ -82,6 +82,7 @@ 'Time Formatting': [true, 'Arbitrarily formatted timestamps, using your local time'], 'File Info Formatting': [true, 'Reformats the file information'], 'Report Button': [true, 'Add report buttons'], + 'Delete Button': [false, 'Add delete buttons'], 'Comment Expansion': [true, 'Expand too long comments'], 'Thread Expansion': [true, 'View all replies'], 'Index Navigation': [true, 'Navigate to previous / next thread'], @@ -3416,6 +3417,29 @@ } }; + DeleteButton = { + init: function() { + this.a = $.el('a', { + className: 'delete_button', + innerHTML: '[ X ]', + href: 'javascript:;' + }); + return Main.callbacks.push(this.node); + }, + node: function(post) { + var a; + if (!(a = $('.delete_button', post.el))) { + a = DeleteButton.a.cloneNode(true); + $.add($('.postInfo', post.el), a); + } + return $.on(a, 'click', DeleteButton["delete"]); + }, + "delete": function() { + $.x('preceding-sibling::input', this).checked = true; + return $.id('delPassword').nextElementSibling.click(); + } + }; + ReportButton = { init: function() { this.a = $.el('a', { @@ -4053,6 +4077,9 @@ if (Conf['Report Button']) { ReportButton.init(); } + if (Conf['Delete Button']) { + DeleteButton.init(); + } if (Conf['Resurrect Quotes']) { Quotify.init(); } diff --git a/changelog b/changelog index 79ba5bcfb..f8965c85f 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,6 @@ master +- aeosynth + delete button 2.31.6 - Mayhem diff --git a/script.coffee b/script.coffee index c40a271f3..a537e5f78 100644 --- a/script.coffee +++ b/script.coffee @@ -6,6 +6,7 @@ Config = 'Time Formatting': [true, 'Arbitrarily formatted timestamps, using your local time'] 'File Info Formatting': [true, 'Reformats the file information'] 'Report Button': [true, 'Add report buttons'] + 'Delete Button': [false, 'Add delete buttons'] 'Comment Expansion': [true, 'Expand too long comments'] 'Thread Expansion': [true, 'View all replies'] 'Index Navigation': [true, 'Navigate to previous / next thread'] @@ -2605,6 +2606,22 @@ Quotify = $.replace node, nodes return +DeleteButton = + init: -> + @a = $.el 'a', + className: 'delete_button' + innerHTML: '[ X ]' + href: 'javascript:;' + Main.callbacks.push @node + node: (post) -> + unless a = $ '.delete_button', post.el + a = DeleteButton.a.cloneNode true + $.add $('.postInfo', post.el), a + $.on a, 'click', DeleteButton.delete + delete: -> + $.x('preceding-sibling::input', @).checked = true + $.id('delPassword').nextElementSibling.click() + ReportButton = init: -> @a = $.el 'a', @@ -3082,6 +3099,9 @@ Main = if Conf['Report Button'] ReportButton.init() + if Conf['Delete Button'] + DeleteButton.init() + if Conf['Resurrect Quotes'] Quotify.init() From 4150ca70f93d281a94023a3bb0831812c4d8fc48 Mon Sep 17 00:00:00 2001 From: James Campos Date: Sun, 10 Jun 2012 15:07:12 -0700 Subject: [PATCH 02/21] ajax delete --- 4chan_x.user.js | 40 ++++++++++++++++++++++++++++++++++++++-- script.coffee | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 72 insertions(+), 4 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 358c9650c..285785f74 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3435,8 +3435,44 @@ return $.on(a, 'click', DeleteButton["delete"]); }, "delete": function() { - $.x('preceding-sibling::input', this).checked = true; - return $.id('delPassword').nextElementSibling.click(); + var data, id, m, pwd; + if (m = d.cookie.match(/4chan_pass=([^;]+)/)) { + pwd = decodeURIComponent(m[1]); + } else { + this.textContent = 'Error: no password found'; + return; + } + DeleteButton.el = this; + $.off(this, 'click', DeleteButton["delete"]); + this.textContent = 'Deleting...'; + id = $.x('preceding-sibling::input', this).name; + data = new FormData(); + data.append(id, 'delete'); + data.append('mode', 'usrdel'); + return $.ajax("https://sys.4chan.org/" + g.BOARD + "/imgboard.php", { + onload: DeleteButton.load, + onerror: DeleteButton.error + }, { + type: 'post', + form: data, + pwd: pwd + }); + }, + load: function() { + var doc, msg, tc; + doc = d.implementation.createHTMLDocument(''); + doc.documentElement.innerHTML = this.response; + if (doc.title === '4chan - Banned') { + tc = 'Banned!'; + } else if (msg = doc.getElementById('errmsg')) { + tc = msg.textContent; + } else { + tc = 'Deleted'; + } + return DeleteButton.el.textContent = tc; + }, + error: function() { + return DeleteButton.el.textContent = 'Error'; } }; diff --git a/script.coffee b/script.coffee index a537e5f78..3b42631c2 100644 --- a/script.coffee +++ b/script.coffee @@ -2619,8 +2619,40 @@ DeleteButton = $.add $('.postInfo', post.el), a $.on a, 'click', DeleteButton.delete delete: -> - $.x('preceding-sibling::input', @).checked = true - $.id('delPassword').nextElementSibling.click() + if m = d.cookie.match(/4chan_pass=([^;]+)/) + pwd = decodeURIComponent m[1] + else + @textContent = 'Error: no password found' + return + + DeleteButton.el = @ + $.off @, 'click', DeleteButton.delete + @textContent = 'Deleting...' + + id = $.x('preceding-sibling::input', @).name + data = new FormData() + data.append id, 'delete' + data.append 'mode', 'usrdel' + $.ajax "https://sys.4chan.org/#{g.BOARD}/imgboard.php", { + onload: DeleteButton.load + onerror: DeleteButton.error + }, { + type: 'post' + form: data + pwd: pwd + } + load: -> + doc = d.implementation.createHTMLDocument '' + doc.documentElement.innerHTML = @response + if doc.title is '4chan - Banned' # Ban/warn check + tc = 'Banned!' + else if msg = doc.getElementById 'errmsg' # error! + tc = msg.textContent + else + tc = 'Deleted' + DeleteButton.el.textContent = tc + error: -> + DeleteButton.el.textContent = 'Error' ReportButton = init: -> From 8ec03036aa252ad51a06e21288f8e391854b1ffa Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 09:36:02 -0700 Subject: [PATCH 03/21] pig disgusting × --- 4chan_x.user.js | 2 +- script.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 285785f74..a535d1901 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3421,7 +3421,7 @@ init: function() { this.a = $.el('a', { className: 'delete_button', - innerHTML: '[ X ]', + innerHTML: '[ × ]', href: 'javascript:;' }); return Main.callbacks.push(this.node); diff --git a/script.coffee b/script.coffee index 3b42631c2..b5dd13192 100644 --- a/script.coffee +++ b/script.coffee @@ -2610,7 +2610,7 @@ DeleteButton = init: -> @a = $.el 'a', className: 'delete_button' - innerHTML: '[ X ]' + innerHTML: '[ × ]' href: 'javascript:;' Main.callbacks.push @node node: (post) -> From a9d285f7174cf26de3ec3cd62770f2f7041ea035 Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 09:45:56 -0700 Subject: [PATCH 04/21] css braces --- 4chan_x.user.js | 8 +++++++- script.coffee | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index a535d1901..3eb88cc44 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3421,7 +3421,7 @@ init: function() { this.a = $.el('a', { className: 'delete_button', - innerHTML: '[ × ]', + innerHTML: '×', href: 'javascript:;' }); return Main.callbacks.push(this.node); @@ -4738,6 +4738,12 @@ div.opContainer {\ text-decoration: none;\ border-bottom: 1px dashed;\ }\ +.delete_button::before {\ + content: "[ "\ +}\ +.delete_button::after {\ + content: " ]"\ +}\ ' }; diff --git a/script.coffee b/script.coffee index b5dd13192..89a33333e 100644 --- a/script.coffee +++ b/script.coffee @@ -2610,7 +2610,7 @@ DeleteButton = init: -> @a = $.el 'a', className: 'delete_button' - innerHTML: '[ × ]' + innerHTML: '×' href: 'javascript:;' Main.callbacks.push @node node: (post) -> @@ -3696,6 +3696,12 @@ div.opContainer { text-decoration: none; border-bottom: 1px dashed; } +.delete_button::before { + content: "[ " +} +.delete_button::after { + content: " ]" +} ' Main.init() From 743b141b1ad8a81a011f0592d2766b1e244178df Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 09:55:40 -0700 Subject: [PATCH 05/21] derp, append pwd to data, not xhr options --- 4chan_x.user.js | 4 ++-- script.coffee | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 3eb88cc44..999596e97 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3449,13 +3449,13 @@ data = new FormData(); data.append(id, 'delete'); data.append('mode', 'usrdel'); + data.append('pwd', pwd); return $.ajax("https://sys.4chan.org/" + g.BOARD + "/imgboard.php", { onload: DeleteButton.load, onerror: DeleteButton.error }, { type: 'post', - form: data, - pwd: pwd + form: data }); }, load: function() { diff --git a/script.coffee b/script.coffee index 89a33333e..04288cbf4 100644 --- a/script.coffee +++ b/script.coffee @@ -2633,13 +2633,13 @@ DeleteButton = data = new FormData() data.append id, 'delete' data.append 'mode', 'usrdel' + data.append 'pwd', pwd $.ajax "https://sys.4chan.org/#{g.BOARD}/imgboard.php", { onload: DeleteButton.load onerror: DeleteButton.error }, { type: 'post' form: data - pwd: pwd } load: -> doc = d.implementation.createHTMLDocument '' From 23672d022fcbb4ad1ae9ccdf980a40f2bd88be09 Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 10:07:14 -0700 Subject: [PATCH 06/21] unicode nbsp --- 4chan_x.user.js | 5 +++-- script.coffee | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 999596e97..83e6ab431 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -4738,11 +4738,12 @@ div.opContainer {\ text-decoration: none;\ border-bottom: 1px dashed;\ }\ +/* \u00A0 is nbsp */\ .delete_button::before {\ - content: "[ "\ + content: "[\u00A0"\ }\ .delete_button::after {\ - content: " ]"\ + content: "\u00A0]"\ }\ ' }; diff --git a/script.coffee b/script.coffee index 04288cbf4..805dbf77f 100644 --- a/script.coffee +++ b/script.coffee @@ -3696,11 +3696,12 @@ div.opContainer { text-decoration: none; border-bottom: 1px dashed; } +/* \u00A0 is nbsp */ .delete_button::before { - content: "[ " + content: "[\u00A0" } .delete_button::after { - content: " ]" + content: "\u00A0]" } ' From 91efc92fe11bd789719dd3662f9e4c7f059f9608 Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 10:27:10 -0700 Subject: [PATCH 07/21] self --- 4chan_x.user.js | 11 +++++++---- script.coffee | 8 +++++--- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 83e6ab431..2e76f00c9 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3435,7 +3435,7 @@ return $.on(a, 'click', DeleteButton["delete"]); }, "delete": function() { - var data, id, m, pwd; + var data, id, m, pwd, self; if (m = d.cookie.match(/4chan_pass=([^;]+)/)) { pwd = decodeURIComponent(m[1]); } else { @@ -3445,20 +3445,23 @@ DeleteButton.el = this; $.off(this, 'click', DeleteButton["delete"]); this.textContent = 'Deleting...'; + self = this; id = $.x('preceding-sibling::input', this).name; data = new FormData(); data.append(id, 'delete'); data.append('mode', 'usrdel'); data.append('pwd', pwd); return $.ajax("https://sys.4chan.org/" + g.BOARD + "/imgboard.php", { - onload: DeleteButton.load, + onload: function() { + return DeleteButton.load(self); + }, onerror: DeleteButton.error }, { type: 'post', form: data }); }, - load: function() { + load: function(self) { var doc, msg, tc; doc = d.implementation.createHTMLDocument(''); doc.documentElement.innerHTML = this.response; @@ -3469,7 +3472,7 @@ } else { tc = 'Deleted'; } - return DeleteButton.el.textContent = tc; + return self.textContent = tc; }, error: function() { return DeleteButton.el.textContent = 'Error'; diff --git a/script.coffee b/script.coffee index 805dbf77f..368417e70 100644 --- a/script.coffee +++ b/script.coffee @@ -2629,19 +2629,21 @@ DeleteButton = $.off @, 'click', DeleteButton.delete @textContent = 'Deleting...' + self = this + id = $.x('preceding-sibling::input', @).name data = new FormData() data.append id, 'delete' data.append 'mode', 'usrdel' data.append 'pwd', pwd $.ajax "https://sys.4chan.org/#{g.BOARD}/imgboard.php", { - onload: DeleteButton.load + onload: -> DeleteButton.load self onerror: DeleteButton.error }, { type: 'post' form: data } - load: -> + load: (self) -> doc = d.implementation.createHTMLDocument '' doc.documentElement.innerHTML = @response if doc.title is '4chan - Banned' # Ban/warn check @@ -2650,7 +2652,7 @@ DeleteButton = tc = msg.textContent else tc = 'Deleted' - DeleteButton.el.textContent = tc + self.textContent = tc error: -> DeleteButton.el.textContent = 'Error' From 82743a39dc5e54b9c5472e99edfcab7bcba7468f Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 10:29:25 -0700 Subject: [PATCH 08/21] derp --- 4chan_x.user.js | 11 ++++++----- script.coffee | 12 +++++------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 2e76f00c9..acd016ecf 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3442,20 +3442,21 @@ this.textContent = 'Error: no password found'; return; } - DeleteButton.el = this; $.off(this, 'click', DeleteButton["delete"]); this.textContent = 'Deleting...'; - self = this; id = $.x('preceding-sibling::input', this).name; data = new FormData(); data.append(id, 'delete'); data.append('mode', 'usrdel'); data.append('pwd', pwd); + self = this; return $.ajax("https://sys.4chan.org/" + g.BOARD + "/imgboard.php", { onload: function() { return DeleteButton.load(self); }, - onerror: DeleteButton.error + onerror: function() { + return DeleteButton.error(self); + } }, { type: 'post', form: data @@ -3474,8 +3475,8 @@ } return self.textContent = tc; }, - error: function() { - return DeleteButton.el.textContent = 'Error'; + error: function(self) { + return self.textContent = 'Error'; } }; diff --git a/script.coffee b/script.coffee index 368417e70..9b2cd4d7e 100644 --- a/script.coffee +++ b/script.coffee @@ -2625,20 +2625,18 @@ DeleteButton = @textContent = 'Error: no password found' return - DeleteButton.el = @ $.off @, 'click', DeleteButton.delete @textContent = 'Deleting...' - self = this - id = $.x('preceding-sibling::input', @).name data = new FormData() data.append id, 'delete' data.append 'mode', 'usrdel' data.append 'pwd', pwd + self = this $.ajax "https://sys.4chan.org/#{g.BOARD}/imgboard.php", { - onload: -> DeleteButton.load self - onerror: DeleteButton.error + onload: -> DeleteButton.load self + onerror: -> DeleteButton.error self }, { type: 'post' form: data @@ -2653,8 +2651,8 @@ DeleteButton = else tc = 'Deleted' self.textContent = tc - error: -> - DeleteButton.el.textContent = 'Error' + error: (self) -> + self.textContent = 'Error' ReportButton = init: -> From c47e058e7c7a347da33a2443f9b7b74f2d8290dc Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 10:32:27 -0700 Subject: [PATCH 09/21] derp --- 4chan_x.user.js | 6 +++--- script.coffee | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index acd016ecf..25a89f79e 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3452,7 +3452,7 @@ self = this; return $.ajax("https://sys.4chan.org/" + g.BOARD + "/imgboard.php", { onload: function() { - return DeleteButton.load(self); + return DeleteButton.load(self, this.response); }, onerror: function() { return DeleteButton.error(self); @@ -3462,10 +3462,10 @@ form: data }); }, - load: function(self) { + load: function(self, html) { var doc, msg, tc; doc = d.implementation.createHTMLDocument(''); - doc.documentElement.innerHTML = this.response; + doc.documentElement.innerHTML = html; if (doc.title === '4chan - Banned') { tc = 'Banned!'; } else if (msg = doc.getElementById('errmsg')) { diff --git a/script.coffee b/script.coffee index 9b2cd4d7e..98767c132 100644 --- a/script.coffee +++ b/script.coffee @@ -2635,15 +2635,15 @@ DeleteButton = data.append 'pwd', pwd self = this $.ajax "https://sys.4chan.org/#{g.BOARD}/imgboard.php", { - onload: -> DeleteButton.load self + onload: -> DeleteButton.load self, @response onerror: -> DeleteButton.error self }, { type: 'post' form: data } - load: (self) -> + load: (self, html) -> doc = d.implementation.createHTMLDocument '' - doc.documentElement.innerHTML = @response + doc.documentElement.innerHTML = html if doc.title is '4chan - Banned' # Ban/warn check tc = 'Banned!' else if msg = doc.getElementById 'errmsg' # error! From 0af6c74e709f6d08268437c15ac588bd713a398b Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 10:48:23 -0700 Subject: [PATCH 10/21] no u --- 4chan_x.user.js | 4 ++-- script.coffee | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 25a89f79e..e35f484b5 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -4744,10 +4744,10 @@ div.opContainer {\ }\ /* \u00A0 is nbsp */\ .delete_button::before {\ - content: "[\u00A0"\ + content: "[\\00a0"\ }\ .delete_button::after {\ - content: "\u00A0]"\ + content: "\\00a0]"\ }\ ' }; diff --git a/script.coffee b/script.coffee index 98767c132..f2b0ab77d 100644 --- a/script.coffee +++ b/script.coffee @@ -3698,10 +3698,10 @@ div.opContainer { } /* \u00A0 is nbsp */ .delete_button::before { - content: "[\u00A0" + content: "[\\00a0" } .delete_button::after { - content: "\u00A0]" + content: "\\00a0]" } ' From b0e001415425cfad3eb96e569bdc70f11ccac9fe Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 11:12:45 -0700 Subject: [PATCH 11/21] update comment --- 4chan_x.user.js | 2 +- script.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index e35f484b5..d9fee1ed5 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -4742,7 +4742,7 @@ div.opContainer {\ text-decoration: none;\ border-bottom: 1px dashed;\ }\ -/* \u00A0 is nbsp */\ +/* \\00A0 is nbsp */\ .delete_button::before {\ content: "[\\00a0"\ }\ diff --git a/script.coffee b/script.coffee index f2b0ab77d..eedd97457 100644 --- a/script.coffee +++ b/script.coffee @@ -3696,7 +3696,7 @@ div.opContainer { text-decoration: none; border-bottom: 1px dashed; } -/* \u00A0 is nbsp */ +/* \\00A0 is nbsp */ .delete_button::before { content: "[\\00a0" } From bd5616ebdb4b93365a68e13a2117721c59140044 Mon Sep 17 00:00:00 2001 From: James Campos Date: Tue, 12 Jun 2012 12:14:09 -0700 Subject: [PATCH 12/21] work on cross quote, shuffle --- 4chan_x.user.js | 14 +++++++------- script.coffee | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index d9fee1ed5..39d667293 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3435,22 +3435,22 @@ return $.on(a, 'click', DeleteButton["delete"]); }, "delete": function() { - var data, id, m, pwd, self; + var board, data, id, m, pwd, self; + $.off(this, 'click', DeleteButton["delete"]); + this.textContent = 'Deleting...'; if (m = d.cookie.match(/4chan_pass=([^;]+)/)) { pwd = decodeURIComponent(m[1]); } else { - this.textContent = 'Error: no password found'; - return; + pwd = $.id('delPassword').value; } - $.off(this, 'click', DeleteButton["delete"]); - this.textContent = 'Deleting...'; id = $.x('preceding-sibling::input', this).name; + board = $.x('preceding-sibling::span[1]/a', this).pathname.match(/\w+/)[0]; + self = this; data = new FormData(); data.append(id, 'delete'); data.append('mode', 'usrdel'); data.append('pwd', pwd); - self = this; - return $.ajax("https://sys.4chan.org/" + g.BOARD + "/imgboard.php", { + return $.ajax("https://sys.4chan.org/" + board + "/imgboard.php", { onload: function() { return DeleteButton.load(self, this.response); }, diff --git a/script.coffee b/script.coffee index eedd97457..ecd530c7c 100644 --- a/script.coffee +++ b/script.coffee @@ -2619,28 +2619,30 @@ DeleteButton = $.add $('.postInfo', post.el), a $.on a, 'click', DeleteButton.delete delete: -> - if m = d.cookie.match(/4chan_pass=([^;]+)/) - pwd = decodeURIComponent m[1] - else - @textContent = 'Error: no password found' - return - $.off @, 'click', DeleteButton.delete @textContent = 'Deleting...' + if m = d.cookie.match(/4chan_pass=([^;]+)/) + pwd = decodeURIComponent m[1] + else + pwd = $.id('delPassword').value id = $.x('preceding-sibling::input', @).name + board = $.x('preceding-sibling::span[1]/a', @).pathname.match(/\w+/)[0] + self = this + data = new FormData() data.append id, 'delete' data.append 'mode', 'usrdel' data.append 'pwd', pwd - self = this - $.ajax "https://sys.4chan.org/#{g.BOARD}/imgboard.php", { + + $.ajax "https://sys.4chan.org/#{board}/imgboard.php", { onload: -> DeleteButton.load self, @response onerror: -> DeleteButton.error self }, { type: 'post' form: data } + load: (self, html) -> doc = d.implementation.createHTMLDocument '' doc.documentElement.innerHTML = html From 3efe11ae322ea4e29eaa57557a532709a1e33798 Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 05:59:01 -0700 Subject: [PATCH 13/21] rm redundant parens --- script.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script.coffee b/script.coffee index ecd530c7c..b8f1b1b89 100644 --- a/script.coffee +++ b/script.coffee @@ -2622,7 +2622,7 @@ DeleteButton = $.off @, 'click', DeleteButton.delete @textContent = 'Deleting...' - if m = d.cookie.match(/4chan_pass=([^;]+)/) + if m = d.cookie.match /4chan_pass=([^;]+)/ pwd = decodeURIComponent m[1] else pwd = $.id('delPassword').value From e18120acd2eecba84573e23d17e2226d2a43fdd2 Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 06:01:18 -0700 Subject: [PATCH 14/21] readd listener on connection error --- 4chan_x.user.js | 3 ++- script.coffee | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 39d667293..2ead934f9 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3476,7 +3476,8 @@ return self.textContent = tc; }, error: function(self) { - return self.textContent = 'Error'; + self.textContent = 'Error'; + return $.on('click', self, DeleteButton["delete"]); } }; diff --git a/script.coffee b/script.coffee index b8f1b1b89..24f45f327 100644 --- a/script.coffee +++ b/script.coffee @@ -2655,6 +2655,7 @@ DeleteButton = self.textContent = tc error: (self) -> self.textContent = 'Error' + $.on 'click', self, DeleteButton.delete ReportButton = init: -> From d7781ec3fd11a6270dcd69d56f81af37eb6ec488 Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 06:03:17 -0700 Subject: [PATCH 15/21] data -> form --- 4chan_x.user.js | 12 ++++++------ script.coffee | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 2ead934f9..763518aa8 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3435,7 +3435,7 @@ return $.on(a, 'click', DeleteButton["delete"]); }, "delete": function() { - var board, data, id, m, pwd, self; + var board, form, id, m, pwd, self; $.off(this, 'click', DeleteButton["delete"]); this.textContent = 'Deleting...'; if (m = d.cookie.match(/4chan_pass=([^;]+)/)) { @@ -3446,10 +3446,10 @@ id = $.x('preceding-sibling::input', this).name; board = $.x('preceding-sibling::span[1]/a', this).pathname.match(/\w+/)[0]; self = this; - data = new FormData(); - data.append(id, 'delete'); - data.append('mode', 'usrdel'); - data.append('pwd', pwd); + form = new FormData(); + form.append(id, 'delete'); + form.append('mode', 'usrdel'); + form.append('pwd', pwd); return $.ajax("https://sys.4chan.org/" + board + "/imgboard.php", { onload: function() { return DeleteButton.load(self, this.response); @@ -3459,7 +3459,7 @@ } }, { type: 'post', - form: data + form: form }); }, load: function(self, html) { diff --git a/script.coffee b/script.coffee index 24f45f327..70570a838 100644 --- a/script.coffee +++ b/script.coffee @@ -2630,17 +2630,17 @@ DeleteButton = board = $.x('preceding-sibling::span[1]/a', @).pathname.match(/\w+/)[0] self = this - data = new FormData() - data.append id, 'delete' - data.append 'mode', 'usrdel' - data.append 'pwd', pwd + form = new FormData() + form.append id, 'delete' + form.append 'mode', 'usrdel' + form.append 'pwd', pwd $.ajax "https://sys.4chan.org/#{board}/imgboard.php", { onload: -> DeleteButton.load self, @response onerror: -> DeleteButton.error self }, { type: 'post' - form: data + form: form } load: (self, html) -> From c383397b197e340e50a793357b50810c1d62f498 Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 06:17:35 -0700 Subject: [PATCH 16/21] use $.formData --- 4chan_x.user.js | 12 +++++++----- script.coffee | 9 +++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 644a451a1..22a70660c 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3437,7 +3437,7 @@ return $.on(a, 'click', DeleteButton["delete"]); }, "delete": function() { - var board, form, id, m, pwd, self; + var board, form, id, m, o, pwd, self; $.off(this, 'click', DeleteButton["delete"]); this.textContent = 'Deleting...'; if (m = d.cookie.match(/4chan_pass=([^;]+)/)) { @@ -3448,10 +3448,12 @@ id = $.x('preceding-sibling::input', this).name; board = $.x('preceding-sibling::span[1]/a', this).pathname.match(/\w+/)[0]; self = this; - form = new FormData(); - form.append(id, 'delete'); - form.append('mode', 'usrdel'); - form.append('pwd', pwd); + o = { + mode: 'usrdel', + pwd: pwd + }; + o[id] = 'delete'; + form = $.formData(o); return $.ajax("https://sys.4chan.org/" + board + "/imgboard.php", { onload: function() { return DeleteButton.load(self, this.response); diff --git a/script.coffee b/script.coffee index c847e28c6..5f101d162 100644 --- a/script.coffee +++ b/script.coffee @@ -2634,10 +2634,11 @@ DeleteButton = board = $.x('preceding-sibling::span[1]/a', @).pathname.match(/\w+/)[0] self = this - form = new FormData() - form.append id, 'delete' - form.append 'mode', 'usrdel' - form.append 'pwd', pwd + o = + mode: 'usrdel' + pwd: pwd + o[id] = 'delete' + form = $.formData o $.ajax "https://sys.4chan.org/#{board}/imgboard.php", { onload: -> DeleteButton.load self, @response From eb33a23e6789dc737a2dd83aec666df26d114cb0 Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 06:31:56 -0700 Subject: [PATCH 17/21] connection error --- 4chan_x.user.js | 4 ++-- script.coffee | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 22a70660c..bd8d78050 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3480,8 +3480,8 @@ return self.textContent = tc; }, error: function(self) { - self.textContent = 'Error'; - return $.on('click', self, DeleteButton["delete"]); + self.textContent = 'Connection error, retrying...'; + return DeleteButton["delete"].call(self); } }; diff --git a/script.coffee b/script.coffee index 5f101d162..8cbace1d4 100644 --- a/script.coffee +++ b/script.coffee @@ -2659,8 +2659,8 @@ DeleteButton = tc = 'Deleted' self.textContent = tc error: (self) -> - self.textContent = 'Error' - $.on 'click', self, DeleteButton.delete + self.textContent = 'Connection error, retrying...' + DeleteButton.delete.call self ReportButton = init: -> From 0392164a4cd290ed46a158c036c892dfc4adad0d Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 06:44:44 -0700 Subject: [PATCH 18/21] don't automate that which could be automated --- 4chan_x.user.js | 4 ++-- script.coffee | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index bd8d78050..5065f390a 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3480,8 +3480,8 @@ return self.textContent = tc; }, error: function(self) { - self.textContent = 'Connection error, retrying...'; - return DeleteButton["delete"].call(self); + self.textContent = 'Connection error, please retry.'; + return $.on(self, 'click', DeleteButton["delete"]); } }; diff --git a/script.coffee b/script.coffee index 8cbace1d4..489d3b121 100644 --- a/script.coffee +++ b/script.coffee @@ -2659,8 +2659,8 @@ DeleteButton = tc = 'Deleted' self.textContent = tc error: (self) -> - self.textContent = 'Connection error, retrying...' - DeleteButton.delete.call self + self.textContent = 'Connection error, please retry.' + $.on self, 'click', DeleteButton.delete ReportButton = init: -> From fed053152174548e360644c4672639cb9912937a Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 06:57:43 -0700 Subject: [PATCH 19/21] $.on if error --- 4chan_x.user.js | 1 + script.coffee | 1 + 2 files changed, 2 insertions(+) diff --git a/4chan_x.user.js b/4chan_x.user.js index 5065f390a..9e8ecabd2 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3474,6 +3474,7 @@ tc = 'Banned!'; } else if (msg = doc.getElementById('errmsg')) { tc = msg.textContent; + $.on(self, 'click', DeleteButton["delete"]); } else { tc = 'Deleted'; } diff --git a/script.coffee b/script.coffee index 489d3b121..111337bde 100644 --- a/script.coffee +++ b/script.coffee @@ -2655,6 +2655,7 @@ DeleteButton = tc = 'Banned!' else if msg = doc.getElementById 'errmsg' # error! tc = msg.textContent + $.on self, 'click', DeleteButton.delete else tc = 'Deleted' self.textContent = tc From b6c0f54393f34670466101405ad6c151df1930ed Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 07:27:03 -0700 Subject: [PATCH 20/21] rm css content --- 4chan_x.user.js | 21 +++++++-------------- script.coffee | 19 ++++++------------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 9e8ecabd2..94402b5fd 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3423,7 +3423,7 @@ init: function() { this.a = $.el('a', { className: 'delete_button', - innerHTML: '×', + innerHTML: '[ × ]', href: 'javascript:;' }); return Main.callbacks.push(this.node); @@ -3467,21 +3467,21 @@ }); }, load: function(self, html) { - var doc, msg, tc; + var doc, msg, s; doc = d.implementation.createHTMLDocument(''); doc.documentElement.innerHTML = html; if (doc.title === '4chan - Banned') { - tc = 'Banned!'; + s = 'Banned!'; } else if (msg = doc.getElementById('errmsg')) { - tc = msg.textContent; + s = msg.textContent; $.on(self, 'click', DeleteButton["delete"]); } else { - tc = 'Deleted'; + s = 'Deleted'; } - return self.textContent = tc; + return self.innerHTML = "[ " + s + " ]"; }, error: function(self) { - self.textContent = 'Connection error, please retry.'; + self.innerHTML = '[ Connection error, please retry. ]'; return $.on(self, 'click', DeleteButton["delete"]); } }; @@ -4748,13 +4748,6 @@ div.opContainer {\ text-decoration: none;\ border-bottom: 1px dashed;\ }\ -/* \\00A0 is nbsp */\ -.delete_button::before {\ - content: "[\\00a0"\ -}\ -.delete_button::after {\ - content: "\\00a0]"\ -}\ ' }; diff --git a/script.coffee b/script.coffee index 111337bde..973de3032 100644 --- a/script.coffee +++ b/script.coffee @@ -2614,7 +2614,7 @@ DeleteButton = init: -> @a = $.el 'a', className: 'delete_button' - innerHTML: '×' + innerHTML: '[ × ]' href: 'javascript:;' Main.callbacks.push @node node: (post) -> @@ -2652,15 +2652,15 @@ DeleteButton = doc = d.implementation.createHTMLDocument '' doc.documentElement.innerHTML = html if doc.title is '4chan - Banned' # Ban/warn check - tc = 'Banned!' + s = 'Banned!' else if msg = doc.getElementById 'errmsg' # error! - tc = msg.textContent + s = msg.textContent $.on self, 'click', DeleteButton.delete else - tc = 'Deleted' - self.textContent = tc + s = 'Deleted' + self.innerHTML = "[ #{s} ]" error: (self) -> - self.textContent = 'Connection error, please retry.' + self.innerHTML = '[ Connection error, please retry. ]' $.on self, 'click', DeleteButton.delete ReportButton = @@ -3705,13 +3705,6 @@ div.opContainer { text-decoration: none; border-bottom: 1px dashed; } -/* \\00A0 is nbsp */ -.delete_button::before { - content: "[\\00a0" -} -.delete_button::after { - content: "\\00a0]" -} ' Main.init() From 9594c9372225aa58adc8389ad24184b4ed33e9ee Mon Sep 17 00:00:00 2001 From: James Campos Date: Wed, 13 Jun 2012 07:28:45 -0700 Subject: [PATCH 21/21] type: 'post' is redundant now --- 4chan_x.user.js | 1 - script.coffee | 1 - 2 files changed, 2 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 94402b5fd..5b9d807a7 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -3462,7 +3462,6 @@ return DeleteButton.error(self); } }, { - type: 'post', form: form }); }, diff --git a/script.coffee b/script.coffee index 973de3032..ae692854d 100644 --- a/script.coffee +++ b/script.coffee @@ -2644,7 +2644,6 @@ DeleteButton = onload: -> DeleteButton.load self, @response onerror: -> DeleteButton.error self }, { - type: 'post' form: form }