diff --git a/foltor/foltor.coffee b/foltor/foltor.coffee index 2ccd84b8d..f0de3cccc 100644 --- a/foltor/foltor.coffee +++ b/foltor/foltor.coffee @@ -63,6 +63,31 @@ mouseup: -> window.removeEventListener('mousemove', mousemove, true) window.removeEventListener('mouseup', mouseup, true) +#x-browser +if typeof GM_deleteValue == 'undefined' + this.GM_setValue: (name, value) -> + value: (typeof value)[0] + value + localStorage.setItem(name, value) + + this.GM_getValue: (name, defaultValue) -> + if not value: localStorage.getItem(name) + return defaultValue + type: value[0] + value: value.substring(1) + switch type + when 'b' + return value == 'true' + when 'n' + return Number(value) + else + return value + + this.GM_addStyle: (css) -> + style: tag('style') + style.type: 'text/css' + style.textContent: css + $('head', document).appendChild(style) + GM_addStyle(' #filter { @@ -159,11 +184,12 @@ autoHideF: -> filter.className: 'reply autohide' else filter.className: 'reply' + GM_setValue('className', filter.className) filter: tag('div') filter.id: 'filter' -autoHideF() +filter.className: GM_getValue('className', 'reply') position(filter) bar: tag('div') diff --git a/foltor/foltor.js b/foltor/foltor.js index 71d0d47d9..c7ba5f96b 100644 --- a/foltor/foltor.js +++ b/foltor/foltor.js @@ -87,6 +87,35 @@ window.removeEventListener('mousemove', mousemove, true); return window.removeEventListener('mouseup', mouseup, true); }; + //x-browser + if (typeof GM_deleteValue === 'undefined') { + this.GM_setValue = function GM_setValue(name, value) { + value = (typeof value)[0] + value; + return localStorage.setItem(name, value); + }; + this.GM_getValue = function GM_getValue(name, defaultValue) { + var type, value; + if (!(value = localStorage.getItem(name))) { + return defaultValue; + } + type = value[0]; + value = value.substring(1); + if (type === 'b') { + return value === 'true'; + } else if (type === 'n') { + return Number(value); + } else { + return value; + } + }; + this.GM_addStyle = function GM_addStyle(css) { + var style; + style = tag('style'); + style.type = 'text/css'; + style.textContent = css; + return $('head', document).appendChild(style); + }; + } GM_addStyle(' \ #filter { \ position: fixed; \ @@ -186,17 +215,12 @@ display: none; \ return _a; }; autoHideF = function autoHideF() { - if (filter.className === 'reply') { - filter.className = 'reply autohide'; - return filter.className; - } else { - filter.className = 'reply'; - return filter.className; - } + filter.className === 'reply' ? (filter.className = 'reply autohide') : (filter.className = 'reply'); + return GM_setValue('className', filter.className); }; filter = tag('div'); filter.id = 'filter'; - autoHideF(); + filter.className = GM_getValue('className', 'reply'); position(filter); bar = tag('div'); bar.textContent = '4chon foltor';