This commit is contained in:
James Campos 2011-04-25 00:57:22 -07:00
parent 4c7b1d8335
commit ee9276f6fe
2 changed files with 70 additions and 69 deletions

View File

@ -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 = "<div class=move>Options <a name=close>X</a></div>";
conf = config.main.checkbox;
for (name in conf) {
@ -870,8 +870,8 @@
}
html += "<div><a name=flavors>Flavors</a></div>";
html += "<div><textarea style=\"display: none;\" name=flavors>" + ($.config('flavors').join('\n')) + "</textarea></div>";
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 += "<div><input type=\"button\" value=\"hidden: " + hiddenNum + "\"></div>";
html += "<hr>";
html += "<div><a href=\"http://chat.now.im/x/aeos\">support throd</a></div>";
@ -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);

View File

@ -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 += "<div><a name=flavors>Flavors</a></div>"
html += "<div><textarea style=\"display: none;\" name=flavors>#{$.config('flavors').join '\n'}</textarea></div>"
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 += "<div><input type=\"button\" value=\"hidden: #{hiddenNum}\"></div>"
html += "<hr>"
@ -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