Skip to content

Instantly share code, notes, and snippets.

@dbaldwin
Created November 9, 2017 01:25
Show Gist options
  • Select an option

  • Save dbaldwin/2e082c7c26ce3b191bd687adfa9b1e10 to your computer and use it in GitHub Desktop.

Select an option

Save dbaldwin/2e082c7c26ce3b191bd687adfa9b1e10 to your computer and use it in GitHub Desktop.
PB Recycling UID test
function allStorageGet(callback, key) {
var storage = (browser.storage || {}).sync;
var fn = (typeof callback === 'function') ? callback : (function () {});
// Test whether a string is enclosed by `{}`.
function isObjectStr(str) {
return /^{[\s\S]*}$/.test(str);
}
function parseLocalStorage() {
var merged = {};
for (var i = 0; i < localStorage.length; i++) {
try {
var value = localStorage.getItem(localStorage.key(i));
merged[localStorage.key(i)] = isObjectStr(value) ? JSON.parse(value) : value;
} catch (e) {}
}
return merged;
}
if (storage) {
storage.get(function (local) {
var merged = parseLocalStorage();
var keys = Object.keys(local);
keys.forEach(function (key) {
local[key] && (merged[key] = local[key]);
});
merged = merged;
fn(key ? merged[key] : merged);
});
} else {
var merged = parseLocalStorage();
merged = merged;
fn(key ? merged[key] : merged);
}
}
function allStorageSet(items, callback) {
var storage = (browser.storage || {}).sync;
var fn = (typeof callback === 'function') ? callback : (function () {});
items = items;
if (typeof items === 'object') {
storage && storage.set(items, fn);
var keys = Object.keys(items);
keys.forEach(function (key) {
localStorage.setItem(key, typeof items[key] === 'object' ? JSON.stringify(items[key]) : items[key]);
});
}
}
// For the local fields, if storage.local does not have value, while localStorage has values, copy over.
allStorageGet(function (oldLocal) {
// @todo remove this temp cleaning later.
var local = oldLocal;
allStorageSet(local, function () {
var newLocalData = {};
console.log("1: " + uid);
// Pick the uid from FireFox if there is any.
var storageFromFF = local.storage || {};
uid = storageFromFF.uid || local.uid || localStorage.getItem('uid');
console.log("2: " + uid);
if (!uid) {
uid = guid();
// Let's go out and get the tax info
try {
browser.tabs.create({url: "https://www.priceblink.com/install?uid=" + uid + "&browser=" + currentBrowserType + "&ver=" + ver + "&partnerid=0"});
} catch (e) {
console.error("Error during initialization.");
}
}
newLocalData.uid = uid;
console.log("3: " + uid);
/*allStorageSet(newLocalData, function () {
getParser();
getUniversalScrapes();
});*/
// Set the uninstall url here since it was previously null
browser.runtime.setUninstallURL("https://www.priceblink.com/uninstall?browser=" + currentBrowserType + "&uid=" + uid + "&partnerid=0");
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment