From d4f06f2b300b5eb2d8d329fd25fc51f5fc4fd85a Mon Sep 17 00:00:00 2001 From: Johnny Date: Wed, 7 May 2014 16:44:16 +1000 Subject: [PATCH 01/29] Remove prefixed box-sizing Firefox 29 (current version) supports the un-prefixed version of the property --- css/style.css | 6 ------ 1 file changed, 6 deletions(-) diff --git a/css/style.css b/css/style.css index 545a7422b..c6e7ad1b4 100644 --- a/css/style.css +++ b/css/style.css @@ -8,7 +8,6 @@ .field { background-color: #FFF; border: 1px solid #CCC; - -moz-box-sizing: border-box; box-sizing: border-box; color: #333; font-family: inherit; @@ -235,7 +234,6 @@ body > .desktop:not(hr):not(.navLinks):not(#boardNavDesktop):not(#boardNavDeskto position: absolute; } .message { - -moz-box-sizing: border-box; box-sizing: border-box; padding: 6px 20px; max-height: 200px; @@ -245,7 +243,6 @@ body > .desktop:not(hr):not(.navLinks):not(#boardNavDesktop):not(#boardNavDeskto /* Settings */ :root.fourchan-x body { - -moz-box-sizing: border-box; box-sizing: border-box; } #overlay { @@ -258,7 +255,6 @@ body > .desktop:not(hr):not(.navLinks):not(#boardNavDesktop):not(#boardNavDeskto width: 100%; } #fourchanx-settings { - -moz-box-sizing: border-box; box-sizing: border-box; box-shadow: 0 0 15px rgba(0, 0, 0, .15); height: 600px; @@ -682,7 +678,6 @@ a.hide-announcement { clear: both; } #ihover { - -moz-box-sizing: border-box; box-sizing: border-box; max-height: 100%; max-width: 75%; @@ -824,7 +819,6 @@ a.hide-announcement { border: 1px solid #808080; color: #FFF !important; font-size: 12px; - -moz-box-sizing: border-box; box-sizing: border-box; cursor: move; display: inline-block; From 1243176115b74ffac954ae7ccc14d0dd88f51a90 Mon Sep 17 00:00:00 2001 From: fgts Date: Mon, 12 May 2014 12:14:42 +0100 Subject: [PATCH 02/29] fgts now archiving /b/ oh boy, here we go --- json/archives.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archives.json b/json/archives.json index 5cb05f54c..2203b2e86 100644 --- a/json/archives.json +++ b/json/archives.json @@ -95,7 +95,7 @@ "http": true, "https": true, "software": "foolfuuka", - "boards": ["asp", "cm", "h", "hc", "hm", "n", "p", "r", "s", "soc", "y"], + "boards": ["asp", "b", "cm", "h", "hc", "hm", "n", "p", "r", "s", "soc", "y"], "files": ["asp", "cm", "h", "hc", "hm", "n", "p", "r", "s", "soc", "y"] }, { "uid": 16, From a4d10ae04646a35eb9f825d76c8ee396ce5251f6 Mon Sep 17 00:00:00 2001 From: Alexander Schittler Date: Wed, 14 May 2014 18:07:45 +0200 Subject: [PATCH 03/29] We now have a dedicated domain for the archive. --- json/archives.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/archives.json b/json/archives.json index 2203b2e86..18d5a2d2f 100644 --- a/json/archives.json +++ b/json/archives.json @@ -127,8 +127,8 @@ "files": ["a", "biz", "d", "diy", "gd", "jp", "m", "s4s", "sci", "tg", "u", "vg", "vp", "vr", "wsg"] }, { "uid": 19, - "name": "Innovandalism Archive", - "domain": "boards.innovandalism.eu", + "name": "Deniable Plausibility", + "domain": "boards.deniableplausibility.net", "http": true, "https": false, "software": "foolfuuka", From b07ca491488fe53e0c48df4d8d9c4d7b320f1cfd Mon Sep 17 00:00:00 2001 From: Alexander Schittler Date: Wed, 14 May 2014 18:20:12 +0200 Subject: [PATCH 04/29] Added /v/ files --- json/archives.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archives.json b/json/archives.json index 18d5a2d2f..e81101797 100644 --- a/json/archives.json +++ b/json/archives.json @@ -133,5 +133,5 @@ "https": false, "software": "foolfuuka", "boards": ["v"], - "files": [] + "files": ["v"] }] From 434143f1fdcd7f2c58e5a4a62e1a7cbc5f869fcb Mon Sep 17 00:00:00 2001 From: Alexander Schittler Date: Fri, 16 May 2014 12:45:35 +0200 Subject: [PATCH 05/29] Added /g/ --- json/archives.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/archives.json b/json/archives.json index e81101797..a3eb31eea 100644 --- a/json/archives.json +++ b/json/archives.json @@ -132,6 +132,6 @@ "http": true, "https": false, "software": "foolfuuka", - "boards": ["v"], - "files": ["v"] + "boards": ["v", "g"], + "files": ["v", "g"] }] From 6c8636ff8a0fab5717f031d899cf1823f8a72e25 Mon Sep 17 00:00:00 2001 From: fgts Date: Mon, 19 May 2014 12:17:47 +0100 Subject: [PATCH 06/29] remove /b/ --- json/archives.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archives.json b/json/archives.json index a3eb31eea..48087fb79 100644 --- a/json/archives.json +++ b/json/archives.json @@ -95,7 +95,7 @@ "http": true, "https": true, "software": "foolfuuka", - "boards": ["asp", "b", "cm", "h", "hc", "hm", "n", "p", "r", "s", "soc", "y"], + "boards": ["asp", "cm", "h", "hc", "hm", "n", "p", "r", "s", "soc", "y"], "files": ["asp", "cm", "h", "hc", "hm", "n", "p", "r", "s", "soc", "y"] }, { "uid": 16, From 889a297ee5327c5ea845b75e4313869692942855 Mon Sep 17 00:00:00 2001 From: Damon Gant Date: Mon, 19 May 2014 22:21:29 +0200 Subject: [PATCH 07/29] Added /v/ --- json/archives.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/archives.json b/json/archives.json index 48087fb79..21de7caf6 100644 --- a/json/archives.json +++ b/json/archives.json @@ -132,6 +132,6 @@ "http": true, "https": false, "software": "foolfuuka", - "boards": ["v", "g"], - "files": ["v", "g"] + "boards": ["v", "vg", "g"], + "files": ["v", "vg", "g"] }] From 517c0621cf70281c0fcddb794c81c19f35c9678e Mon Sep 17 00:00:00 2001 From: fgts Date: Mon, 26 May 2014 13:36:28 +0100 Subject: [PATCH 08/29] fgts.eu --> fgts.jp --- json/archives.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archives.json b/json/archives.json index 21de7caf6..24ee6f516 100644 --- a/json/archives.json +++ b/json/archives.json @@ -91,7 +91,7 @@ }, { "uid": 15, "name": "fgts", - "domain": "fgts.eu", + "domain": "fgts.jp", "http": true, "https": true, "software": "foolfuuka", From be4e2d8447a82bb10258ad2b580788deb0958e22 Mon Sep 17 00:00:00 2001 From: Noble pleb Date: Fri, 30 May 2014 23:44:08 +0300 Subject: [PATCH 09/29] flash archive merged with the rest of 4plebs --- json/archives.json | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/json/archives.json b/json/archives.json index 24ee6f516..99956ffa2 100644 --- a/json/archives.json +++ b/json/archives.json @@ -32,17 +32,8 @@ "http": true, "https": true, "software": "foolfuuka", - "boards": ["adv", "hr", "o", "pol", "s4s", "tg", "trv", "tv", "x"], - "files": ["adv", "hr", "o", "pol", "s4s", "tg", "trv", "tv", "x"] -}, { - "uid": 18, - "name": "4plebs Flash Archive", - "domain": "flash.4plebs.org", - "http": true, - "https": true, - "software": "foolfuuka", - "boards": ["f"], - "files": ["f"] + "boards": ["adv", "f", "hr", "o", "pol", "s4s", "tg", "trv", "tv", "x"], + "files": ["adv", "f", "hr", "o", "pol", "s4s", "tg", "trv", "tv", "x"] }, { "uid": 4, "name": "Nyafuu", From c56de4396c11d5683c5f5f6595c7afbef4bd2f32 Mon Sep 17 00:00:00 2001 From: Blade Date: Sun, 1 Jun 2014 19:27:36 -0400 Subject: [PATCH 10/29] k k --- json/archives.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/json/archives.json b/json/archives.json index 99956ffa2..b3d02a8f3 100644 --- a/json/archives.json +++ b/json/archives.json @@ -43,15 +43,6 @@ "software": "foolfuuka", "boards": ["c", "e", "w", "wg"], "files": ["c", "e", "w", "wg"] -}, { - "uid": 5, - "name": "Love is Over", - "domain": "archive.loveisover.me", - "http": true, - "https": true, - "software": "foolfuuka", - "boards": ["d", "i", "lgbt"], - "files": ["d", "i", "lgbt"] }, { "uid": 8, "name": "Rebecca Black Tech", From 139490a59d9a1948ee538391e5fd28b32770cf76 Mon Sep 17 00:00:00 2001 From: Blade Date: Mon, 2 Jun 2014 03:42:49 -0400 Subject: [PATCH 11/29] Update archives.json --- json/archives.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/json/archives.json b/json/archives.json index b3d02a8f3..99956ffa2 100644 --- a/json/archives.json +++ b/json/archives.json @@ -43,6 +43,15 @@ "software": "foolfuuka", "boards": ["c", "e", "w", "wg"], "files": ["c", "e", "w", "wg"] +}, { + "uid": 5, + "name": "Love is Over", + "domain": "archive.loveisover.me", + "http": true, + "https": true, + "software": "foolfuuka", + "boards": ["d", "i", "lgbt"], + "files": ["d", "i", "lgbt"] }, { "uid": 8, "name": "Rebecca Black Tech", From d243e060798efe2a8a50ea96000d5e119e3b9126 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 01:25:04 +0200 Subject: [PATCH 12/29] Update deps. --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4dcd6f16f..831240297 100644 --- a/package.json +++ b/package.json @@ -21,18 +21,18 @@ } }, "devDependencies": { - "font-awesome": "~4.0.3", - "grunt": "~0.4.4", - "grunt-bump": "~0.0.13", + "font-awesome": "~4.1.0", + "grunt": "~0.4.5", + "grunt-bump": "~0.0.14", "grunt-concurrent": "~0.5.0", "grunt-contrib-clean": "~0.5.0", "grunt-contrib-coffee": "~0.10.1", - "grunt-contrib-compress": "~0.8.0", + "grunt-contrib-compress": "~0.9.1", "grunt-contrib-concat": "~0.4.0", "grunt-contrib-copy": "~0.5.0", "grunt-contrib-watch": "~0.6.1", "grunt-shell": "~0.7.0", - "load-grunt-tasks": "~0.4.0" + "load-grunt-tasks": "~0.5.0" }, "repository": { "type": "git", From 3e23d567adcc0990e71f1aeb88161db9774b21fd Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 01:36:19 +0200 Subject: [PATCH 13/29] Fix #1675. --- CHANGELOG.md | 2 ++ src/Posting/QR.captcha.coffee | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2274cface..bb6c5657f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +- The QR won't duplicate single-word captchas anymore if you've input numbers only (like a street address). + ### 3.20.13 - *2014-05-09* - [Security fix](https://github.com/MayhemYDG/4chan-x/issues/1634). diff --git a/src/Posting/QR.captcha.coffee b/src/Posting/QR.captcha.coffee index 8ecd95300..29d6e5822 100644 --- a/src/Posting/QR.captcha.coffee +++ b/src/Posting/QR.captcha.coffee @@ -61,9 +61,10 @@ QR.captcha = getOne: -> challenge = @nodes.img.alt response = @nodes.input.value.trim() - if response and !/\s/.test response + if response and !/\s|^\d+$/.test response # one-word-captcha: # If there's only one word, duplicate it. + # If it's a number (street address), don't duplicate it. response = "#{response} #{response}" {challenge, response} load: -> From 4c17333f53d20862c2bcc9df71c7106e43672b62 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 01:42:45 +0200 Subject: [PATCH 14/29] Fix #1669. --- src/Miscellaneous/Keybinds.coffee | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Miscellaneous/Keybinds.coffee b/src/Miscellaneous/Keybinds.coffee index 51a5e1e6b..1c6c0d70d 100644 --- a/src/Miscellaneous/Keybinds.coffee +++ b/src/Miscellaneous/Keybinds.coffee @@ -101,16 +101,19 @@ Keybinds = Index.cycleSortType() # Thread Navigation when Conf['Next thread'] - return if g.VIEW isnt 'index' + return if g.VIEW isnt 'index' or Conf['Index Mode'] is 'catalog' Nav.scroll +1 when Conf['Previous thread'] - return if g.VIEW isnt 'index' + return if g.VIEW isnt 'index' or Conf['Index Mode'] is 'catalog' Nav.scroll -1 when Conf['Expand thread'] + return if g.VIEW isnt 'index' or Conf['Index Mode'] is 'catalog' ExpandThread.toggle thread when Conf['Open thread'] + return if g.VIEW isnt 'index' or Conf['Index Mode'] is 'catalog' Keybinds.open thread when Conf['Open thread tab'] + return if g.VIEW isnt 'index' or Conf['Index Mode'] is 'catalog' Keybinds.open thread, true # Reply Navigation when Conf['Next reply'] From 2d4499380ed0225b8d1bf5fa8361bcc3e3070dd7 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 01:44:00 +0200 Subject: [PATCH 15/29] Remove `Remember Subject` config. --- src/General/Config.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/src/General/Config.coffee b/src/General/Config.coffee index 67d4a9890..8211083fc 100644 --- a/src/General/Config.coffee +++ b/src/General/Config.coffee @@ -53,7 +53,6 @@ Config = <% if (type === 'userscript') { %> 'Remember QR Size': [false, 'Remember the size of the Quick reply.'] <% } %> - 'Remember Subject': [false, 'Remember the subject field, instead of resetting after posting.'] 'Remember Spoiler': [false, 'Remember the spoiler state, instead of resetting after posting.'] 'Hide Original Post Form': [true, 'Hide the normal post form.'] 'Cooldown': [true, 'Indicate the remaining time before posting again.'] From a2d0f1ed96588edc1acb8937dade48a21bd7137e Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 01:52:19 +0200 Subject: [PATCH 16/29] Don't try to refresh the index on /f/. #1662 --- src/General/Index.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/General/Index.coffee b/src/General/Index.coffee index ebc0fdc43..1d06c85ce 100644 --- a/src/General/Index.coffee +++ b/src/General/Index.coffee @@ -295,7 +295,7 @@ Index = onSameIndex = g.VIEW is 'index' and a.pathname.split('/')[1] is g.BOARD.ID needChange = Index.cb.indexNav a, onSameIndex # Do nav if this isn't a simple click, or different board. - return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or !onSameIndex + return if e.shiftKey or e.altKey or e.ctrlKey or e.metaKey or !onSameIndex or g.BOARD.ID is 'f' e.preventDefault() Index.update() unless needChange indexNav: (a, onSameIndex) -> From cc4ff57993fec2e1a632f9cb4e9efe18b2035511 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 01:55:41 +0200 Subject: [PATCH 17/29] Don't double number captchas when reporting too. --- src/Miscellaneous/Report.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Miscellaneous/Report.coffee b/src/Miscellaneous/Report.coffee index af505998d..bffa57429 100644 --- a/src/Miscellaneous/Report.coffee +++ b/src/Miscellaneous/Report.coffee @@ -9,5 +9,5 @@ Report = $.on $('form'), 'submit', (e) -> e.preventDefault() response = field.value.trim() - field.value = "#{response} #{response}" unless /\s/.test response + field.value = "#{response} #{response}" unless /\s|^\d+$/.test response @submit() From 42729c4a476b1bdf235d104a8797ba9f9084d6fa Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 02:09:14 +0200 Subject: [PATCH 18/29] Disable Download Link. Close #1646 --- CHANGELOG.md | 1 + src/General/Config.coffee | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb6c5657f..37791637f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ - The QR won't duplicate single-word captchas anymore if you've input numbers only (like a street address). +- Removed the `Download Link` feature on Chrome/Opera as it is not working as intended anymore. ### 3.20.13 - *2014-05-09* diff --git a/src/General/Config.coffee b/src/General/Config.coffee index 8211083fc..99ed6f955 100644 --- a/src/General/Config.coffee +++ b/src/General/Config.coffee @@ -30,7 +30,7 @@ Config = 'Report Link': [true, 'Add a report link to the menu.'] 'Post Hiding Link': [true, 'Add a link to hide threads and replies.'] 'Delete Link': [true, 'Add post and image deletion links to the menu.'] - <% if (type === 'crx') { %> + <% if (false) { %> 'Download Link': [true, 'Add a download with original filename link to the menu.'] <% } %> 'Archive Link': [true, 'Add an archive link to the menu.'] From f6bf39e4c3c36f7cfd4fe9200c718ebc035d414d Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 02:28:53 +0200 Subject: [PATCH 19/29] Bring back proper box model for the catalog. Effectively reverts: - 3bc3aabc05347945fb1497e9f2e724e008436d03 - eb26a09ce575b75f53d7c5477aee9ecfe37a9b04 --- css/style.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/css/style.css b/css/style.css index a651c9a5a..ab1ceca49 100644 --- a/css/style.css +++ b/css/style.css @@ -396,16 +396,16 @@ body > .desktop:not(hr):not(.navLinks):not(#boardNavDesktop):not(#boardNavDeskto text-decoration: none; } .catalog-mode .board { - text-align: center; + display: flex; + flex-wrap: wrap; + justify-content: center; } .catalog-thread { display: inline-flex; - text-align: left; flex-direction: column; align-items: center; margin: 0 2px 5px; word-break: break-word; - vertical-align: top; } .catalog-small .catalog-thread { width: 165px; From 62ca05ac8683142f84ced7b7a55469f6f09f712c Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 02:30:39 +0200 Subject: [PATCH 20/29] Release 4chan X v3.20.14. --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37791637f..75aa966df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +### 3.20.14 - *2014-06-13* + - The QR won't duplicate single-word captchas anymore if you've input numbers only (like a street address). - Removed the `Download Link` feature on Chrome/Opera as it is not working as intended anymore. diff --git a/package.json b/package.json index 831240297..d1eee7d34 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "4chan-X", - "version": "3.20.13", + "version": "3.20.14", "description": "Cross-browser extension for productive lurking on 4chan.", "meta": { "name": "4chan X", From 1e37f287dabe178fb632d4bc47bef6b59b87196c Mon Sep 17 00:00:00 2001 From: hotdogman Date: Fri, 13 Jun 2014 03:28:33 -0500 Subject: [PATCH 21/29] Remove /g/ from Deniable Plausibility Deniable Plausibility stopped archiving /g/, they instead redirect to archive.installgentoo.com now --- json/archives.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/json/archives.json b/json/archives.json index 99956ffa2..6893cf861 100644 --- a/json/archives.json +++ b/json/archives.json @@ -123,6 +123,6 @@ "http": true, "https": false, "software": "foolfuuka", - "boards": ["v", "vg", "g"], - "files": ["v", "vg", "g"] + "boards": ["v", "vg"], + "files": ["v", "vg"] }] From 6d8501e84296decc757841c87a8a2302c246de90 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 13 Jun 2014 13:48:28 +0200 Subject: [PATCH 22/29] Update archives.json fuuka.warosu.org -> warosu.org chan.installgentoo.com is kill Move Deniable Plausibility before Foolz Beta. --- json/archives.json | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/json/archives.json b/json/archives.json index 6893cf861..0c1447348 100644 --- a/json/archives.json +++ b/json/archives.json @@ -73,7 +73,7 @@ }, { "uid": 10, "name": "warosu", - "domain": "fuuka.warosu.org", + "domain": "warosu.org", "http": false, "https": true, "software": "fuuka", @@ -98,14 +98,14 @@ "boards": ["t"], "files": ["t"] }, { - "uid": 17, - "name": "installgentoo.com", - "domain": "chan.installgentoo.com", + "uid": 19, + "name": "Deniable Plausibility", + "domain": "boards.deniableplausibility.net", "http": true, "https": false, "software": "foolfuuka", - "boards": ["g", "t"], - "files": ["g", "t"] + "boards": ["v", "vg"], + "files": ["v", "vg"] }, { "uid": 13, "name": "Foolz Beta", @@ -116,13 +116,4 @@ "software": "foolfuuka", "boards": ["a", "biz", "co", "d", "diy", "gd", "jp", "m", "s4s", "sci", "sp", "tg", "tv", "u", "vg", "vp", "vr", "wsg"], "files": ["a", "biz", "d", "diy", "gd", "jp", "m", "s4s", "sci", "tg", "u", "vg", "vp", "vr", "wsg"] -}, { - "uid": 19, - "name": "Deniable Plausibility", - "domain": "boards.deniableplausibility.net", - "http": true, - "https": false, - "software": "foolfuuka", - "boards": ["v", "vg"], - "files": ["v", "vg"] }] From 07dac05a4d3b54dd12c4c5ca18d652e6d8672d2e Mon Sep 17 00:00:00 2001 From: Enzo Moretti Date: Sat, 14 Jun 2014 20:41:08 +0200 Subject: [PATCH 23/29] Merging Dark Cave in Foolz, enabling /co/ in Foolz --- json/archives.json | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/json/archives.json b/json/archives.json index 0c1447348..afba23971 100644 --- a/json/archives.json +++ b/json/archives.json @@ -5,8 +5,8 @@ "http": true, "https": true, "software": "foolfuuka", - "boards": ["a", "biz", "co", "diy", "gd", "jp", "m", "sci", "sp", "tg", "tv", "vg", "vp", "vr", "wsg"], - "files": ["a", "biz", "gd", "diy", "jp", "m", "sci", "tg", "vg", "vp", "vr", "wsg"] + "boards": ["a", "biz", "c", "co", "diy", "gd", "int", "jp", "m", "out", "po", "sci", "sp", "tg", "tv", "vg", "vp", "vr", "wsg"], + "files": ["a", "biz", "c", "co", "diy", "gd", "jp", "m", "po", "sci", "tg", "vg", "vp", "vr", "wsg"] }, { "uid": 1, "name": "NSFW Foolz", @@ -16,15 +16,6 @@ "software": "foolfuuka", "boards": ["u"], "files": ["u"] -}, { - "uid": 2, - "name": "The Dark Cave", - "domain": "archive.thedarkcave.org", - "http": true, - "https": true, - "software": "foolfuuka", - "boards": ["c", "int", "out", "po"], - "files": ["c", "po"] }, { "uid": 3, "name": "4plebs Archive", @@ -114,6 +105,6 @@ "https": true, "withCredentials": true, "software": "foolfuuka", - "boards": ["a", "biz", "co", "d", "diy", "gd", "jp", "m", "s4s", "sci", "sp", "tg", "tv", "u", "vg", "vp", "vr", "wsg"], - "files": ["a", "biz", "d", "diy", "gd", "jp", "m", "s4s", "sci", "tg", "u", "vg", "vp", "vr", "wsg"] + "boards": ["a", "biz", "c", "co", "d", "diy", "gd", "int", "jp", "m", "out", "po", "s4s", "sci", "sp", "tg", "tv", "u", "vg", "vp", "vr", "wsg"], + "files": ["a", "biz", "c", "co", "d", "diy", "gd","jp", "m", "po", "s4s", "sci", "tg", "u", "vg", "vp", "vr", "wsg"] }] From e8eca6c9196bb7419f8f9e6f7de3638e53ca2e0c Mon Sep 17 00:00:00 2001 From: Mayhem Date: Sun, 15 Jun 2014 13:57:12 +0200 Subject: [PATCH 24/29] Close #1682 --- json/archives.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archives.json b/json/archives.json index afba23971..77c7feaca 100644 --- a/json/archives.json +++ b/json/archives.json @@ -60,7 +60,7 @@ "https": false, "software": "fuuka", "boards": ["an", "fit", "k", "mlp", "r9k", "toy"], - "files": ["an", "fit", "k", "r9k", "toy"] + "files": ["an", "fit", "k", "mlp", "r9k", "toy"] }, { "uid": 10, "name": "warosu", From ace1dc878c4ae5d31904cd6875abfcd546fd60c3 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Tue, 17 Jun 2014 17:38:23 +0200 Subject: [PATCH 25/29] rebeccablacktech has HSTS enabled. Close #1683 --- json/archives.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/json/archives.json b/json/archives.json index 77c7feaca..0ef718f8e 100644 --- a/json/archives.json +++ b/json/archives.json @@ -47,7 +47,7 @@ "uid": 8, "name": "Rebecca Black Tech", "domain": "archive.rebeccablacktech.com", - "http": true, + "http": false, "https": true, "software": "fuuka", "boards": ["cgl", "g", "mu", "w"], From 41c22af15fa032eb8ed14f763670b2b90134e0fa Mon Sep 17 00:00:00 2001 From: Mayhem Date: Thu, 19 Jun 2014 04:34:37 +0200 Subject: [PATCH 26/29] GM2 incoming! --- CHANGELOG.md | 2 ++ lib/$.coffee | 4 ++++ src/Filtering/Filter.coffee | 3 +-- src/Filtering/PostHiding.coffee | 9 +++------ src/General/Header.coffee | 8 +++----- src/General/Index.coffee | 7 ++----- src/General/Main.coffee | 15 --------------- src/General/Settings.coffee | 8 ++------ src/General/UI.coffee | 8 ++------ src/Images/ImageExpand.coffee | 3 +-- src/Menu/ArchiveLink.coffee | 3 +-- src/Menu/DeleteLink.coffee | 3 +-- src/Menu/DownloadLink.coffee | 3 +-- src/Menu/Labels.coffee | 3 +-- src/Menu/Menu.coffee | 2 +- src/Menu/ReportLink.coffee | 3 +-- src/Miscellaneous/Fourchan.coffee | 4 ++-- src/Miscellaneous/PSAHiding.coffee | 3 +-- src/Monitoring/ThreadUpdater.coffee | 11 ++--------- src/Monitoring/ThreadWatcher.coffee | 22 ++++++++-------------- src/Monitoring/Unread.coffee | 2 +- src/Posting/QR.coffee | 19 +++++-------------- src/Posting/QR.post.coffee | 1 - 23 files changed, 45 insertions(+), 101 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75aa966df..e375ded80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +- Compatibility fixes for Greasemonkey v2. + ### 3.20.14 - *2014-06-13* - The QR won't duplicate single-word captchas anymore if you've input numbers only (like a street address). diff --git a/lib/$.coffee b/lib/$.coffee index 74cb1fda6..0fc1e4d1b 100644 --- a/lib/$.coffee +++ b/lib/$.coffee @@ -136,6 +136,10 @@ $.off = (el, events, handler) -> el.removeEventListener event, handler, false return $.event = (event, detail, root=d) -> + <% if (type === 'userscript') { %> + if detail? and typeof cloneInto is 'function' + detail = cloneInto detail, d.defaultView + <% } %> root.dispatchEvent new CustomEvent event, {bubbles: true, detail} <% if (type === 'userscript') { %> $.open = GM_openInTab diff --git a/src/Filtering/Filter.coffee b/src/Filtering/Filter.coffee index dd3cdbad9..81567c43b 100644 --- a/src/Filtering/Filter.coffee +++ b/src/Filtering/Filter.coffee @@ -167,7 +167,6 @@ Filter = textContent: 'Filter' entry = - type: 'post' el: div order: 50 open: (post) -> @@ -192,7 +191,7 @@ Filter = # Add a sub entry for each filter type. entry.subEntries.push Filter.menu.createSubEntry type[0], type[1] - $.event 'AddMenuEntry', entry + Menu.menu.addEntry entry createSubEntry: (text, type) -> el = $.el 'a', diff --git a/src/Filtering/PostHiding.coffee b/src/Filtering/PostHiding.coffee index 47afc0a12..a25539792 100644 --- a/src/Filtering/PostHiding.coffee +++ b/src/Filtering/PostHiding.coffee @@ -87,8 +87,7 @@ PostHiding = makeStub = el: $.el 'label', innerHTML: " Make stub" - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: $.el 'div', textContent: 'Hide post' className: 'hide-post-link' @@ -116,8 +115,7 @@ PostHiding = @el.firstChild.checked = if 'hideRecursively' of data then data.hideRecursively else Conf['Recursive Hiding'] true - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: $.el 'div', textContent: 'Unhide post' className: 'show-post-link' @@ -131,8 +129,7 @@ PostHiding = subEntries: [apply, thisPost, replies] return if g.VIEW isnt 'index' - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: $.el 'a', href: 'javascript:;' order: 20 open: (post) -> diff --git a/src/General/Header.coffee b/src/General/Header.coffee index e6d6d09db..0a142a77c 100644 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -8,7 +8,7 @@ Header = @hitzone = $ '#header-bar-hitzone', @bar @noticesRoot = $ '#notifications', headerEl - @menu = new UI.Menu 'header' + @menu = new UI.Menu() menuButton = $.el 'a', className: 'menu-button' innerHTML: '' @@ -61,8 +61,7 @@ Header = $.sync 'Top Board List', @setTopBoardList $.sync 'Bottom Board List', @setBotBoardList - $.event 'AddMenuEntry', - type: 'header' + @menu.addEntry el: $.el 'span', textContent: 'Header' order: 105 subEntries: [ @@ -313,9 +312,8 @@ Header = Header.menu.toggle e, @, g createNotification: (e) -> - {type, content, lifetime, cb} = e.detail + {type, content, lifetime} = e.detail notice = new Notice type, content, lifetime - cb notice if cb areNotificationsEnabled: false enableDesktopNotifications: -> diff --git a/src/General/Index.coffee b/src/General/Index.coffee index 1d06c85ce..cdddd24d9 100644 --- a/src/General/Index.coffee +++ b/src/General/Index.coffee @@ -53,8 +53,7 @@ Index = when 'Show Replies' $.on input, 'change', @cb.replies - $.event 'AddMenuEntry', - type: 'header' + Header.menu.addEntry el: $.el 'span', textContent: 'Index Navigation' order: 90 @@ -115,8 +114,7 @@ Index = init: -> return if g.VIEW isnt 'index' or !Conf['Menu'] or g.BOARD.ID is 'f' - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: $.el 'a', href: 'javascript:;' order: 19 open: ({thread}) -> @@ -615,7 +613,6 @@ Index = Index.buildHRs nodes $.rmAll Index.root $.add Index.root, nodes - $.event 'IndexBuild', nodes isSearching: false clearSearch: -> diff --git a/src/General/Main.coffee b/src/General/Main.coffee index e464f91fb..c488406d2 100644 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -120,7 +120,6 @@ Main = initFeature 'Linkify', Linkify # c.timeEnd 'All initializations' - $.on d, 'AddCallback', Main.addCallback $.ready Main.initReady initStyle: -> @@ -230,20 +229,6 @@ Main = # c.profileEnd callback.name Main.handleErrors errors if errors - addCallback: (e) -> - obj = e.detail - unless typeof obj.callback.name is 'string' - throw new Error "Invalid callback name: #{obj.callback.name}" - switch obj.type - when 'Post' - Klass = Post - when 'Thread' - Klass = Thread - else - return - obj.callback.isAddon = true - Klass.callbacks.push obj.callback - handleErrors: (errors) -> unless errors instanceof Array error = errors diff --git a/src/General/Settings.coffee b/src/General/Settings.coffee index b3fa0bda8..7a687969e 100644 --- a/src/General/Settings.coffee +++ b/src/General/Settings.coffee @@ -6,8 +6,7 @@ Settings = textContent: '<%= meta.name %> Settings' href: 'javascript:;' $.on link, 'click', Settings.open - $.event 'AddMenuEntry', - type: 'header' + Header.menu.addEntry el: link order: 111 @@ -18,8 +17,7 @@ Settings = Settings.addSection 'Rice', Settings.rice Settings.addSection 'Archives', Settings.archives Settings.addSection 'Keybinds', Settings.keybinds - $.on d, 'AddSettingsSection', Settings.addSection - $.on d, 'OpenSettings', (e) -> Settings.open e.detail + $.on d, 'OpenSettings', (e) -> Settings.open e.detail settings = JSON.parse(localStorage.getItem '4chan-settings') or {} return if settings.disableAll @@ -65,8 +63,6 @@ Settings = sections: [] addSection: (title, open) -> - if typeof title isnt 'string' - {title, open} = title.detail hyphenatedTitle = title.toLowerCase().replace /\s+/g, '-' Settings.sections.push {title, hyphenatedTitle, open} openSection: -> diff --git a/src/General/UI.coffee b/src/General/UI.coffee index 7dac2c2eb..31968106a 100644 --- a/src/General/UI.coffee +++ b/src/General/UI.coffee @@ -15,9 +15,7 @@ UI = do -> currentMenu = null lastToggledButton = null - constructor: (@type) -> - # Doc here: https://github.com/MayhemYDG/4chan-x/wiki/Menu-API - $.on d, 'AddMenuEntry', @addEntry + constructor: -> @entries = [] makeMenu: -> @@ -172,9 +170,7 @@ UI = do -> $.addClass submenu, 'right' $.rmClass submenu, 'left' - addEntry: (e) => - entry = e.detail - return if entry.type isnt @type + addEntry: (entry) -> @parseEntry entry @entries.push entry diff --git a/src/Images/ImageExpand.coffee b/src/Images/ImageExpand.coffee index 7c2310260..ad3cb81bd 100644 --- a/src/Images/ImageExpand.coffee +++ b/src/Images/ImageExpand.coffee @@ -223,8 +223,7 @@ ImageExpand = for name, conf of Config.imageExpansion subEntries.push createSubEntry name, conf[1] - $.event 'AddMenuEntry', - type: 'header' + Header.menu.addEntry el: el order: 80 subEntries: subEntries diff --git a/src/Menu/ArchiveLink.coffee b/src/Menu/ArchiveLink.coffee index 88ecc21b5..047aebc45 100644 --- a/src/Menu/ArchiveLink.coffee +++ b/src/Menu/ArchiveLink.coffee @@ -6,7 +6,6 @@ ArchiveLink = textContent: 'Archive' entry = - type: 'post' el: div order: 90 open: ({ID, thread, board}) -> @@ -25,7 +24,7 @@ ArchiveLink = # Add a sub entry for each type. entry.subEntries.push @createSubEntry type[0], type[1] - $.event 'AddMenuEntry', entry + Menu.menu.addEntry entry createSubEntry: (text, type) -> el = $.el 'a', diff --git a/src/Menu/DeleteLink.coffee b/src/Menu/DeleteLink.coffee index c79f24c98..031e8e50a 100644 --- a/src/Menu/DeleteLink.coffee +++ b/src/Menu/DeleteLink.coffee @@ -26,8 +26,7 @@ DeleteLink = $.on fileEl, 'click', DeleteLink.delete true - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: div order: 40 open: (post) -> diff --git a/src/Menu/DownloadLink.coffee b/src/Menu/DownloadLink.coffee index a93cfd8c0..eb5de83ae 100644 --- a/src/Menu/DownloadLink.coffee +++ b/src/Menu/DownloadLink.coffee @@ -5,8 +5,7 @@ DownloadLink = a = $.el 'a', className: 'download-link' textContent: 'Download file' - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: a order: 70 open: ({file}) -> diff --git a/src/Menu/Labels.coffee b/src/Menu/Labels.coffee index 726377b7d..0f04953c4 100644 --- a/src/Menu/Labels.coffee +++ b/src/Menu/Labels.coffee @@ -2,8 +2,7 @@ Labels = init: -> return if !Conf['Menu'] - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: $.el 'div', textContent: 'Labels' order: 60 open: (post, addSubEntry) -> diff --git a/src/Menu/Menu.coffee b/src/Menu/Menu.coffee index 0388584ed..44c05acec 100644 --- a/src/Menu/Menu.coffee +++ b/src/Menu/Menu.coffee @@ -8,7 +8,7 @@ Menu = href: 'javascript:;' @frag = $.nodes [$.tn(' '), a] - @menu = new UI.Menu 'post' + @menu = new UI.Menu() Post.callbacks.push name: 'Menu' cb: @node diff --git a/src/Menu/ReportLink.coffee b/src/Menu/ReportLink.coffee index c246c903f..58d2dc6bb 100644 --- a/src/Menu/ReportLink.coffee +++ b/src/Menu/ReportLink.coffee @@ -7,8 +7,7 @@ ReportLink = href: 'javascript:;' textContent: 'Report this post' $.on a, 'click', ReportLink.report - $.event 'AddMenuEntry', - type: 'post' + Menu.menu.addEntry el: a order: 10 open: (post) -> diff --git a/src/Miscellaneous/Fourchan.coffee b/src/Miscellaneous/Fourchan.coffee index a0da2637d..14f7b491b 100644 --- a/src/Miscellaneous/Fourchan.coffee +++ b/src/Miscellaneous/Fourchan.coffee @@ -18,7 +18,7 @@ Fourchan = window.addEventListener('jsmath', function(e) { if (jsMath.loaded) { // process one post - jsMath.ProcessBeforeShowing(e.detail); + jsMath.ProcessBeforeShowing(document.getElementById(e.detail)); } else { // load jsMath and process whole document jsMath.Autoload.Script.Push('ProcessBeforeShowing', [null]); @@ -39,4 +39,4 @@ Fourchan = return math: -> return if @isClone or !$ '.math', @nodes.comment - $.event 'jsmath', @nodes.post, window + $.event 'jsmath', @nodes.post.id, window diff --git a/src/Miscellaneous/PSAHiding.coffee b/src/Miscellaneous/PSAHiding.coffee index 715b8dc2d..478d06764 100644 --- a/src/Miscellaneous/PSAHiding.coffee +++ b/src/Miscellaneous/PSAHiding.coffee @@ -11,14 +11,13 @@ PSAHiding = return entry = - type: 'header' el: $.el 'a', textContent: 'Show announcement' className: 'show-announcement' href: 'javascript:;' order: 50 open: -> psa.hidden - $.event 'AddMenuEntry', entry + Header.menu.addEntry entry $.on entry.el, 'click', PSAHiding.toggle PSAHiding.btn = btn = $.el 'a', diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee index 838b4403d..aa2861c0d 100644 --- a/src/Monitoring/ThreadUpdater.coffee +++ b/src/Monitoring/ThreadUpdater.coffee @@ -107,7 +107,6 @@ ThreadUpdater = ThreadUpdater.thread.kill() $.event 'ThreadUpdate', 404: true - thread: ThreadUpdater.thread else ThreadUpdater.outdateCount++ ThreadUpdater.setInterval() @@ -203,8 +202,6 @@ ThreadUpdater = nodes.push node posts.push new Post node, ThreadUpdater.thread, ThreadUpdater.thread.board - deletedPosts = [] - deletedFiles = [] # Check for deleted posts/files. for ID, post of ThreadUpdater.thread.posts # XXX tmp fix for 4chan's racing condition @@ -215,18 +212,14 @@ ThreadUpdater = post.resurrect() else unless ID in index post.kill() - deletedPosts.push post else if post.file and !post.file.isDead and ID not in files post.kill true - deletedFiles.push post sendEvent = -> $.event 'ThreadUpdate', 404: false - thread: ThreadUpdater.thread - newPosts: posts - deletedPosts: deletedPosts - deletedFiles: deletedFiles + threadID: ThreadUpdater.thread.fullID + newPosts: posts.map (post) -> post.fullID postCount: OP.replies + 1 fileCount: OP.images + (!!ThreadUpdater.thread.OP.file and !ThreadUpdater.thread.OP.file.isDead) diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index 21c0a3e2d..4da971ac3 100644 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -65,12 +65,12 @@ ThreadWatcher = [boardID, threadID] = @parentNode.dataset.fullID.split '.' ThreadWatcher.rm boardID, +threadID post: (e) -> - {board, postID, threadID} = e.detail + {boardID, threadID, postID} = e.detail if postID is threadID if Conf['Auto Watch'] $.set 'AutoWatch', threadID else if Conf['Auto Watch Reply'] - ThreadWatcher.add board.threads[threadID] + ThreadWatcher.add g.threads[boardID + '.' + threadID] onIndexRefresh: -> boardID = g.BOARD.ID for threadID, data of ThreadWatcher.db.data.boards[boardID] when not data.isDead and threadID not of g.BOARD.threads @@ -81,10 +81,9 @@ ThreadWatcher = ThreadWatcher.db.set {boardID, threadID, val: data} ThreadWatcher.refresh() onThreadRefresh: (e) -> - {thread} = e.detail return unless e.detail[404] and ThreadWatcher.db.get {boardID: thread.board.ID, threadID: thread.ID} # Update 404 status. - ThreadWatcher.add thread + ThreadWatcher.add g.threads[e.detail.threadID] fetchCount: fetched: 0 @@ -204,18 +203,17 @@ ThreadWatcher = refreshers: [] init: -> return if !Conf['Thread Watcher'] - menu = new UI.Menu 'thread watcher' + menu = new UI.Menu() $.on $('.menu-button', ThreadWatcher.dialog), 'click', (e) -> menu.toggle e, @, ThreadWatcher @addHeaderMenuEntry() - @addMenuEntries() + @addMenuEntries menu addHeaderMenuEntry: -> return if g.VIEW isnt 'thread' entryEl = $.el 'a', href: 'javascript:;' - $.event 'AddMenuEntry', - type: 'header' + Header.menu.addEntry el: entryEl order: 60 $.on entryEl, 'click', -> ThreadWatcher.toggle g.threads["#{g.BOARD}.#{g.THREADID}"] @@ -228,14 +226,13 @@ ThreadWatcher = $.rmClass entryEl, rmClass entryEl.textContent = text - addMenuEntries: -> + addMenuEntries: (menu) -> entries = [] # `Open all` entry entries.push cb: ThreadWatcher.cb.openAll entry: - type: 'thread watcher' el: $.el 'a', textContent: 'Open all threads' refresh: -> (if ThreadWatcher.list.firstElementChild then $.rmClass else $.addClass) @el, 'disabled' @@ -244,7 +241,6 @@ ThreadWatcher = entries.push cb: ThreadWatcher.cb.checkThreads entry: - type: 'thread watcher' el: $.el 'a', textContent: 'Check 404\'d threads' refresh: -> (if $('div:not(.dead-thread)', ThreadWatcher.list) then $.rmClass else $.addClass) @el, 'disabled' @@ -253,7 +249,6 @@ ThreadWatcher = entries.push cb: ThreadWatcher.cb.pruneDeads entry: - type: 'thread watcher' el: $.el 'a', textContent: 'Prune 404\'d threads' refresh: -> (if $('.dead-thread', ThreadWatcher.list) then $.rmClass else $.addClass) @el, 'disabled' @@ -264,7 +259,6 @@ ThreadWatcher = subEntries.push @createSubEntry name, conf[1] entries.push entry: - type: 'thread watcher' el: $.el 'span', textContent: 'Settings' subEntries: subEntries @@ -273,7 +267,7 @@ ThreadWatcher = entry.el.href = 'javascript:;' if entry.el.nodeName is 'A' $.on entry.el, 'click', cb if cb @refreshers.push refresh.bind entry if refresh - $.event 'AddMenuEntry', entry + menu.addEntry entry return createSubEntry: (name, desc) -> entry = diff --git a/src/Monitoring/Unread.coffee b/src/Monitoring/Unread.coffee index 08a1d476b..cf0d580f0 100644 --- a/src/Monitoring/Unread.coffee +++ b/src/Monitoring/Unread.coffee @@ -107,7 +107,7 @@ Unread = if e.detail[404] Unread.update() else - Unread.addPosts e.detail.newPosts + Unread.addPosts e.detail.newPosts.map (fullID) -> g.posts[fullID] readSinglePost: (post) -> return if (i = Unread.posts.indexOf post) is -1 diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index 158968ef7..c8f6bca8e 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -29,11 +29,6 @@ QR = QR.nodes.com.focus() Header.addShortcut sc, 2 - $.on d, 'QRGetSelectedPost', ({detail: cb}) -> - cb QR.selected - $.on d, 'QRAddPreSubmitHook', ({detail: cb}) -> - QR.preSubmitHooks.push cb - <% if (type === 'crx') { %> $.on d, 'paste', QR.paste <% } %> @@ -384,9 +379,8 @@ QR = # Create a custom event when the QR dialog is first initialized. # Use it to extend the QR's functionalities, or for XTRM RICE. - $.event 'QRDialogCreation', null, dialog + $.event 'QRDialogCreation' - preSubmitHooks: [] submit: (e) -> e?.preventDefault() @@ -419,9 +413,6 @@ QR = err = 'No file selected.' else if post.file and thread.fileLimit err = 'Max limit of image replies has been reached.' - else for hook in QR.preSubmitHooks - if err = hook post, thread - break if QR.captcha.isEnabled and !err {challenge, response} = QR.captcha.getOne() @@ -562,17 +553,17 @@ QR = QR.db.set boardID: g.BOARD.ID - threadID: threadID - postID: postID + threadID + postID val: true # Post/upload confirmed as successful. $.event 'QRPostSuccessful', { - board: g.BOARD + boardID: g.BOARD.ID threadID postID } - $.event 'QRPostSuccessful_', {threadID, postID} + $.event 'QRPostSuccessful_', {boardID: g.BOARD.ID, threadID, postID} # Enable auto-posting if we have stuff left to post, disable it otherwise. postsCount = QR.posts.length - 1 diff --git a/src/Posting/QR.post.coffee b/src/Posting/QR.post.coffee index 84826cf94..374447e19 100644 --- a/src/Posting/QR.post.coffee +++ b/src/Posting/QR.post.coffee @@ -109,7 +109,6 @@ QR.post = class rectList = @nodes.el.parentNode.getBoundingClientRect() @nodes.el.parentNode.scrollLeft += rectEl.left + rectEl.width/2 - rectList.left - rectList.width/2 @load() - $.event 'QRPostSelection', @ load: -> # Load this post's values. for name in ['thread', 'name', 'email', 'sub', 'com', 'filename', 'flag'] From dcc92a97a42bc9f605896e4a7ab56c8456b5f721 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Thu, 19 Jun 2014 15:17:19 +0200 Subject: [PATCH 27/29] Fixes as reported by @ccd0. --- src/Monitoring/ThreadUpdater.coffee | 1 + src/Monitoring/ThreadWatcher.coffee | 3 ++- src/Posting/QR.coffee | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Monitoring/ThreadUpdater.coffee b/src/Monitoring/ThreadUpdater.coffee index aa2861c0d..210e2767f 100644 --- a/src/Monitoring/ThreadUpdater.coffee +++ b/src/Monitoring/ThreadUpdater.coffee @@ -107,6 +107,7 @@ ThreadUpdater = ThreadUpdater.thread.kill() $.event 'ThreadUpdate', 404: true + threadID: ThreadUpdater.thread.fullID else ThreadUpdater.outdateCount++ ThreadUpdater.setInterval() diff --git a/src/Monitoring/ThreadWatcher.coffee b/src/Monitoring/ThreadWatcher.coffee index 4da971ac3..e017ef4e7 100644 --- a/src/Monitoring/ThreadWatcher.coffee +++ b/src/Monitoring/ThreadWatcher.coffee @@ -81,9 +81,10 @@ ThreadWatcher = ThreadWatcher.db.set {boardID, threadID, val: data} ThreadWatcher.refresh() onThreadRefresh: (e) -> + thread = g.threads[e.detail.threadID] return unless e.detail[404] and ThreadWatcher.db.get {boardID: thread.board.ID, threadID: thread.ID} # Update 404 status. - ThreadWatcher.add g.threads[e.detail.threadID] + ThreadWatcher.add thread fetchCount: fetched: 0 diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index c8f6bca8e..ee9c6a974 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -379,7 +379,7 @@ QR = # Create a custom event when the QR dialog is first initialized. # Use it to extend the QR's functionalities, or for XTRM RICE. - $.event 'QRDialogCreation' + $.event 'QRDialogCreation', null, dialog submit: (e) -> e?.preventDefault() From 7a8a64e368fe196e26689a6d907f6d9d9ed86651 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 20 Jun 2014 13:46:13 +0200 Subject: [PATCH 28/29] Fix #1688. --- src/Posting/QR.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Posting/QR.coffee b/src/Posting/QR.coffee index ee9c6a974..1a32458cb 100644 --- a/src/Posting/QR.coffee +++ b/src/Posting/QR.coffee @@ -553,8 +553,8 @@ QR = QR.db.set boardID: g.BOARD.ID - threadID - postID + threadID: threadID + postID: postID val: true # Post/upload confirmed as successful. From a0b8dc7c479bb0e6ba54aab7828b7f623aa35f67 Mon Sep 17 00:00:00 2001 From: Mayhem Date: Fri, 20 Jun 2014 23:31:48 +0200 Subject: [PATCH 29/29] Release 4chan X v3.20.15. --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e375ded80..3b17d79e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,5 @@ +### 3.20.15 - *2014-06-20* + - Compatibility fixes for Greasemonkey v2. ### 3.20.14 - *2014-06-13* diff --git a/package.json b/package.json index d1eee7d34..68709a851 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "4chan-X", - "version": "3.20.14", + "version": "3.20.15", "description": "Cross-browser extension for productive lurking on 4chan.", "meta": { "name": "4chan X",