diff --git a/CHANGELOG.md b/CHANGELOG.md index c63ac4f60..98b303393 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,12 @@ The attributions below are for work that has been incorporated into the script a The links to individual versions below are to copies of the script with the update URL removed. If you want automatic updates, install the script from the links on the [main page](https://github.com/ccd0/4chan-x). +### v1.9.19.10 +*2015-01-11* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.19.10/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.19.10/builds/4chan-X-noupdate.crx "Chromium version")] + +**ccd0** +- Fix bottom board list after 4chan change. + ### v1.9.19.9 *2015-01-10* - [[Firefox](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.19.9/builds/4chan-X-noupdate.user.js "Firefox version")] [[Chromium](https://raw.githubusercontent.com/ccd0/4chan-x/1.9.19.9/builds/4chan-X-noupdate.crx "Chromium version")] diff --git a/LICENSE b/LICENSE index a20764942..49ab7415e 100755 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ /* -* 4chan X - Version 1.9.19.9 +* 4chan X - Version 1.9.19.10 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE diff --git a/builds/4chan-X-beta.crx b/builds/4chan-X-beta.crx index 42b37538c..5dc956e3f 100644 Binary files a/builds/4chan-X-beta.crx and b/builds/4chan-X-beta.crx differ diff --git a/builds/4chan-X-beta.meta.js b/builds/4chan-X-beta.meta.js index 87f5f00c5..5679047aa 100644 --- a/builds/4chan-X-beta.meta.js +++ b/builds/4chan-X-beta.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X beta -// @version 1.9.19.9 +// @version 1.9.19.10 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X-beta.user.js b/builds/4chan-X-beta.user.js index aeb78faa6..417284e32 100644 --- a/builds/4chan-X-beta.user.js +++ b/builds/4chan-X-beta.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X beta -// @version 1.9.19.9 +// @version 1.9.19.10 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -25,7 +25,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.9.19.9 +* 4chan X - Version 1.9.19.10 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -395,7 +395,7 @@ doc = d.documentElement; g = { - VERSION: '1.9.19.9', + VERSION: '1.9.19.10', NAMESPACE: '4chan X.', NAME: '4chan X', FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions', @@ -2129,7 +2129,26 @@ } $.asap((function() { return $.id('boardNavMobile') || d.readyState !== 'loading'; - }), Header.setBoardList); + }), function() { + var a, footer; + Header.footer = footer = $.id('boardNavDesktop').cloneNode(true); + footer.id = 'boardNavDesktopFoot'; + $.rm($('#navtopright', footer)); + if (a = $("a[href*='/" + g.BOARD + "/']", footer)) { + a.className = 'current'; + } + Header.setFooterVisibility(Conf['Bottom Board List']); + $.sync('Bottom Board List', Header.setFooterVisibility); + Main.ready(function() { + var oldFooter; + if (oldFooter = $.id('boardNavDesktopFoot')) { + $.rm(oldFooter); + } + $.globalEval('window.cloneTopNav = function() {};'); + return $.before($.id('absbot'), footer); + }); + return Header.setBoardList(); + }); $.prepend(d.body, _this.bar); $.add(d.body, Header.hover); _this.setBarPosition(Conf['Bottom Header']); @@ -2138,11 +2157,7 @@ })(this)); Main.ready((function(_this) { return function() { - var a, cs, footer; - _this.footer = footer = $.id('boardNavDesktopFoot'); - if (a = $("a[href*='/" + g.BOARD + "/']", footer)) { - a.className = 'current'; - } + var cs; if (g.VIEW === 'catalog' || !Conf['Disable Native Extension']) { cs = $.el('a', { href: 'javascript:;' @@ -2157,10 +2172,8 @@ $.on(cs, 'click', function() { return $.id('settingsWindowLink').click(); }); - _this.addShortcut(cs); + return _this.addShortcut(cs); } - Header.setFooterVisibility(Conf['Bottom Board List']); - return $.sync('Bottom Board List', Header.setFooterVisibility); }; })(this)); return this.enableDesktopNotifications(); @@ -13402,7 +13415,7 @@ }, set: function(useCatalog) { var a, board, _i, _len, _ref, _ref1; - _ref = $$("#board-list a:not([data-only]), #boardNavDesktopFoot a"); + _ref = $$('a:not([data-only])', Header.boardList).concat($$('a', Header.footer)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { a = _ref[_i]; if (((_ref1 = a.hostname) !== 'boards.4chan.org' && _ref1 !== 'catalog.neet.tv' && _ref1 !== '4index.gropes.us') || !(board = a.pathname.split('/')[1]) || (board === 'f' || board === 'status' || board === '4chan') || a.pathname.split('/')[2] === 'archive' || $.hasClass(a, 'external')) { diff --git a/builds/4chan-X-noupdate.crx b/builds/4chan-X-noupdate.crx index 0429daeab..9ad831196 100644 Binary files a/builds/4chan-X-noupdate.crx and b/builds/4chan-X-noupdate.crx differ diff --git a/builds/4chan-X-noupdate.user.js b/builds/4chan-X-noupdate.user.js index 219cf501f..88c33d8fc 100644 --- a/builds/4chan-X-noupdate.user.js +++ b/builds/4chan-X-noupdate.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.9.19.9 +// @version 1.9.19.10 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -24,7 +24,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.9.19.9 +* 4chan X - Version 1.9.19.10 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -394,7 +394,7 @@ doc = d.documentElement; g = { - VERSION: '1.9.19.9', + VERSION: '1.9.19.10', NAMESPACE: '4chan X.', NAME: '4chan X', FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions', @@ -2128,7 +2128,26 @@ } $.asap((function() { return $.id('boardNavMobile') || d.readyState !== 'loading'; - }), Header.setBoardList); + }), function() { + var a, footer; + Header.footer = footer = $.id('boardNavDesktop').cloneNode(true); + footer.id = 'boardNavDesktopFoot'; + $.rm($('#navtopright', footer)); + if (a = $("a[href*='/" + g.BOARD + "/']", footer)) { + a.className = 'current'; + } + Header.setFooterVisibility(Conf['Bottom Board List']); + $.sync('Bottom Board List', Header.setFooterVisibility); + Main.ready(function() { + var oldFooter; + if (oldFooter = $.id('boardNavDesktopFoot')) { + $.rm(oldFooter); + } + $.globalEval('window.cloneTopNav = function() {};'); + return $.before($.id('absbot'), footer); + }); + return Header.setBoardList(); + }); $.prepend(d.body, _this.bar); $.add(d.body, Header.hover); _this.setBarPosition(Conf['Bottom Header']); @@ -2137,11 +2156,7 @@ })(this)); Main.ready((function(_this) { return function() { - var a, cs, footer; - _this.footer = footer = $.id('boardNavDesktopFoot'); - if (a = $("a[href*='/" + g.BOARD + "/']", footer)) { - a.className = 'current'; - } + var cs; if (g.VIEW === 'catalog' || !Conf['Disable Native Extension']) { cs = $.el('a', { href: 'javascript:;' @@ -2156,10 +2171,8 @@ $.on(cs, 'click', function() { return $.id('settingsWindowLink').click(); }); - _this.addShortcut(cs); + return _this.addShortcut(cs); } - Header.setFooterVisibility(Conf['Bottom Board List']); - return $.sync('Bottom Board List', Header.setFooterVisibility); }; })(this)); return this.enableDesktopNotifications(); @@ -13401,7 +13414,7 @@ }, set: function(useCatalog) { var a, board, _i, _len, _ref, _ref1; - _ref = $$("#board-list a:not([data-only]), #boardNavDesktopFoot a"); + _ref = $$('a:not([data-only])', Header.boardList).concat($$('a', Header.footer)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { a = _ref[_i]; if (((_ref1 = a.hostname) !== 'boards.4chan.org' && _ref1 !== 'catalog.neet.tv' && _ref1 !== '4index.gropes.us') || !(board = a.pathname.split('/')[1]) || (board === 'f' || board === 'status' || board === '4chan') || a.pathname.split('/')[2] === 'archive' || $.hasClass(a, 'external')) { diff --git a/builds/4chan-X.crx b/builds/4chan-X.crx index 942220dc2..100af30c8 100644 Binary files a/builds/4chan-X.crx and b/builds/4chan-X.crx differ diff --git a/builds/4chan-X.meta.js b/builds/4chan-X.meta.js index ae45aa377..8a6bd1ad4 100644 --- a/builds/4chan-X.meta.js +++ b/builds/4chan-X.meta.js @@ -1,6 +1,6 @@ // ==UserScript== // @name 4chan X -// @version 1.9.19.9 +// @version 1.9.19.10 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index ff249e03b..b3aa10d61 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -1,7 +1,7 @@ // Generated by CoffeeScript // ==UserScript== // @name 4chan X -// @version 1.9.19.9 +// @version 1.9.19.10 // @minGMVer 1.14 // @minFFVer 26 // @namespace 4chan-X @@ -25,7 +25,7 @@ // ==/UserScript== /* -* 4chan X - Version 1.9.19.9 +* 4chan X - Version 1.9.19.10 * * Licensed under the MIT license. * https://github.com/ccd0/4chan-x/blob/master/LICENSE @@ -395,7 +395,7 @@ doc = d.documentElement; g = { - VERSION: '1.9.19.9', + VERSION: '1.9.19.10', NAMESPACE: '4chan X.', NAME: '4chan X', FAQ: 'https://github.com/ccd0/4chan-x/wiki/Frequently-Asked-Questions', @@ -2129,7 +2129,26 @@ } $.asap((function() { return $.id('boardNavMobile') || d.readyState !== 'loading'; - }), Header.setBoardList); + }), function() { + var a, footer; + Header.footer = footer = $.id('boardNavDesktop').cloneNode(true); + footer.id = 'boardNavDesktopFoot'; + $.rm($('#navtopright', footer)); + if (a = $("a[href*='/" + g.BOARD + "/']", footer)) { + a.className = 'current'; + } + Header.setFooterVisibility(Conf['Bottom Board List']); + $.sync('Bottom Board List', Header.setFooterVisibility); + Main.ready(function() { + var oldFooter; + if (oldFooter = $.id('boardNavDesktopFoot')) { + $.rm(oldFooter); + } + $.globalEval('window.cloneTopNav = function() {};'); + return $.before($.id('absbot'), footer); + }); + return Header.setBoardList(); + }); $.prepend(d.body, _this.bar); $.add(d.body, Header.hover); _this.setBarPosition(Conf['Bottom Header']); @@ -2138,11 +2157,7 @@ })(this)); Main.ready((function(_this) { return function() { - var a, cs, footer; - _this.footer = footer = $.id('boardNavDesktopFoot'); - if (a = $("a[href*='/" + g.BOARD + "/']", footer)) { - a.className = 'current'; - } + var cs; if (g.VIEW === 'catalog' || !Conf['Disable Native Extension']) { cs = $.el('a', { href: 'javascript:;' @@ -2157,10 +2172,8 @@ $.on(cs, 'click', function() { return $.id('settingsWindowLink').click(); }); - _this.addShortcut(cs); + return _this.addShortcut(cs); } - Header.setFooterVisibility(Conf['Bottom Board List']); - return $.sync('Bottom Board List', Header.setFooterVisibility); }; })(this)); return this.enableDesktopNotifications(); @@ -13402,7 +13415,7 @@ }, set: function(useCatalog) { var a, board, _i, _len, _ref, _ref1; - _ref = $$("#board-list a:not([data-only]), #boardNavDesktopFoot a"); + _ref = $$('a:not([data-only])', Header.boardList).concat($$('a', Header.footer)); for (_i = 0, _len = _ref.length; _i < _len; _i++) { a = _ref[_i]; if (((_ref1 = a.hostname) !== 'boards.4chan.org' && _ref1 !== 'catalog.neet.tv' && _ref1 !== '4index.gropes.us') || !(board = a.pathname.split('/')[1]) || (board === 'f' || board === 'status' || board === '4chan') || a.pathname.split('/')[2] === 'archive' || $.hasClass(a, 'external')) { diff --git a/builds/4chan-X.zip b/builds/4chan-X.zip index f4c9086d1..a907d094d 100644 Binary files a/builds/4chan-X.zip and b/builds/4chan-X.zip differ diff --git a/builds/updates-beta.xml b/builds/updates-beta.xml index f09c19c0f..af4f6b37f 100644 --- a/builds/updates-beta.xml +++ b/builds/updates-beta.xml @@ -1,7 +1,7 @@ - + diff --git a/builds/updates.xml b/builds/updates.xml index 0581a39bb..f0f347521 100644 --- a/builds/updates.xml +++ b/builds/updates.xml @@ -1,7 +1,7 @@ - + diff --git a/package.json b/package.json index 4b0a72a82..2e65553c5 100755 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Cross-browser userscript for maximum lurking on 4chan.", "meta": { "name": "4chan X", - "version": "1.9.19.9", + "version": "1.9.19.10", "repo": "https://github.com/ccd0/4chan-x/", "page": "https://github.com/ccd0/4chan-x", "downloads": "https://ccd0.github.io/4chan-x/builds/", @@ -70,4 +70,4 @@ "engines": { "node": ">=0.10" } -} +} \ No newline at end of file diff --git a/src/General/Header.coffee b/src/General/Header.coffee index 1a7087b00..dbf179582 100755 --- a/src/General/Header.coffee +++ b/src/General/Header.coffee @@ -85,17 +85,25 @@ Header = return unless Main.isThisPageLegit() # Wait for #boardNavMobile instead of #boardNavDesktop, # it might be incomplete otherwise. - $.asap (-> $.id('boardNavMobile') or d.readyState isnt 'loading'), Header.setBoardList + $.asap (-> $.id('boardNavMobile') or d.readyState isnt 'loading'), -> + Header.footer = footer = $.id('boardNavDesktop').cloneNode true + footer.id = 'boardNavDesktopFoot' + $.rm $('#navtopright', footer) + if a = $ "a[href*='/#{g.BOARD}/']", footer + a.className = 'current' + Header.setFooterVisibility Conf['Bottom Board List'] + $.sync 'Bottom Board List', Header.setFooterVisibility + Main.ready -> + $.rm oldFooter if oldFooter = $.id 'boardNavDesktopFoot' + $.globalEval 'window.cloneTopNav = function() {};' + $.before $.id('absbot'), footer + Header.setBoardList() $.prepend d.body, @bar $.add d.body, Header.hover @setBarPosition Conf['Bottom Header'] @ Main.ready => - @footer = footer = $.id 'boardNavDesktopFoot' - if a = $ "a[href*='/#{g.BOARD}/']", footer - a.className = 'current' - if g.VIEW is 'catalog' or !Conf['Disable Native Extension'] cs = $.el 'a', href: 'javascript:;' if g.VIEW is 'catalog' @@ -108,9 +116,6 @@ Header = $.id('settingsWindowLink').click() @addShortcut cs - Header.setFooterVisibility Conf['Bottom Board List'] - $.sync 'Bottom Board List', Header.setFooterVisibility - @enableDesktopNotifications() bar: $.el 'div', diff --git a/src/Miscellaneous/CatalogLinks.coffee b/src/Miscellaneous/CatalogLinks.coffee index 6fcb53c4c..2f4294b27 100755 --- a/src/Miscellaneous/CatalogLinks.coffee +++ b/src/Miscellaneous/CatalogLinks.coffee @@ -53,7 +53,7 @@ CatalogLinks = CatalogLinks.set @checked set: (useCatalog) -> - for a in $$ """#board-list a:not([data-only]), #boardNavDesktopFoot a""" + for a in $$('a:not([data-only])', Header.boardList).concat $$('a', Header.footer) continue if a.hostname not in ['boards.4chan.org', 'catalog.neet.tv', '4index.gropes.us'] or !(board = a.pathname.split('/')[1]) or board in ['f', 'status', '4chan'] or