Small optimization to Redirect code

This commit is contained in:
Zixaphir 2014-01-07 08:03:23 -07:00
parent 6d858de604
commit ddabad15e9
4 changed files with 64 additions and 68 deletions

View File

@ -1,5 +1,5 @@
/*
* 4chan X - Version 1.2.44 - 2014-01-06
* 4chan X - Version 1.2.44 - 2014-01-07
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE

View File

@ -22,7 +22,7 @@
// ==/UserScript==
/*
* 4chan X - Version 1.2.44 - 2014-01-06
* 4chan X - Version 1.2.44 - 2014-01-07
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@ -9755,44 +9755,41 @@
};
Redirect = {
data: {
thread: {},
post: {},
file: {}
},
init: function() {
var archive, boardID, boards, data, id, name, type, _i, _len, _ref, _ref1, _ref2;
var archive, archives, boardID, data, id, name, o, type, _i, _len, _ref, _ref1;
o = {
thread: {},
post: {},
file: {}
};
archives = Redirect.archives;
_ref = Conf['selectedArchives'];
for (boardID in _ref) {
data = _ref[boardID];
for (type in data) {
id = data[type];
if (archive = Redirect.archives[id]) {
boards = archive[type] || archive['boards'];
if (__indexOf.call(boards, boardID) < 0) {
continue;
}
Redirect.data[type][boardID] = archive;
if ((archive = archives[id]) && __indexOf.call(archive[type] || archive['boards'], boardID) >= 0) {
o[type][boardID] = archive;
}
}
}
_ref1 = Redirect.archives;
for (name in _ref1) {
archive = _ref1[name];
_ref2 = archive.boards;
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
boardID = _ref2[_i];
if (!(boardID in Redirect.data.thread)) {
Redirect.data.thread[boardID] = archive;
for (name in archives) {
archive = archives[name];
_ref1 = archive.boards;
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
boardID = _ref1[_i];
if (!(boardID in o.thread)) {
o.thread[boardID] = archive;
}
if (!(boardID in Redirect.data.post || archive.software !== 'foolfuuka')) {
Redirect.data.post[boardID] = archive;
if (!(boardID in o.post || archive.software !== 'foolfuuka')) {
o.post[boardID] = archive;
}
if (!(boardID in Redirect.data.file || __indexOf.call(archive.files, boardID) < 0)) {
Redirect.data.file[boardID] = archive;
if (!(boardID in o.file || __indexOf.call(archive.files, boardID) < 0)) {
o.file[boardID] = archive;
}
}
}
return Redirect.data = o;
},
archives: {
"Foolz": {

View File

@ -1,6 +1,6 @@
// Generated by CoffeeScript
/*
* 4chan X - Version 1.2.44 - 2014-01-06
* 4chan X - Version 1.2.44 - 2014-01-07
*
* Licensed under the MIT license.
* https://github.com/seaweedchan/4chan-x/blob/master/LICENSE
@ -9744,44 +9744,41 @@
};
Redirect = {
data: {
thread: {},
post: {},
file: {}
},
init: function() {
var archive, boardID, boards, data, id, name, type, _i, _len, _ref, _ref1, _ref2;
var archive, archives, boardID, data, id, name, o, type, _i, _len, _ref, _ref1;
o = {
thread: {},
post: {},
file: {}
};
archives = Redirect.archives;
_ref = Conf['selectedArchives'];
for (boardID in _ref) {
data = _ref[boardID];
for (type in data) {
id = data[type];
if (archive = Redirect.archives[id]) {
boards = archive[type] || archive['boards'];
if (__indexOf.call(boards, boardID) < 0) {
continue;
}
Redirect.data[type][boardID] = archive;
if ((archive = archives[id]) && __indexOf.call(archive[type] || archive['boards'], boardID) >= 0) {
o[type][boardID] = archive;
}
}
}
_ref1 = Redirect.archives;
for (name in _ref1) {
archive = _ref1[name];
_ref2 = archive.boards;
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
boardID = _ref2[_i];
if (!(boardID in Redirect.data.thread)) {
Redirect.data.thread[boardID] = archive;
for (name in archives) {
archive = archives[name];
_ref1 = archive.boards;
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
boardID = _ref1[_i];
if (!(boardID in o.thread)) {
o.thread[boardID] = archive;
}
if (!(boardID in Redirect.data.post || archive.software !== 'foolfuuka')) {
Redirect.data.post[boardID] = archive;
if (!(boardID in o.post || archive.software !== 'foolfuuka')) {
o.post[boardID] = archive;
}
if (!(boardID in Redirect.data.file || __indexOf.call(archive.files, boardID) < 0)) {
Redirect.data.file[boardID] = archive;
if (!(boardID in o.file || __indexOf.call(archive.files, boardID) < 0)) {
o.file[boardID] = archive;
}
}
}
return Redirect.data = o;
},
archives: {
"Foolz": {

View File

@ -1,25 +1,27 @@
Redirect =
data:
thread: {}
post: {}
file: {}
init: ->
o =
thread: {}
post: {}
file: {}
{archives} = Redirect
for boardID, data of Conf['selectedArchives']
for type, id of data
if archive = Redirect.archives[id]
boards = archive[type] or archive['boards']
continue unless boardID in boards
Redirect.data[type][boardID] = archive
for name, archive of Redirect.archives
for type, id of data when (archive = archives[id]) and boardID in (archive[type] or archive['boards'])
o[type][boardID] = archive
for name, archive of archives
for boardID in archive.boards
unless boardID of Redirect.data.thread
Redirect.data.thread[boardID] = archive
unless boardID of Redirect.data.post or archive.software isnt 'foolfuuka'
Redirect.data.post[boardID] = archive
unless boardID of Redirect.data.file or boardID not in archive.files
Redirect.data.file[boardID] = archive
return
unless boardID of o.thread
o.thread[boardID] = archive
unless boardID of o.post or archive.software isnt 'foolfuuka'
o.post[boardID] = archive
unless boardID of o.file or boardID not in archive.files
o.file[boardID] = archive
Redirect.data = o
archives:
"Foolz":