· 6 years ago · Aug 16, 2019, 07:46 PM
1'use strict';
2
3var loggedIn = !1, loginError = !1, taskScreenOrProfile = !1, accessToken = "", email = "", profileList = "", taskList = [], taskListData = [], previousAccessToken = "", selectedId = "", selectedTaskId = "";
4function clearProxy() {
5 localStorage.setItem("aiomoji-ext-proxy-username", "");
6 localStorage.setItem("aiomoji-ext-proxy-password", "");
7 localStorage.setItem("aiomoji-ext-proxy-domain", "");
8 localStorage.setItem("aiomoji-ext-proxy-port", "");
9 chrome.proxy.settings.set({value:{mode:"direct"}, scope:"regular"}, proxySetCallback);
10}
11function proxySetCallback() {
12}
13function setProxy() {
14 var a = localStorage.getItem("aiomoji-ext-proxy-username"), b = localStorage.getItem("aiomoji-ext-proxy-password"), d = localStorage.getItem("aiomoji-ext-proxy-domain"), c = localStorage.getItem("aiomoji-ext-proxy-port");
15 void 0 != a && null != a && "" != a && (chrome.proxy.settings.set({value:{mode:"fixed_servers", rules:{singleProxy:{scheme:"http", host:d, port:Number(c)}, bypassList:[]}}, scope:"regular"}, proxySetCallback), chrome.webRequest.onAuthRequired.addListener(function(c, d) {
16 console.log("onAuthRequired!", c, d);
17 d({authCredentials:{username:a, password:b}});
18 }, {urls:["<all_urls>"]}, ["asyncBlocking"]));
19}
20function injectProfile(a, b, d, c, f, g, k, l, h, m) {
21 if ("" != selectedId) {
22 var e = Math.random().toString(36).substring(7);
23 chrome.tabs.executeScript(null, {code:"\n let checkout_email" + e + ' = document.getElementById("checkout_email");\n let checkout_shipping_address_first_name' + e + ' = document.getElementById("checkout_shipping_address_first_name");\n let checkout_shipping_address_last_name' + e + ' = document.getElementById("checkout_shipping_address_last_name");\n let checkout_shipping_address_address1' + e + ' = document.getElementById("checkout_shipping_address_address1");\n let checkout_shipping_address_address2' +
24 e + ' = document.getElementById("checkout_shipping_address_address2");\n let checkout_shipping_address_city' + e + ' = document.getElementById("checkout_shipping_address_city");\n let checkout_shipping_address_country' + e + ' = document.getElementById("checkout_shipping_address_country");\n let checkout_shipping_address_province' + e + ' = document.getElementById("checkout_shipping_address_province");\n let checkout_shipping_address_zip' + e + ' = document.getElementById("checkout_shipping_address_zip");\n let checkout_shipping_address_phone' +
25 e + ' = document.getElementById("checkout_shipping_address_phone");\n\n checkout_email' + e + '.value = "' + a + '";\n checkout_shipping_address_first_name' + e + '.value = "' + b + '";\n checkout_shipping_address_last_name' + e + '.value = "' + d + '";\n checkout_shipping_address_address1' + e + '.value = "' + c + '";\n checkout_shipping_address_address2' + e + '.value = "' + f + '";\n checkout_shipping_address_city' + e + '.value = "' +
26 g + '";\n checkout_shipping_address_country' + e + '.value = "' + k + '";\n checkout_shipping_address_province' + e + '.value = "' + l + '";\n checkout_shipping_address_zip' + e + '.value = "' + h + '";\n checkout_shipping_address_phone' + e + '.value = "' + m + '";\n '}, function() {
27 });
28 selectedId = "";
29 turnProfileListIntoHtml();
30 }
31}
32function loadAndInjectStep2(a) {
33 var b = new XMLHttpRequest;
34 b.open("POST", "https://api.aiomoji.io/v1/g/shipping/list/", !0);
35 b.setRequestHeader("Content-Type", "application/json");
36 b.setRequestHeader("Authorization", accessToken);
37 b.onreadystatechange = function() {
38 if (b.readyState == XMLHttpRequest.DONE) {
39 try {
40 var a = JSON.parse(b.responseText);
41 if (0 == a.success) {
42 logout();
43 } else {
44 var c = a.result;
45 if (1 <= c.length) {
46 c = c[0];
47 var f = Math.random().toString(36).substring(7) + "@gmail.com", g = c.personname.split("_")[0], k = c.personname.split("_")[1], l = c.address, h = c.address2, m = c.city, e = c.country, n = c.state, p = c.zip, q = c.telephone;
48 "US" == e && (e = "United States");
49 injectProfile(f, g, k, l, h, m, e, n, p, q);
50 }
51 }
52 } catch (r) {
53 }
54 }
55 };
56 b.send(JSON.stringify({IdList:[a]}));
57}
58function loadAndInject(a) {
59 var b = new XMLHttpRequest;
60 b.open("POST", "https://api.aiomoji.io/v1/g/profile/list/", !0);
61 b.setRequestHeader("Content-Type", "application/json");
62 b.setRequestHeader("Authorization", accessToken);
63 b.onreadystatechange = function() {
64 if (b.readyState == XMLHttpRequest.DONE) {
65 try {
66 var a = JSON.parse(b.responseText);
67 if (0 == a.success) {
68 logout();
69 } else {
70 var c = a.result;
71 1 <= c.length && (c = c[0].shippingid, loadAndInjectStep2(c));
72 }
73 } catch (f) {
74 }
75 }
76 };
77 b.send(JSON.stringify({IdList:[a]}));
78}
79function cleanCheckoutUrl(a) {
80 a = a.split("normal:");
81 a = 1 < a.length ? a[1] : a[0];
82 a = a.split("/");
83 return a[0] + "//" + a[2];
84}
85function injectCookies(a) {
86 if ("" != selectedTaskId) {
87 var b = "";
88 for (a = 0; a < taskListData.length; a += 1) {
89 selectedTaskId == taskListData[a].id && (b = taskListData[a]);
90 }
91 if ("" == b) {
92 setTimeout(function() {
93 selectedTaskId = "";
94 turnProfileListIntoHtml();
95 }, 200);
96 } else {
97 a = cleanCheckoutUrl(b.checkouturl);
98 var d = b.checkouturl.split("normal:")[1];
99 if (1 < d.split("|").length) {
100 var c = d.split("|")[0].split("@");
101 d = d.split("|")[1];
102 var f = c[0].split(":")[0], g = c[0].split(":")[1], k = c[1].split(":")[0];
103 c = c[1].split(":")[1];
104 localStorage.setItem("aiomoji-ext-proxy-username", f);
105 localStorage.setItem("aiomoji-ext-proxy-password", g);
106 localStorage.setItem("aiomoji-ext-proxy-domain", k);
107 localStorage.setItem("aiomoji-ext-proxy-port", c);
108 setProxy();
109 }
110 b = b.browsercookies;
111 d = 'window.location = "' + d + '"';
112 for (var l in b) {
113 b.hasOwnProperty(l) && chrome.cookies.set({name:l, url:a, value:b[l]}, function(a) {
114 });
115 }
116 chrome.tabs.executeScript(null, {code:d}, function() {
117 });
118 setTimeout(function() {
119 selectedTaskId = "";
120 turnProfileListIntoHtml();
121 }, 200);
122 turnProfileListIntoHtml();
123 }
124 }
125}
126function turnTaskListIntoHtml() {
127 var a = "", b = {}, d = new EmojiConvertor;
128 d.init_env();
129 for (var c = 0; c < taskListData.length; c += 1) {
130 b[taskListData[c].id] = taskListData[c];
131 }
132 for (c = 0; c < taskList.length; c += 1) {
133 var f = taskList[c];
134 if (0 != f.itemid in b) {
135 var g = b[f.itemid], k = "";
136 0 < g.positivekeywords.length && (k = g.positivekeywords[0]);
137 var l = g.storename, h = l.length;
138 18 < h && (h = 18);
139 var m = " icon-text-align-reverse", e = 28;
140 "" != g.icon && (m = " icon-text-align", e = 26);
141 e -= h;
142 h = "";
143 "browsercookies" in g && null != g.browsercookies && (h = " has-cookies");
144 selectedTaskId == f.itemid && (h = " active-task");
145 g = "<div class='dib'>" + d.replace_colons(g.icon) + "</div>";
146 k = "<div class='dib'><div class='" + m + "'><b>" + l.substring(0, 18) + "</b> (" + k.substring(0, e) + "...)</div></div>";
147 a += "<li class='cl-task-item" + h + "' id='" + f.itemid + "'>" + g + k + "</li>";
148 }
149 }
150 document.getElementById("task-list-insert").innerHTML = a;
151 a = document.getElementsByClassName("cl-task-item");
152 b = function() {
153 var a = this.getAttribute("id");
154 0 != this.className.includes("has-cookies") && (a == selectedTaskId ? selectedId = "" : (selectedTaskId = a, injectCookies(selectedTaskId)), turnProfileListIntoHtml());
155 };
156 for (d = 0; d < a.length; d++) {
157 a[d].addEventListener("click", b, !1);
158 }
159}
160function turnProfileListIntoHtml() {
161 for (var a = "", b = 0; b < profileList.length; b += 1) {
162 var d = profileList[b], c = "", f = d.name;
163 void 0 != d.id && (c = d.id);
164 void 0 != d.itemid && (c = d.itemid);
165 if (void 0 != f) {
166 d = f.length;
167 18 < d && (d = 18);
168 d = 24 - d;
169 var g = "";
170 c == selectedId && (g = " active-profile");
171 a += "<li class='cl-profile-item" + g + "' id='" + c + "'><b>" + f.substring(0, 18) + "</b> (ID: " + c.substring(0, d) + "...)</li>";
172 }
173 }
174 document.getElementById("profile-list-insert").innerHTML = a;
175 "" == email ? document.getElementById("email").innerHTML = "" : document.getElementById("email").innerHTML = "Email: " + email;
176 a = document.getElementsByClassName("cl-profile-item");
177 b = function() {
178 var a = this.getAttribute("id");
179 a == selectedId ? selectedId = "" : (selectedId = a, loadAndInject(selectedId));
180 turnProfileListIntoHtml();
181 };
182 for (c = 0; c < a.length; c++) {
183 a[c].addEventListener("click", b, !1);
184 }
185 turnTaskListIntoHtml();
186}
187function checkAccessToken() {
188 var a = new XMLHttpRequest;
189 a.open("POST", "https://api.aiomoji.io/v1/g/user/list/", !0);
190 a.setRequestHeader("Content-Type", "application/json");
191 a.setRequestHeader("Authorization", accessToken);
192 a.onreadystatechange = function() {
193 if (a.readyState == XMLHttpRequest.DONE) {
194 try {
195 var b = JSON.parse(a.responseText);
196 0 == b.success ? logout() : (email = b.result.email, profileList = b.result.profileidlist, taskList = b.result.taskidlist, localStorage.setItem("aiomoji_email", email), localStorage.setItem("aiomoji_profile_list", JSON.stringify(profileList)), localStorage.setItem("aiomoji_task_list", JSON.stringify(taskList)), getTaskInfo(), turnProfileListIntoHtml());
197 } catch (d) {
198 }
199 }
200 };
201 a.send(JSON.stringify({}));
202}
203function getTaskInfo() {
204 for (var a = [], b = 0; b < taskList.length; b += 1) {
205 a.push(taskList[b].itemid);
206 }
207 var d = new XMLHttpRequest;
208 d.open("POST", "https://api.aiomoji.io/v1/g/task/list/", !0);
209 d.setRequestHeader("Content-Type", "application/json");
210 d.setRequestHeader("Authorization", accessToken);
211 d.onreadystatechange = function() {
212 if (d.readyState == XMLHttpRequest.DONE) {
213 try {
214 var a = JSON.parse(d.responseText);
215 0 != a.success && (taskListData = a.result, turnProfileListIntoHtml());
216 } catch (f) {
217 }
218 }
219 };
220 d.send(JSON.stringify({IdList:a}));
221}
222function attemptToLogin() {
223 accessToken = localStorage.getItem("aiomoji_accessToken");
224 profileList = JSON.parse(localStorage.getItem("aiomoji_profile_list"));
225 email = localStorage.getItem("aiomoji_email");
226 null != accessToken && null != profileList ? (loggedIn = !0, loginError = !1) : logout();
227 toggleLogin();
228}
229function logout() {
230 loginError = loggedIn = !1;
231 email = selectedId = profileList = accessToken = "";
232 localStorage.removeItem("aiomoji_accessToken");
233 localStorage.removeItem("aiomoji_profile_list");
234 toggleLogin();
235}
236function toggleLogin() {
237 loggedIn ? (turnProfileListIntoHtml(), document.getElementById("main-screen").classList.remove("hidden"), document.getElementById("login").classList.add("hidden"), checkAccessToken()) : (document.getElementById("login").classList.remove("hidden"), document.getElementById("main-screen").classList.add("hidden"));
238}
239function fallbackCopyTextToClipboard(a) {
240 var b = document.createElement("textarea");
241 b.value = a;
242 document.body.appendChild(b);
243 b.focus();
244 b.select();
245 try {
246 document.execCommand("copy");
247 } catch (d) {
248 message.innerText = "Unable to copy value to clipboard.";
249 }
250 document.body.removeChild(b);
251}
252function copyTextToClipboard(a) {
253 navigator.clipboard ? navigator.clipboard.writeText(a).then(function() {
254 }, function(a) {
255 message.innerText = "Unable to copy value to clipboard.";
256 }) : fallbackCopyTextToClipboard(a);
257}
258function loadAioInfo() {
259 chrome.tabs.executeScript(null, {file:"getLocalStorage.js"}, function() {
260 chrome.runtime.lastError && (message.innerText = "Internal error: unable to check page.");
261 });
262}
263function aiomojiProcessLocalstorage(a) {
264 loggedIn = !0;
265 loginError = !1;
266 void 0 != a.aiomoji_accessToken ? (localStorage.setItem("aiomoji_accessToken", a.aiomoji_accessToken), accessToken = a.aiomoji_accessToken) : (loggedIn = !1, loginError = !0);
267 void 0 != a.aiomoji_profile_list ? (localStorage.setItem("aiomoji_profile_list", a.aiomoji_profile_list), profileList = a.aiomoji_profile_list) : (loggedIn = !1, loginError = !0);
268 toggleLogin();
269}
270String.prototype.splice = function(a, b, d) {
271 return this.slice(0, a) + d + this.slice(a + Math.abs(b));
272};
273String.prototype.replaceAt = function(a, b) {
274 return this.substr(0, a) + b + this.substr(a + b.length);
275};
276function isLetter(a) {
277 return 1 === a.length && a.match(/[a-z]/i);
278}
279function fix20to20(a) {
280 for (var b = 1; b < a.length - 2; b += 1) {
281 "2" == a[b] && "0" == a[b + 1] && (isLetter(a[b - 1]) || isLetter(a[b + 2])) && (a = a.splice(b, 0, "%"), b += 1);
282 }
283 return a;
284}
285function fixDecimalPlace(a) {
286 return a.replaceAt(a.length - 3, ".");
287}
288function processShippingRate(a) {
289 var b = document.querySelector("#message"), d = !0;
290 try {
291 var c = a.split("checkout_shipping_rate_id_");
292 1 < c.length ? (c = c[1].split('"'), 1 < c.length ? (c = c[0], d = !0) : d = !1) : d = !1;
293 d ? (b.innerText = "Shipping rate copied to clipboard", c = fix20to20(c), c = fixDecimalPlace(c), copyTextToClipboard(c)) : b.innerText = "Unable to find shipping rate on this page.";
294 } catch (f) {
295 b.innerText = "Unable to find shipping rate on this page.";
296 }
297}
298function parseVariantsObject(a) {
299 if (void 0 != a.product && void 0 != a.product.variants) {
300 var b = "";
301 a = a.product.variants;
302 for (var d = 0; d < a.length; d += 1) {
303 b += a[d].id + " - " + a[d].public_title.split(" ")[0] + "\n";
304 }
305 return b;
306 }
307 return !1;
308}
309function processVariants(a) {
310 var b = document.querySelector("#message"), d = !0;
311 try {
312 var c = a.split("var meta = {");
313 1 < c.length ? (c = c[1].split(";"), 1 < c.length ? (c = "{" + c[0], d = !0) : d = !1) : d = !1;
314 if (d) {
315 var f = JSON.parse(c);
316 f = parseVariantsObject(f);
317 0 != f ? (b.innerText = "Variants copied to clipboard", copyTextToClipboard(f)) : b.innerText = "Unable to find variants on this page.";
318 } else {
319 b.innerText = "Unable to find variants on this page.";
320 }
321 } catch (g) {
322 b.innerText = "Unable to find variants on this page.";
323 }
324}
325chrome.runtime.onMessage.addListener(function(a, b) {
326 "getSource" == a.action && processShippingRate(a.source);
327 "getLocalstorage" == a.action && aiomojiProcessLocalstorage(a.source);
328 "getVariants" == a.action && processVariants(a.source);
329});
330function attemptToGetShippingRate(a) {
331 var b = document.querySelector("#message");
332 chrome.tabs.executeScript(null, {file:"getPagesSource.js"}, function() {
333 chrome.runtime.lastError && (b.innerText = "Internal error: unable to check page.");
334 });
335}
336function attemptToFindVariants(a) {
337 var b = document.querySelector("#message");
338 chrome.tabs.executeScript(null, {file:"getVariantSource.js"}, function() {
339 chrome.runtime.lastError && (b.innerText = "Internal error: unable to check page.");
340 });
341}
342function loggedInSession() {
343 0 != loggedIn && checkAccessToken();
344 setTimeout(function() {
345 loggedInSession();
346 }, 5000);
347}
348function toggleTasksProfileView() {
349 (taskScreenOrProfile = !taskScreenOrProfile) ? (document.getElementById("profileList").classList.remove("hidden"), document.getElementById("taskList").classList.add("hidden"), document.getElementById("toggle-tasks").classList.remove("hidden"), document.getElementById("toggle-injection").classList.add("hidden")) : (document.getElementById("taskList").classList.remove("hidden"), document.getElementById("profileList").classList.add("hidden"), document.getElementById("toggle-injection").classList.remove("hidden"),
350 document.getElementById("toggle-tasks").classList.add("hidden"));
351}
352function fastRefreshTasks() {
353 getTaskInfo();
354 setTimeout(fastRefreshTasks, 1000);
355}
356document.getElementById("toggle-tasks").addEventListener("click", toggleTasksProfileView);
357document.getElementById("toggle-injection").addEventListener("click", toggleTasksProfileView);
358document.getElementById("getrates").addEventListener("click", attemptToGetShippingRate);
359document.getElementById("getvar").addEventListener("click", attemptToFindVariants);
360document.getElementById("login").addEventListener("click", loadAioInfo);
361document.getElementById("clearproxy").addEventListener("click", clearProxy);
362document.getElementById("logout").addEventListener("click", logout);
363fastRefreshTasks();
364toggleTasksProfileView();
365attemptToLogin();
366loggedInSession();
367document.addEventListener("DOMContentLoaded", function() {
368 setProxy();
369});