58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			58 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								/* 
							 | 
						||
| 
								 | 
							
								 * This Source Code Form is subject to the terms of the Mozilla Public
							 | 
						||
| 
								 | 
							
								 * License, v. 2.0. If a copy of the MPL was not distributed with this
							 | 
						||
| 
								 | 
							
								 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Save something to persistent storage.
							 | 
						||
| 
								 | 
							
								 * @param {string} key
							 | 
						||
| 
								 | 
							
								 * @param {string} value non-string values are converted to strings.
							 | 
						||
| 
								 | 
							
								 * @param {bool} nochangeupdate If true, the lastchange setting won't be updated.
							 | 
						||
| 
								 | 
							
								 * @returns {undefined}
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function setStorage(key, value, nochangeupdate) {
							 | 
						||
| 
								 | 
							
								    if (typeof nochangeupdate == 'undefined') {
							 | 
						||
| 
								 | 
							
								        nochangeupdate = false;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    localStorage.setItem(key, value);
							 | 
						||
| 
								 | 
							
								    if (!nochangeupdate && !SETTINGS.synckeyblacklist.includes(key)) {
							 | 
						||
| 
								 | 
							
								        localStorage.setItem("lastchange", Date.now() / 1000);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Get an item from persistent storage.
							 | 
						||
| 
								 | 
							
								 * @param {type} key
							 | 
						||
| 
								 | 
							
								 * @returns {DOMString}
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function getStorage(key) {
							 | 
						||
| 
								 | 
							
								    return localStorage.getItem(key);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Check if an item is in the persistent storage.
							 | 
						||
| 
								 | 
							
								 * @param {string} key
							 | 
						||
| 
								 | 
							
								 * @returns {Boolean}
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function inStorage(key) {
							 | 
						||
| 
								 | 
							
								    return localStorage.getItem(key) != null;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Get all item from persistent storage.
							 | 
						||
| 
								 | 
							
								 * @returns {Array} [{key: "", value: ""},...]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function getAllStorage() {
							 | 
						||
| 
								 | 
							
								    var all = [];
							 | 
						||
| 
								 | 
							
								    for (var key in localStorage) {
							 | 
						||
| 
								 | 
							
								        if (localStorage.hasOwnProperty(key)) {
							 | 
						||
| 
								 | 
							
								            all.push({
							 | 
						||
| 
								 | 
							
								                key: key,
							 | 
						||
| 
								 | 
							
								                value: getStorage(key)
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return all;
							 | 
						||
| 
								 | 
							
								}
							 |