diff --git a/4chan_x.js b/4chan_x.js
index 18f7d3ee4..1285e215a 100644
--- a/4chan_x.js
+++ b/4chan_x.js
@@ -226,6 +226,10 @@
return object;
};
$.extend($, {
+ deleteValue: function(name) {
+ name = NAMESPACE + name;
+ return delete localStorage[name];
+ },
getValue: function(name, defaultValue) {
var value;
name = NAMESPACE + name;
@@ -377,11 +381,10 @@
return GM_setValue('autoText', "/" + g.BOARD + "/ - " + autoText);
};
clearHidden = function() {
- GM_deleteValue("hiddenReplies/" + g.BOARD + "/");
- GM_deleteValue("hiddenThreads/" + g.BOARD + "/");
+ $.deleteValue("hiddenReply/" + g.BOARD + "/");
+ $.deleteValue("hiddenThread/" + g.BOARD + "/");
this.value = "hidden: 0";
- g.hiddenReplies = [];
- return g.hiddenThreads = [];
+ return g.hiddenReplies = {};
};
editSauce = function() {
var ta;
@@ -897,12 +900,13 @@
return GM_setValue(this.name, this.value);
};
options = function() {
- var checked, description, div, hiddenNum, html, input, option, value, _i, _len, _ref;
+ var checked, description, div, hiddenNum, hiddenThread, html, input, option, value, _i, _len, _ref;
if (div = $('#options')) {
$.remove(div);
return;
}
- hiddenNum = g.hiddenReplies.length + g.hiddenThreads.length;
+ hiddenThread = $.getValue("hiddenThread/" + g.BOARD + "/", {});
+ hiddenNum = Object.keys(g.hiddenReply).length + Object.keys(hiddenThread).length;
html = '
';
for (option in config) {
value = config[option];
@@ -1275,7 +1279,7 @@
var a, hiddenThreads, id, node, thread, _i, _len, _ref, _results;
node = $('form[name=delform] > *');
threadHiding.thread(node);
- hiddenThreads = JSON.parse(GM_getValue("hiddenThread/" + g.BOARD + "/", '{}'));
+ hiddenThreads = $.getValue("hiddenThread/" + g.BOARD + "/", {});
_ref = $$('div.thread');
_results = [];
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
@@ -1308,9 +1312,9 @@
var hiddenThreads, id;
threadHiding.hideHide(thread);
id = $('input[value=delete]', thread).name;
- hiddenThreads = JSON.parse(GM_getValue("hiddenThread/" + g.BOARD + "/", '{}'));
+ hiddenThreads = $.getValue("hiddenThread/" + g.BOARD + "/", {});
hiddenThreads[id] = Date.now();
- return GM_setValue("hiddenThread/" + g.BOARD + "/", JSON.stringify(hiddenThreads));
+ return $.setValue("hiddenThread/" + g.BOARD + "/", hiddenThreads);
},
hideHide: function(thread) {
var a, div, name, num, span, text, trip, _ref;
@@ -1341,9 +1345,9 @@
$.show(thread);
$.show(thread.nextSibling);
id = $('input[value=delete]', thread).name;
- hiddenThreads = JSON.parse(GM_getValue("hiddenThread/" + g.BOARD + "/", '{}'));
+ hiddenThreads = $.getValue("hiddenThread/" + g.BOARD + "/", {});
delete hiddenThreads[id];
- return GM_setValue("hiddenThread/" + g.BOARD + "/", JSON.stringify(hiddenThreads));
+ return $.setValue("hiddenThread/" + g.BOARD + "/", hiddenThreads);
},
thread: function(node) {
var div;
@@ -1659,8 +1663,6 @@
} else {
g.PAGENUM = parseInt(temp) || 0;
}
- g.hiddenThreads = JSON.parse(GM_getValue("hiddenThreads/" + g.BOARD + "/", '[]'));
- g.hiddenReplies = JSON.parse(GM_getValue("hiddenReplies/" + g.BOARD + "/", '[]'));
g.hiddenReply = JSON.parse(GM_getValue("hiddenReply/" + g.BOARD + "/", '{}'));
tzOffset = (new Date()).getTimezoneOffset() / 60;
g.chanOffset = 5 - tzOffset;
diff --git a/script.coffee b/script.coffee
index 17f3d8e9a..5413040b9 100644
--- a/script.coffee
+++ b/script.coffee
@@ -127,6 +127,9 @@ $.extend = (object, properties) ->
object
$.extend $,
+ deleteValue: (name) ->
+ name = NAMESPACE + name
+ delete localStorage[name]
getValue: (name, defaultValue) ->
name = NAMESPACE + name
if value = localStorage[name]
@@ -242,11 +245,10 @@ autoWatch = ->
clearHidden = ->
#'hidden' might be misleading; it's the number of IDs we're *looking* for,
# not the number of posts actually hidden on the page.
- GM_deleteValue("hiddenReplies/#{g.BOARD}/")
- GM_deleteValue("hiddenThreads/#{g.BOARD}/")
+ $.deleteValue "hiddenReply/#{g.BOARD}/"
+ $.deleteValue "hiddenThread/#{g.BOARD}/"
@value = "hidden: 0"
- g.hiddenReplies = []
- g.hiddenThreads = []
+ g.hiddenReplies = {}
editSauce = ->
ta = $ '#options textarea'
@@ -659,7 +661,8 @@ options = ->
$.remove div
return
- hiddenNum = g.hiddenReplies.length + g.hiddenThreads.length
+ hiddenThread = $.getValue "hiddenThread/#{g.BOARD}/", {}
+ hiddenNum = Object.keys(g.hiddenReply).length + Object.keys(hiddenThread).length
html = '
'
for option, value of config
description = value[1]
@@ -951,7 +954,7 @@ threadHiding =
node = $ 'form[name=delform] > *'
threadHiding.thread node
- hiddenThreads = JSON.parse GM_getValue "hiddenThread/#{g.BOARD}/", '{}'
+ hiddenThreads = $.getValue "hiddenThread/#{g.BOARD}/", {}
for thread in $$ 'div.thread'
a = $.el 'a',
textContent: '[ - ]'
@@ -978,9 +981,9 @@ threadHiding =
id = $('input[value=delete]', thread).name
- hiddenThreads = JSON.parse GM_getValue "hiddenThread/#{g.BOARD}/", '{}'
+ hiddenThreads = $.getValue "hiddenThread/#{g.BOARD}/", {}
hiddenThreads[id] = Date.now()
- GM_setValue "hiddenThread/#{g.BOARD}/", JSON.stringify hiddenThreads
+ $.setValue "hiddenThread/#{g.BOARD}/", hiddenThreads
hideHide: (thread) ->
$.hide thread
@@ -1012,9 +1015,9 @@ threadHiding =
id = $('input[value=delete]', thread).name
- hiddenThreads = JSON.parse GM_getValue "hiddenThread/#{g.BOARD}/", '{}'
+ hiddenThreads = $.getValue "hiddenThread/#{g.BOARD}/", {}
delete hiddenThreads[id]
- GM_setValue "hiddenThread/#{g.BOARD}/", JSON.stringify hiddenThreads
+ $.setValue "hiddenThread/#{g.BOARD}/", hiddenThreads
thread: (node) ->
div = $.el 'div',
@@ -1290,8 +1293,6 @@ if temp is 'res'
g.THREAD_ID = pathname[2]
else
g.PAGENUM = parseInt(temp) || 0
-g.hiddenThreads = JSON.parse(GM_getValue("hiddenThreads/#{g.BOARD}/", '[]'))
-g.hiddenReplies = JSON.parse(GM_getValue("hiddenReplies/#{g.BOARD}/", '[]'))
g.hiddenReply = JSON.parse GM_getValue "hiddenReply/#{g.BOARD}/", '{}'
tzOffset = (new Date()).getTimezoneOffset() / 60
# GMT -8 is given as +480; would GMT +8 be -480 ?