diff --git a/manifest.json b/manifest.json index 1b9bf19..1eb8a9c 100644 --- a/manifest.json +++ b/manifest.json @@ -16,6 +16,7 @@ "activeTab", "notifications", "storage", + "webRequest", "" ], "background": { @@ -35,4 +36,4 @@ "options_ui": { "page": "options.html" } -} \ No newline at end of file +} diff --git a/options.js b/options.js index 6eb6559..6d2f3a1 100644 --- a/options.js +++ b/options.js @@ -34,18 +34,22 @@ function restoreOptions() { ); } -function saveOptions(evt) { - evt.preventDefault(); - var patterns = []; +function parseForm() { + var formData = []; var rows = document.querySelectorAll(".js-pattern-rows tr"); rows.forEach(row => { var server = row.querySelector('[name="server"]').value; var pattern = row.querySelector('[name="pattern"]').value; - if (server) { - patterns.push({server: server, pattern: pattern}); - } - }); + formData.push({server: server, pattern: pattern}); + }); + return formData; +} +function saveOptions(evt) { + evt.preventDefault(); + var formData = parseForm(); + var filter = item => item.server; + var patterns = formData.filter(filter); PatternStorage.set(patterns); } diff --git a/postify.js b/postify.js index 1b28c6b..5cf5518 100644 --- a/postify.js +++ b/postify.js @@ -1,15 +1,28 @@ const APP_NAME = 'Postify'; -const SERVER_ADDR = 'http://127.0.0.1:9999'; function sendUrl(url) { - browser.notifications.create({ - "type": "basic", - "iconUrl": browser.extension.getURL("icons/postify-48.png"), - "title": APP_NAME, - "message": url, - }); + // browser.notifications.create({ + // "type": "basic", + // "iconUrl": browser.extension.getURL("icons/postify-48.png"), + // "title": APP_NAME, + // "message": url, + // }); - fetch(SERVER_ADDR, { + function sendUrlToServers(patterns) { + patterns.forEach(item => { + var regex = new RegExp(item.pattern || '.*', 'i'); + if (regex.test(url) && item.server) { + console.log('SEND', url, 'TO', item.server); + sendUrlToServer(url, item.server); + } + }); + } + + var patterns = PatternStorage.get().then(sendUrlToServers); +} + +function sendUrlToServer(url, addr) { + fetch(addr, { method: 'POST', headers: { 'Accept': 'application/json',