Skip to content

Commit

Permalink
Prettify code
Browse files Browse the repository at this point in the history
  • Loading branch information
aledeg committed Mar 4, 2021
1 parent 2f14d8b commit 53718ac
Show file tree
Hide file tree
Showing 7 changed files with 137 additions and 121 deletions.
57 changes: 29 additions & 28 deletions background.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ function notification(message) {
type: 'basic',
iconUrl: browser.extension.getURL('icons/linkdump-48.png'),
title: 'Linkdump',
message: browser.i18n.getMessage(message)
message: browser.i18n.getMessage(message),
});
}

Expand All @@ -47,7 +47,7 @@ async function addLink(link) {

urls = urls.flat();

await browser.storage.local.get('options').then(obj => {
await browser.storage.local.get('options').then((obj) => {
if (obj.options === undefined || obj.options.other === undefined) {
return;
}
Expand All @@ -56,7 +56,8 @@ async function addLink(link) {
}
if (obj.options.other.unique) {
urls = urls.filter(
(item, index, self) => self.findIndex(t => t.url === item.url) === index
(item, index, self) =>
self.findIndex((t) => t.url === item.url) === index
);
}
});
Expand All @@ -71,7 +72,7 @@ function getLinks(bookmark, initialLinks = []) {
if (bookmark.url) {
links.push({ url: bookmark.url, title: bookmark.title });
} else if (bookmark.children) {
bookmark.children.forEach(child => {
bookmark.children.forEach((child) => {
links = getLinks(child, links);
});
}
Expand All @@ -90,56 +91,56 @@ function getDownloadOptions(format) {
return {
reducer: markdownReducer,
filename: 'linkdump.md',
type: 'text/markdown'
type: 'text/markdown',
};
case 'html':
return {
reducer: htmlReducer,
filename: 'linkdump.html',
type: 'text/html'
type: 'text/html',
};
case 'dokuwiki':
return {
reducer: dokuwikiReducer,
filename: 'linkdump.dk',
type: 'text/plain'
type: 'text/plain',
};
case 'phpbb':
return {
reducer: phpbbReducer,
filename: 'linkdump.bb',
type: 'text/plain'
type: 'text/plain',
};
case 'restructured':
return {
reducer: restructuredReducer,
filename: 'linkdump.rst',
type: 'text/plain'
type: 'text/plain',
};
default:
return {
reducer: textReducer,
filename: 'linkdump.txt',
type: 'text/plain'
type: 'text/plain',
};
}
}

function copy(downloadOptions) {
browser.storage.local.get('urls').then(obj => {
browser.storage.local.get('urls').then((obj) => {
if (!obj.urls) return;

const content = obj.urls.reduce(downloadOptions.reducer, '');

browser.runtime.sendMessage({
action: 'copy',
payload: content
payload: content,
});
});
}

function download(downloadOptions) {
browser.storage.local.get('urls').then(obj => {
browser.storage.local.get('urls').then((obj) => {
if (!obj.urls) return;

const content = obj.urls.reduce(downloadOptions.reducer, '');
Expand All @@ -149,9 +150,9 @@ function download(downloadOptions) {
.download({
url: URL.createObjectURL(blob),
filename: downloadOptions.filename,
saveAs: true
saveAs: true,
})
.then(id => {
.then((id) => {
downloadId = id;
});
});
Expand All @@ -163,7 +164,7 @@ async function deleteLink(link) {
let { urls } = obj;

urls = urls.filter(
item => item.url !== link.url && item.title !== link.title
(item) => item.url !== link.url && item.title !== link.title
);

await browser.storage.local.set({ urls });
Expand All @@ -182,7 +183,7 @@ function handleChanged(delta) {
if (delta.state && delta.state.current === 'complete') {
browser.storage.local
.get('options')
.then(async obj => {
.then(async (obj) => {
if (
obj.options !== undefined &&
obj.options.clear !== undefined &&
Expand Down Expand Up @@ -211,7 +212,7 @@ function handleMessage(message) {
case 'copied': {
browser.storage.local
.get('options')
.then(async obj => {
.then(async (obj) => {
if (
obj.options !== undefined &&
obj.options.clear !== undefined &&
Expand Down Expand Up @@ -241,28 +242,28 @@ function handleMessage(message) {
browser.menus.create({
id: linkAddId,
title: browser.i18n.getMessage('menuAddToDump'),
contexts: ['link', 'image']
contexts: ['link', 'image'],
});

browser.menus.create({
id: bookmarkAddId,
title: browser.i18n.getMessage('menuAddToDump'),
contexts: ['bookmark']
contexts: ['bookmark'],
});

browser.menus.create({
id: captureLinkId,
title: browser.i18n.getMessage('menuCaptureLink'),
contexts: ['page']
contexts: ['page'],
});

browser.menus.create({
id: scrapeLinkId,
title: browser.i18n.getMessage('menuScrapeLink'),
contexts: ['page']
contexts: ['page'],
});

browser.menus.onClicked.addListener(info => {
browser.menus.onClicked.addListener((info) => {
switch (info.menuItemId) {
case linkAddId: {
const url = info.linkUrl || info.srcUrl;
Expand All @@ -275,26 +276,26 @@ browser.menus.onClicked.addListener(info => {
break;
case captureLinkId:
browser.tabs.executeScript({
file: "/content/content.js"
file: '/content/content.js',
});
browser.tabs.insertCSS({
file: "/content/content.css"
file: '/content/content.css',
});
break;
case scrapeLinkId:
browser.tabs.executeScript({
file: "/content/scrape.js"
file: '/content/scrape.js',
});
browser.tabs.insertCSS({
file: "/content/content.css"
file: '/content/content.css',
});
break;
default:
// Do nothing on purpose
}
});

browser.pageAction.onClicked.addListener(tab => {
browser.pageAction.onClicked.addListener((tab) => {
addLink(tab);
});

Expand Down
28 changes: 14 additions & 14 deletions content/content.css
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
:root {
--active-color: #007bc5;
--active-color: #007bc5;
}
.linkdump {
background-color: white;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJzSURBVFiFtZfPa1NBEMc/VrHRs5BiSVGboKAebGzTP6N/gXgpCOLZX1QFTwV70pNIwb/BU8FL1dR6UBQ18Q9oG7z0kjamBY2Hmacv29mXfXmvA8sjO/Od72R3dmYX8pMJ4B5QB1rAvn7rOj+RI1efjAJLQBfoJYyu2hXyJC8C7wcQu2NdcbmQf0tJHo2PwIks5GNAc0jyaDw5DPJd4D5wDhgBzgILOu/a/gJKeZJvAzMe3CzQMTB305CfBD4lkFcH4B8YuDdpAniZgRygbGBboeRXgD8ZyEGy3sXvhQawbIDbMfJJ4BkwneDjguFjK4R8BPhpgOdVXwY2dK4DzHn8PDZ8rIYEUDSAO0gJPgp8cXS7wJTjo4YcO9fPHYtwDHgF3NLflw3gV9VVDF0PaGhwAOeRXHFtOsC4Rd5Qg6bOnTHAm6orIN3OCuKa2sx79IsueZH+ItMGjijJnuHgaiyID4Z+RfWXDN0asoX/ZBS7q11U/WtDt87/1jpj6LvAcf0TO7H5JkY3XPIsU5Tp1z36eiyILUMfXUKilW0g29wnJezLxDaSQADH8PeAitp8T1jBm0hiHyAHuS5ZGVpz7KocbCifkWwvYHe8UxahK+8M4COP7VwsiA2kCAHcMHxsIvs/UFoGuJJgPw08RcovyMq0DR/PQ8jBPmKhF8cqdpH5jRSwILFWYDIRkUzeA16EkoOdAwsZyFNfOH2nYNZjX0sgb+I5akniqwMd5BpVRipaGXiI3dWGJo/EVwlDRyZykKxP+8KJxg/gdBbySIZ5Zq2R0zMrkgLyYvHtczw/FnFaap5SQh4Nb5Eut6/fVeA2xk1mWPkLtFu4uY7vL30AAAAASUVORK5CYII=');
background-repeat: no-repeat;
background-position: 0.5em center;
padding: 1em 0.5em;
padding-left: calc(1em + 32px);
border: 2px solid var(--active-color);
border-radius: 5px;
position: fixed;
top: 2em;
left: 2em;
z-index: 99999999;
color: black;
background-color: white;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAA7AAAAOwBeShxvQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJzSURBVFiFtZfPa1NBEMc/VrHRs5BiSVGboKAebGzTP6N/gXgpCOLZX1QFTwV70pNIwb/BU8FL1dR6UBQ18Q9oG7z0kjamBY2Hmacv29mXfXmvA8sjO/Od72R3dmYX8pMJ4B5QB1rAvn7rOj+RI1efjAJLQBfoJYyu2hXyJC8C7wcQu2NdcbmQf0tJHo2PwIks5GNAc0jyaDw5DPJd4D5wDhgBzgILOu/a/gJKeZJvAzMe3CzQMTB305CfBD4lkFcH4B8YuDdpAniZgRygbGBboeRXgD8ZyEGy3sXvhQawbIDbMfJJ4BkwneDjguFjK4R8BPhpgOdVXwY2dK4DzHn8PDZ8rIYEUDSAO0gJPgp8cXS7wJTjo4YcO9fPHYtwDHgF3NLflw3gV9VVDF0PaGhwAOeRXHFtOsC4Rd5Qg6bOnTHAm6orIN3OCuKa2sx79IsueZH+ItMGjijJnuHgaiyID4Z+RfWXDN0asoX/ZBS7q11U/WtDt87/1jpj6LvAcf0TO7H5JkY3XPIsU5Tp1z36eiyILUMfXUKilW0g29wnJezLxDaSQADH8PeAitp8T1jBm0hiHyAHuS5ZGVpz7KocbCifkWwvYHe8UxahK+8M4COP7VwsiA2kCAHcMHxsIvs/UFoGuJJgPw08RcovyMq0DR/PQ8jBPmKhF8cqdpH5jRSwILFWYDIRkUzeA16EkoOdAwsZyFNfOH2nYNZjX0sgb+I5akniqwMd5BpVRipaGXiI3dWGJo/EVwlDRyZykKxP+8KJxg/gdBbySIZ5Zq2R0zMrkgLyYvHtczw/FnFaap5SQh4Nb5Eut6/fVeA2xk1mWPkLtFu4uY7vL30AAAAASUVORK5CYII=');
background-repeat: no-repeat;
background-position: 0.5em center;
padding: 1em 0.5em;
padding-left: calc(1em + 32px);
border: 2px solid var(--active-color);
border-radius: 5px;
position: fixed;
top: 2em;
left: 2em;
z-index: 99999999;
color: black;
}
30 changes: 15 additions & 15 deletions content/content.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
const sendMessage = (event) => {
const element = event.target.closest('a') || event.target.closest('img');
const element = event.target.closest('a') || event.target.closest('img');

if (null === element) {
return;
}
if (null === element) {
return;
}

const url = element.href || element.src;
const title = element.text.trim() || element.alt || url;
const url = element.href || element.src;
const title = element.text.trim() || element.alt || url;

browser.runtime.sendMessage({
action: 'addLink',
payload: { url, title }
});
event.preventDefault();
event.stopPropagation();
}
browser.runtime.sendMessage({
action: 'addLink',
payload: { url, title },
});
event.preventDefault();
event.stopPropagation();
};

var divElement = document.createElement('div');
divElement.className = 'linkdump';
divElement.innerText = browser.i18n.getMessage(`warningLinkCapture`);
divElement.addEventListener('click', (event) => {
document.documentElement.removeEventListener('click', sendMessage, true);
divElement.remove();
document.documentElement.removeEventListener('click', sendMessage, true);
divElement.remove();
});
document.body.appendChild(divElement);

Expand Down
60 changes: 30 additions & 30 deletions content/scrape.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,41 @@
function filterUrl(url, filter) {
if (filter.indexOf('!') === 0) {
return (url.indexOf(filter.substring(1)) > -1 );
}
return (url.indexOf(filter) === -1 );
if (filter.indexOf('!') === 0) {
return url.indexOf(filter.substring(1)) > -1;
}
return url.indexOf(filter) === -1;
}

function getElementTitle(element) {
let title = element.title.trim();
if (title !== "") {
return title;
}
let title = element.title.trim();
if (title !== '') {
return title;
}

return element.text.trim();
return element.text.trim();
}

function getPageLinks(formData) {
const elements = document.querySelectorAll('a');
const filter = formData.get('filter');
let links = [];
elements.forEach(element => {
let url = element.href;
if (filterUrl(url, filter)) {
return;
}

let title = getElementTitle(element) || url;
links.push({url, title});
});

return links;
const elements = document.querySelectorAll('a');
const filter = formData.get('filter');
let links = [];
elements.forEach((element) => {
let url = element.href;
if (filterUrl(url, filter)) {
return;
}

let title = getElementTitle(element) || url;
links.push({ url, title });
});

return links;
}

function sendMessage(formData) {
browser.runtime.sendMessage({
action: 'addLink',
payload: getPageLinks(formData)
});
browser.runtime.sendMessage({
action: 'addLink',
payload: getPageLinks(formData),
});
}

var divElement = document.createElement('div');
Expand All @@ -44,13 +44,13 @@ document.body.appendChild(divElement);

var formElement = document.createElement('form');
formElement.addEventListener('submit', (event) => {
sendMessage(new FormData(event.target));
formElement.parentNode.remove();
sendMessage(new FormData(event.target));
formElement.parentNode.remove();
});
divElement.appendChild(formElement);

var filterElement = document.createElement('input');
filterElement.type = 'text';
filterElement.name = 'filter';
formElement.appendChild(filterElement);
filterElement.focus({preventScroll: true});
filterElement.focus({ preventScroll: true });
Loading

0 comments on commit 53718ac

Please sign in to comment.