From 64cd4a9043b738b1477c24f262b6b4f613949a33 Mon Sep 17 00:00:00 2001 From: Nicolas Stepien Date: Mon, 11 Feb 2013 00:15:10 +0100 Subject: [PATCH] Fuck that. --- 4chan_x.user.js | 82 +++++++-------------------------------------- src/features.coffee | 55 ++++-------------------------- 2 files changed, 19 insertions(+), 118 deletions(-) diff --git a/4chan_x.user.js b/4chan_x.user.js index 4661647a0..66d2f2f0e 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -20,7 +20,7 @@ // @icon https://github.com/MayhemYDG/4chan-x/raw/stable/img/icon.gif // ==/UserScript== -/* 4chan X Alpha - Version 3.0.0 - 2013-02-10 +/* 4chan X Alpha - Version 3.0.0 - 2013-02-11 * http://mayhemydg.github.com/4chan-x/ * * Copyright (c) 2009-2011 James Campos @@ -932,33 +932,24 @@ }); $.on(toggleBar, 'click', this.toggleBar); $.prepend(headerBar, [menuButton, boardListButton, $.tn(' '), boardTitle, boardList, toggleBar]); - try { - this.setBoardList(); - } catch (err) { - Main.handleErrors({ - message: '"Header (board list)" crashed.', - error: err - }); - } - return $.asap((function() { + $.asap((function() { return d.body; }), function() { return $.prepend(d.body, Header.headerEl); }); + return $.asap((function() { + return $.id('boardNavDesktop'); + }), this.setBoardList); }, setBoardList: function() { - Get.boardsConfig(function(boardsConfig) { - return $('.board-title', Header.headerEl).textContent = boardsConfig[g.BOARD].title; - }); - return $.ready(function() { - var nav, _ref; - if (nav = $.id('boardNavDesktop')) { - if ((_ref = $("a[href$='/" + g.BOARD + "/']", nav)) != null) { - _ref.className = 'current'; - } - return $.add($('.board-list', Header.headerEl), Array.prototype.slice.call(nav.childNodes)); + var a, nav; + if (nav = $.id('boardNavDesktop')) { + if (a = $("a[href$='/" + g.BOARD + "/']", nav)) { + a.className = 'current'; + $('.board-title', Header.headerEl).textContent = a.title; } - }); + return $.add($('.board-list', Header.headerEl), Array.prototype.slice.call(nav.childNodes)); + } }, toggleBoardList: function() { var headerEl, node, showBoardList; @@ -2418,55 +2409,6 @@ }; Get = { - boardsConfig: (function() { - var boardsConfig, callbacks, parseBoardsConfig; - boardsConfig = null; - callbacks = []; - parseBoardsConfig = function() { - var board, boardName, callback, _i, _j, _len, _len1, _ref; - if (this.status !== 200) { - return; - } - boardsConfig = {}; - _ref = JSON.parse(this.response).boards; - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - board = _ref[_i]; - boardName = board.board; - delete board.board; - boardsConfig[boardName] = board; - } - for (_j = 0, _len1 = callbacks.length; _j < _len1; _j++) { - callback = callbacks[_j]; - callback(boardsConfig); - } - callbacks = null; - boardsConfig.lastModified = this.getResponseHeader('Last-Modified'); - return $.set('boardsConfig', boardsConfig); - }; - return function(cb) { - var lastModified; - if (boardsConfig) { - cb(boardsConfig); - return; - } - if (boardsConfig = $.get('boardsConfig', null)) { - cb(boardsConfig); - lastModified = boardsConfig.lastModified; - } else { - if (callbacks.push(cb) > 1) { - return; - } - lastModified = 0; - } - return $.ajax('//api.4chan.org/boards.json', { - onloadend: parseBoardsConfig - }, { - headers: { - 'If-Modified-Since': lastModified - } - }); - }; - })(), postFromRoot: function(root) { var board, index, link, post, postID; link = $('a[title="Highlight this post"]', root); diff --git a/src/features.coffee b/src/features.coffee index 5d09d0d0a..e46cb6655 100644 --- a/src/features.coffee +++ b/src/features.coffee @@ -37,24 +37,17 @@ Header = $.prepend headerBar, [menuButton, boardListButton, $.tn(' '), boardTitle, boardList, toggleBar] - try - @setBoardList() - catch err - Main.handleErrors - message: '"Header (board list)" crashed.' - error: err - $.asap (-> d.body), -> $.prepend d.body, Header.headerEl + $.asap (-> $.id 'boardNavDesktop'), @setBoardList setBoardList: -> - Get.boardsConfig (boardsConfig) -> - $('.board-title', Header.headerEl).textContent = boardsConfig[g.BOARD].title - $.ready -> - if nav = $.id 'boardNavDesktop' - $("a[href$='/#{g.BOARD}/']", nav)?.className = 'current' - $.add $('.board-list', Header.headerEl), - Array::slice.call nav.childNodes + if nav = $.id 'boardNavDesktop' + if a = $ "a[href$='/#{g.BOARD}/']", nav + a.className = 'current' + $('.board-title', Header.headerEl).textContent = a.title + $.add $('.board-list', Header.headerEl), + Array::slice.call nav.childNodes toggleBoardList: -> node = @firstElementChild.firstChild @@ -1345,40 +1338,6 @@ Build = container Get = - boardsConfig: (-> - boardsConfig = null - callbacks = [] - - parseBoardsConfig = -> - return if @status isnt 200 - boardsConfig = {} - for board in JSON.parse(@response).boards - boardName = board.board - delete board.board - boardsConfig[boardName] = board - for callback in callbacks - callback boardsConfig - callbacks = null - boardsConfig.lastModified = @getResponseHeader 'Last-Modified' - $.set 'boardsConfig', boardsConfig - - (cb) -> - # Configs were already loaded previously, callback and stop. - if boardsConfig - cb boardsConfig - return - - # Load configs, callback, check for updates. - if boardsConfig = $.get 'boardsConfig', null - cb boardsConfig - lastModified = boardsConfig.lastModified - else - return if callbacks.push(cb) > 1 - lastModified = 0 - - $.ajax '//api.4chan.org/boards.json', onloadend: parseBoardsConfig, - headers: 'If-Modified-Since': lastModified - )() postFromRoot: (root) -> link = $ 'a[title="Highlight this post"]', root board = link.pathname.split('/')[1]