// ==UserScript== // @id iitc-plugin-keys@xelio // @name IITC plugin: Keys // @version 0.1.0.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ // @description [@@BUILDNAME@@-@@BUILDDATE@@] Store portal keys // @include https://www.ingress.com/intel* // @include http://www.ingress.com/intel* // @match https://www.ingress.com/intel* // @match http://www.ingress.com/intel* // ==/UserScript== function wrapper() { // ensure plugin framework is there, even if iitc is not yet loaded if(typeof window.plugin !== 'function') window.plugin = function() {}; // PLUGIN START //////////////////////////////////////////////////////// // use own namespace for plugin window.plugin.keys = function() {}; window.plugin.keys.LOCAL_STORAGE_KEY = 'plugin-keys-data'; window.plugin.keys.keys = {}; window.plugin.keys.disabledMessage; window.plugin.keys.contentHTML; window.plugin.keys.addToSidebar = function() { if(typeof(Storage) === "undefined") { $('#portaldetails > .imgpreview').after(plugin.keys.disabledMessage); return; } $('#portaldetails > .imgpreview').after(plugin.keys.contentHTML); plugin.keys.updateDisplayCount(); } window.plugin.keys.updateDisplayCount = function() { var guid = window.selectedPortal; var count = plugin.keys.keys[guid] || 0; $('#keys-count').html(count); } window.plugin.keys.addKey = function(addCount) { var guid = window.selectedPortal; var oldCount = plugin.keys.keys[guid]; var newCount = Math.max((oldCount || 0) + addCount, 0); if(oldCount !== newCount) { if(newCount === 0) { delete plugin.keys.keys[guid]; } else { plugin.keys.keys[guid] = newCount; } plugin.keys.storeKeys(); plugin.keys.updateDisplayCount(); window.runHooks('pluginKeysUpdateKey', {guid: guid, count: newCount}); } } window.plugin.keys.storeKeys = function() { var keysObject = {keys: plugin.keys.keys}; var keysObjectJSON = JSON.stringify(keysObject); localStorage[plugin.keys.LOCAL_STORAGE_KEY] = keysObjectJSON; } window.plugin.keys.loadKeys = function() { var keysObjectJSON = localStorage[plugin.keys.LOCAL_STORAGE_KEY] var keysObject = JSON.parse(keysObjectJSON); plugin.keys.keys = keysObject.keys; } window.plugin.keys.setupCSS = function() { $("