diff --git a/4chan_x.js b/4chan_x.js
index 4bf887597..c3f285170 100644
--- a/4chan_x.js
+++ b/4chan_x.js
@@ -561,7 +561,7 @@
$.replace(td.firstChild, a);
reply = td.nextSibling;
id = reply.id;
- _results.push(id in g.hiddenReply ? replyHiding.hide(reply) : void 0);
+ _results.push(id in g.hiddenReplies ? replyHiding.hide(reply) : void 0);
}
return _results;
},
@@ -589,15 +589,15 @@
$.before(table, div);
}
id = reply.id;
- g.hiddenReply[id] = Date.now();
- return $.setValue("hiddenReply/" + g.BOARD + "/", g.hiddenReply);
+ g.hiddenReplies[id] = Date.now();
+ return $.setValue("hiddenReplies/" + g.BOARD + "/", g.hiddenReplies);
},
show: function(table) {
var id;
$.show(table);
id = $('td[id]', table).id;
- delete g.hiddenReply[id];
- return $.setValue("hiddenReply/" + g.BOARD + "/", g.hiddenReply);
+ delete g.hiddenReplies[id];
+ return $.setValue("hiddenReplies/" + g.BOARD + "/", g.hiddenReplies);
}
};
keybinds = {
@@ -860,7 +860,7 @@
}
},
dialog: function() {
- var checked, conf, dialog, hiddenNum, hiddenThread, html, input, name, title, _i, _len, _ref;
+ var checked, conf, dialog, hiddenNum, hiddenThreads, html, input, name, title, _i, _len, _ref;
html = "
";
conf = config.main.checkbox;
for (name in conf) {
@@ -870,8 +870,8 @@
}
html += "";
html += "";
- hiddenThread = $.getValue("hiddenThread/" + g.BOARD + "/", {});
- hiddenNum = Object.keys(g.hiddenReply).length + Object.keys(hiddenThread).length;
+ hiddenThreads = $.getValue("hiddenThreads/" + g.BOARD + "/", {});
+ hiddenNum = Object.keys(g.hiddenReplies).length + Object.keys(hiddenThreads).length;
html += "";
html += "
";
html += "";
@@ -901,8 +901,8 @@
},
cb: {
clearHidden: function(e) {
- $.deleteValue("hiddenReply/" + g.BOARD + "/");
- $.deleteValue("hiddenThread/" + g.BOARD + "/");
+ $.deleteValue("hiddenReplies/" + g.BOARD + "/");
+ $.deleteValue("hiddenThreads/" + g.BOARD + "/");
this.value = "hidden: 0";
return g.hiddenReplies = {};
}
@@ -1174,7 +1174,7 @@
threadHiding = {
init: function() {
var a, hiddenThreads, op, thread, _i, _len, _ref, _results;
- hiddenThreads = $.getValue("hiddenThread/" + g.BOARD + "/", {});
+ hiddenThreads = $.getValue("hiddenThreads/" + g.BOARD + "/", {});
_ref = $$('div.thread');
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -1212,9 +1212,9 @@
var hiddenThreads, id;
threadHiding.hideHide(thread);
id = thread.firstChild.id;
- hiddenThreads = $.getValue("hiddenThread/" + g.BOARD + "/", {});
+ hiddenThreads = $.getValue("hiddenThreads/" + g.BOARD + "/", {});
hiddenThreads[id] = Date.now();
- return $.setValue("hiddenThread/" + g.BOARD + "/", hiddenThreads);
+ return $.setValue("hiddenThreads/" + g.BOARD + "/", hiddenThreads);
},
hideHide: function(thread) {
var a, div, name, num, span, text, trip, _ref;
@@ -1250,9 +1250,9 @@
$.show(thread);
$.show(thread.nextSibling);
id = thread.firstChild.id;
- hiddenThreads = $.getValue("hiddenThread/" + g.BOARD + "/", {});
+ hiddenThreads = $.getValue("hiddenThreads/" + g.BOARD + "/", {});
delete hiddenThreads[id];
- return $.setValue("hiddenThread/" + g.BOARD + "/", hiddenThreads);
+ return $.setValue("hiddenThreads/" + g.BOARD + "/", hiddenThreads);
}
};
updater = {
@@ -1993,7 +1993,7 @@
};
main = {
init: function() {
- var callback, navtopr, pathname, temp, tzOffset, _i, _len, _ref2;
+ var DAY, callback, cutoff, hiddenThreads, id, lastChecked, navtopr, now, pathname, temp, timestamp, tzOffset, _i, _len, _ref2, _ref3;
Favicon.halo = /ws/.test(Favicon["default"]) ? Favicon.haloSFW : Favicon.haloNSFW;
pathname = location.pathname.substring(1).split('/');
g.BOARD = pathname[0], temp = pathname[1];
@@ -2003,32 +2003,35 @@
} else {
g.PAGENUM = parseInt(temp) || 0;
}
- g.hiddenReply = $.getValue("hiddenReply/" + g.BOARD + "/", {});
+ g.hiddenReplies = $.getValue("hiddenReplies/" + g.BOARD + "/", {});
tzOffset = (new Date()).getTimezoneOffset() / 60;
g.chanOffset = 5 - tzOffset;
if ($.isDST()) {
g.chanOffset -= 1;
}
- /*
- lastChecked = Number GM_getValue('lastChecked', '0')
- now = Date.now()
- DAY = 1000 * 60 * 60 * 24
- if lastChecked < now - 1*DAY
- cutoff = now - 7*DAY
- while g.hiddenThreads.length
- if g.hiddenThreads[0].timestamp > cutoff
- break
- g.hiddenThreads.shift()
-
- while g.hiddenReplies.length
- if g.hiddenReplies[0].timestamp > cutoff
- break
- g.hiddenReplies.shift()
-
- GM_setValue("hiddenThreads/#{g.BOARD}/", JSON.stringify(g.hiddenThreads))
- GM_setValue("hiddenReplies/#{g.BOARD}/", JSON.stringify(g.hiddenReplies))
- GM_setValue('lastChecked', now.toString())
- */
+ lastChecked = $.getValue('lastChecked', 0);
+ now = Date.now();
+ DAY = 1000 * 60 * 60 * 24;
+ if (lastChecked < now - 1 * DAY) {
+ cutoff = now - 7 * DAY;
+ hiddenThreads = $.getValue("hiddenThreads/" + g.BOARD + "/", {});
+ for (id in hiddenThreads) {
+ timestamp = hiddenThreads[id];
+ if (timestamp < cutoff) {
+ delete hiddenThreads[id];
+ }
+ }
+ _ref2 = g.hiddenReplies;
+ for (id in _ref2) {
+ timestamp = _ref2[id];
+ if (timestamp < cutoff) {
+ delete g.hiddenReplies[id];
+ }
+ }
+ $.setValue("hiddenThreads/" + g.BOARD + "/", hiddenThreads);
+ $.setValue("hiddenReplies/" + g.BOARD + "/", g.hiddenReplies);
+ $.setValue('lastChecked', now);
+ }
$.addStyle(main.css);
if (location.hostname === 'sys.4chan.org') {
qr.sys();
@@ -2110,9 +2113,9 @@
expandComment.init();
}
}
- _ref2 = g.callbacks;
- for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
- callback = _ref2[_i];
+ _ref3 = g.callbacks;
+ for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
+ callback = _ref3[_i];
callback();
}
return $.bind(d.body, 'DOMNodeInserted', nodeInserted);
diff --git a/script.coffee b/script.coffee
index a03a7e5aa..870728b8f 100644
--- a/script.coffee
+++ b/script.coffee
@@ -383,7 +383,7 @@ replyHiding =
reply = td.nextSibling
id = reply.id
- if id of g.hiddenReply
+ if id of g.hiddenReplies
replyHiding.hide reply
show: (e) ->
@@ -409,15 +409,15 @@ replyHiding =
$.before table, div
id = reply.id
- g.hiddenReply[id] = Date.now()
- $.setValue "hiddenReply/#{g.BOARD}/", g.hiddenReply
+ g.hiddenReplies[id] = Date.now()
+ $.setValue "hiddenReplies/#{g.BOARD}/", g.hiddenReplies
show: (table) ->
$.show table
id = $('td[id]', table).id
- delete g.hiddenReply[id]
- $.setValue "hiddenReply/#{g.BOARD}/", g.hiddenReply
+ delete g.hiddenReplies[id]
+ $.setValue "hiddenReplies/#{g.BOARD}/", g.hiddenReplies
keybinds =
init: ->
@@ -651,8 +651,8 @@ options =
html += ""
html += ""
- hiddenThread = $.getValue "hiddenThread/#{g.BOARD}/", {}
- hiddenNum = Object.keys(g.hiddenReply).length + Object.keys(hiddenThread).length
+ hiddenThreads = $.getValue "hiddenThreads/#{g.BOARD}/", {}
+ hiddenNum = Object.keys(g.hiddenReplies).length + Object.keys(hiddenThreads).length
html += ""
html += "
"
@@ -675,8 +675,8 @@ options =
clearHidden: (e) ->
#'hidden' might be misleading; it's the number of IDs we're *looking* for,
# not the number of posts actually hidden on the page.
- $.deleteValue "hiddenReply/#{g.BOARD}/"
- $.deleteValue "hiddenThread/#{g.BOARD}/"
+ $.deleteValue "hiddenReplies/#{g.BOARD}/"
+ $.deleteValue "hiddenThreads/#{g.BOARD}/"
@value = "hidden: 0"
g.hiddenReplies = {}
@@ -907,7 +907,7 @@ threading =
threadHiding =
init: ->
- hiddenThreads = $.getValue "hiddenThread/#{g.BOARD}/", {}
+ hiddenThreads = $.getValue "hiddenThreads/#{g.BOARD}/", {}
for thread in $$ 'div.thread'
op = thread.firstChild
a = $.el 'a',
@@ -937,9 +937,9 @@ threadHiding =
id = thread.firstChild.id
- hiddenThreads = $.getValue "hiddenThread/#{g.BOARD}/", {}
+ hiddenThreads = $.getValue "hiddenThreads/#{g.BOARD}/", {}
hiddenThreads[id] = Date.now()
- $.setValue "hiddenThread/#{g.BOARD}/", hiddenThreads
+ $.setValue "hiddenThreads/#{g.BOARD}/", hiddenThreads
hideHide: (thread) ->
if $.config 'Show Stubs'
@@ -974,9 +974,9 @@ threadHiding =
id = thread.firstChild.id
- hiddenThreads = $.getValue "hiddenThread/#{g.BOARD}/", {}
+ hiddenThreads = $.getValue "hiddenThreads/#{g.BOARD}/", {}
delete hiddenThreads[id]
- $.setValue "hiddenThread/#{g.BOARD}/", hiddenThreads
+ $.setValue "hiddenThreads/#{g.BOARD}/", hiddenThreads
updater =
init: ->
@@ -1526,32 +1526,30 @@ main =
g.THREAD_ID = pathname[2]
else
g.PAGENUM = parseInt(temp) || 0
- g.hiddenReply = $.getValue "hiddenReply/#{g.BOARD}/", {}
+ g.hiddenReplies = $.getValue "hiddenReplies/#{g.BOARD}/", {}
tzOffset = (new Date()).getTimezoneOffset() / 60
# GMT -8 is given as +480; would GMT +8 be -480 ?
g.chanOffset = 5 - tzOffset# 4chan = EST = GMT -5
if $.isDST() then g.chanOffset -= 1
- ###
- lastChecked = Number GM_getValue('lastChecked', '0')
+ lastChecked = $.getValue 'lastChecked', 0
now = Date.now()
DAY = 1000 * 60 * 60 * 24
if lastChecked < now - 1*DAY
cutoff = now - 7*DAY
- while g.hiddenThreads.length
- if g.hiddenThreads[0].timestamp > cutoff
- break
- g.hiddenThreads.shift()
+ hiddenThreads = $.getValue "hiddenThreads/#{g.BOARD}/", {}
- while g.hiddenReplies.length
- if g.hiddenReplies[0].timestamp > cutoff
- break
- g.hiddenReplies.shift()
+ for id, timestamp of hiddenThreads
+ if timestamp < cutoff
+ delete hiddenThreads[id]
- GM_setValue("hiddenThreads/#{g.BOARD}/", JSON.stringify(g.hiddenThreads))
- GM_setValue("hiddenReplies/#{g.BOARD}/", JSON.stringify(g.hiddenReplies))
- GM_setValue('lastChecked', now.toString())
- ###
+ for id, timestamp of g.hiddenReplies
+ if timestamp < cutoff
+ delete g.hiddenReplies[id]
+
+ $.setValue "hiddenThreads/#{g.BOARD}/", hiddenThreads
+ $.setValue "hiddenReplies/#{g.BOARD}/", g.hiddenReplies
+ $.setValue 'lastChecked', now
$.addStyle main.css