Content-Length: 7433 | pFad | http://github.com/jeffjose/redditp/commit/36bbb5b14fe6f2e76d4d9ee2167f66a86552083a.diff

42 diff --git a/README.md b/README.md index 00d63eb..283a4df 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Hotkeys * c - collapse/uncollapse controls * i - open image in a new tab * r - open comments in a new tab -* f - toggle full screen mode +* f - toggle full screen mode * Arrow keys, pgup/pgdown, spacebar change slides * Swipe gestures on phones @@ -31,4 +31,9 @@ Possible future features, depending on feedback: * Support for /r/random and /r/randnsfw virtual subreddits. These'll be tricky unless I cheat as they contain redirects. * Offline access support, though I don't know if this is even possible actually (caching external image resources). -Made by Ubershmekel http://uberpython.wordpress.com/ +Depends on +---------- + +* [js-cookie](https://github.com/js-cookie/js-cookie) for managing cookies + +Made by Ubershmekel http://uberpython.wordpress.com/ diff --git a/index.html b/index.html index 0137b15..f3c8228 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,7 @@ + diff --git a/js/js.cookie.js b/js/js.cookie.js new file mode 100644 index 0000000..e934f42 --- /dev/null +++ b/js/js.cookie.js @@ -0,0 +1,139 @@ +/*! + * JavaScript Cookie v2.0.3 + * https://github.com/js-cookie/js-cookie + * + * Copyright 2006, 2015 Klaus Hartl & Fagner Brack + * Released under the MIT license + */ +(function (factory) { + if (typeof define === 'function' && define.amd) { + define(factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else { + var _OldCookies = window.Cookies; + var api = window.Cookies = factory(); + api.noConflict = function () { + window.Cookies = _OldCookies; + return api; + }; + } +}(function () { + function extend () { + var i = 0; + var result = {}; + for (; i < arguments.length; i++) { + var attributes = arguments[ i ]; + for (var key in attributes) { + result[key] = attributes[key]; + } + } + return result; + } + + function init (converter) { + function api (key, value, attributes) { + var result; + + // Write + + if (arguments.length > 1) { + attributes = extend({ + path: '/' + }, api.defaults, attributes); + + if (typeof attributes.expires === 'number') { + var expires = new Date(); + expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5); + attributes.expires = expires; + } + + try { + result = JSON.stringify(value); + if (/^[\{\[]/.test(result)) { + value = result; + } + } catch (e) {} + + value = encodeURIComponent(String(value)); + value = value.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); + + key = encodeURIComponent(String(key)); + key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); + key = key.replace(/[\(\)]/g, escape); + + return (document.cookie = [ + key, '=', value, + attributes.expires && '; expires=' + attributes.expires.toUTCString(), // use expires attribute, max-age is not supported by IE + attributes.path && '; path=' + attributes.path, + attributes.domain && '; domain=' + attributes.domain, + attributes.secure ? '; secure' : '' + ].join('')); + } + + // Read + + if (!key) { + result = {}; + } + + // To prevent the for loop in the first place assign an empty array + // in case there are no cookies at all. Also prevents odd result when + // calling "get()" + var cookies = document.cookie ? document.cookie.split('; ') : []; + var rdecode = /(%[0-9A-Z]{2})+/g; + var i = 0; + + for (; i < cookies.length; i++) { + var parts = cookies[i].split('='); + var name = parts[0].replace(rdecode, decodeURIComponent); + var cookie = parts.slice(1).join('='); + + if (cookie.charAt(0) === '"') { + cookie = cookie.slice(1, -1); + } + + try { + cookie = converter && converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent); + + if (this.json) { + try { + cookie = JSON.parse(cookie); + } catch (e) {} + } + + if (key === name) { + result = cookie; + break; + } + + if (!key) { + result[name] = cookie; + } + } catch (e) {} + } + + return result; + } + + api.get = api.set = api; + api.getJSON = function () { + return api.apply({ + json: true + }, [].slice.call(arguments)); + }; + api.defaults = {}; + + api.remove = function (key, attributes) { + api(key, '', extend(attributes, { + expires: -1 + })); + }; + + api.withConverter = init; + + return api; + } + + return init(); +})); \ No newline at end of file diff --git a/js/script.js b/js/script.js index 1ea1067..8ecfb3e 100644 --- a/js/script.js +++ b/js/script.js @@ -167,23 +167,13 @@ $(function () { }; var setCookie = function (c_name, value, exdays) { - var exdate = new Date(); - exdate.setDate(exdate.getDate() + exdays); - var c_value = escape(value) + ((exdays === null) ? "" : "; expires=" + exdate.toUTCString()); - document.cookie = c_name + "=" + c_value; + Cookies.set(c_name, value, { expires: exdays }); }; + var getCookie = function (c_name) { - var i, x, y; - var cookiesArray = document.cookie.split(";"); - for (i = 0; i < cookiesArray.length; i++) { - x = cookiesArray[i].substr(0, cookiesArray[i].indexOf("=")); - y = cookiesArray[i].substr(cookiesArray[i].indexOf("=") + 1); - x = x.replace(/^\s+|\s+$/g, ""); - if (x == c_name) { - return unescape(y); - } - } + // undefined in case nothing found + return Cookies.get(c_name); }; var resetNextSlideTimer = function () { @@ -232,7 +222,7 @@ $(function () { var initState = function () { var nsfwByCookie = getCookie(nsfwCookie); - if (nsfwByCookie == undefined) { + if (nsfwByCookie === undefined) { nsfw = true; } else { nsfw = (nsfwByCookie === "true"); @@ -241,7 +231,7 @@ $(function () { $('#nsfw').change(updateNsfw); var autoByCookie = getCookie(shouldAutoNextSlideCookie); - if (autoByCookie == undefined) { + if (autoByCookie === undefined) { updateAutoNext(); } else { shouldAutoNextSlide = (autoByCookie === "true"); @@ -257,7 +247,7 @@ $(function () { var timeToNextSlideCookie = "timeToNextSlideCookie"; timeByCookie = getCookie(timeToNextSlideCookie); - if (timeByCookie == undefined) { + if (timeByCookie === undefined) { updateTimeToNextSlide(); } else { timeToNextSlide = parseFloat(timeByCookie) * 1000;








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/jeffjose/redditp/commit/36bbb5b14fe6f2e76d4d9ee2167f66a86552083a.diff

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy