From cb39424deac8227ee6bc5571ff5a01f18a8e081e Mon Sep 17 00:00:00 2001 From: Zixaphir Date: Sat, 11 Jan 2014 17:19:19 -0700 Subject: [PATCH] Reduce number of loops in Redirect --- builds/4chan-X.user.js | 32 ++++++++++++++------------------ builds/crx/script.js | 32 ++++++++++++++------------------ src/Archive/Redirect.coffee | 12 +++++------- 3 files changed, 33 insertions(+), 43 deletions(-) diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index cf6d4daab..67e359df8 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -10002,7 +10002,7 @@ Redirect = { init: function() { - var archive, archives, boardID, boards, data, files, id, name, o, record, software, type, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3, _ref4; + var archive, archives, boardID, boards, data, files, id, name, o, record, software, type, _i, _j, _len, _len1, _ref, _ref1, _ref2; o = { thread: {}, post: {}, @@ -10017,6 +10017,19 @@ files: files, data: data }; + software = data.software; + for (_j = 0, _len1 = boards.length; _j < _len1; _j++) { + boardID = boards[_j]; + if (!(boardID in o.thread)) { + o.thread[boardID] = data; + } + if (!(boardID in o.post || software !== 'foolfuuka')) { + o.post[boardID] = data; + } + if (!(boardID in o.file || __indexOf.call(files, boardID) < 0)) { + o.file[boardID] = data; + } + } } _ref2 = Conf['selectedArchives']; for (boardID in _ref2) { @@ -10033,23 +10046,6 @@ o[type][boardID] = archive.data; } } - _ref3 = Redirect.archives; - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - _ref4 = _ref3[_j], data = _ref4.data, boards = _ref4.boards, files = _ref4.files; - software = data.software; - for (_k = 0, _len2 = boards.length; _k < _len2; _k++) { - boardID = boards[_k]; - if (!(boardID in o.thread)) { - o.thread[boardID] = data; - } - if (!(boardID in o.post || software !== 'foolfuuka')) { - o.post[boardID] = data; - } - if (!(boardID in o.file || __indexOf.call(files, boardID) < 0)) { - o.file[boardID] = data; - } - } - } return Redirect.data = o; }, archives: [ diff --git a/builds/crx/script.js b/builds/crx/script.js index f5f1086f1..6d7b4d763 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -9991,7 +9991,7 @@ Redirect = { init: function() { - var archive, archives, boardID, boards, data, files, id, name, o, record, software, type, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3, _ref4; + var archive, archives, boardID, boards, data, files, id, name, o, record, software, type, _i, _j, _len, _len1, _ref, _ref1, _ref2; o = { thread: {}, post: {}, @@ -10006,6 +10006,19 @@ files: files, data: data }; + software = data.software; + for (_j = 0, _len1 = boards.length; _j < _len1; _j++) { + boardID = boards[_j]; + if (!(boardID in o.thread)) { + o.thread[boardID] = data; + } + if (!(boardID in o.post || software !== 'foolfuuka')) { + o.post[boardID] = data; + } + if (!(boardID in o.file || __indexOf.call(files, boardID) < 0)) { + o.file[boardID] = data; + } + } } _ref2 = Conf['selectedArchives']; for (boardID in _ref2) { @@ -10022,23 +10035,6 @@ o[type][boardID] = archive.data; } } - _ref3 = Redirect.archives; - for (_j = 0, _len1 = _ref3.length; _j < _len1; _j++) { - _ref4 = _ref3[_j], data = _ref4.data, boards = _ref4.boards, files = _ref4.files; - software = data.software; - for (_k = 0, _len2 = boards.length; _k < _len2; _k++) { - boardID = boards[_k]; - if (!(boardID in o.thread)) { - o.thread[boardID] = data; - } - if (!(boardID in o.post || software !== 'foolfuuka')) { - o.post[boardID] = data; - } - if (!(boardID in o.file || __indexOf.call(files, boardID) < 0)) { - o.file[boardID] = data; - } - } - } return Redirect.data = o; }, archives: [ diff --git a/src/Archive/Redirect.coffee b/src/Archive/Redirect.coffee index ea2e26d70..06ac8f37f 100755 --- a/src/Archive/Redirect.coffee +++ b/src/Archive/Redirect.coffee @@ -9,6 +9,11 @@ Redirect = archives = {} for {name, boards, files, data} in Redirect.archives archives[name] = {boards, files, data} + {software} = data + for boardID in boards + o.thread[boardID] = data unless boardID of o.thread + o.post[boardID] = data unless boardID of o.post or software isnt 'foolfuuka' + o.file[boardID] = data unless boardID of o.file or boardID not in files for boardID, record of Conf['selectedArchives'] for type, id of record when (archive = archives[id]) @@ -16,13 +21,6 @@ Redirect = continue unless boardID in boards o[type][boardID] = archive.data - for {data, boards, files} in Redirect.archives - {software} = data - for boardID in boards - o.thread[boardID] = data unless boardID of o.thread - o.post[boardID] = data unless boardID of o.post or software isnt 'foolfuuka' - o.file[boardID] = data unless boardID of o.file or boardID not in files - Redirect.data = o archives: [