Skip to content

Commit d4f9d23

Browse files
author
Robin Jullian
committed
change icon getter
1 parent 7a76536 commit d4f9d23

4 files changed

Lines changed: 33 additions & 11 deletions

File tree

app/main.js

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const winston = require('winston')
44
const {remote, ipcRenderer} = require('electron')
55
const {app} = require('electron').remote;
66
const lowdb = require('lowdb')
7+
const favicon = require('favicon');
78

89
const locationMsg = require(`${__dirname}/../app/modules/lang.js`)
910
const adapter = require(`${__dirname}/../app/modules/adapter.js`)
@@ -85,28 +86,37 @@ const shuttle = {
8586

8687
/** Adds a bookmark to the bookmarks bar */
8788
addBookmarkToBar: (url, id) => {
89+
90+
let favurl = url
91+
92+
if (url.indexOf('http://') === -1 || url.indexOf('http://') === -1) {
93+
favurl = `http://${url}`
94+
}
95+
8896
if (url.startsWith('mod:')) {
89-
document.querySelector('.bookmarks-zone').innerHTML += `<a href="#" class="bubble-btn" id="id-${id}" onclick="shuttle.loadView('${url}', ${id})" oncontextmenu="shuttle.askToRemoveBookmark('${id}')" onmouseover="shuttle.showControlBar('id-${id}', 'show')" style="background-image: url(../app/modules/${url.replace('mod:', '')}/icon.png);"></a>`
97+
document.querySelector('.bookmarks-zone').innerHTML += `<a href="#" class="bubble-btn" id="id-${id}" onclick="shuttle.loadView('${url}', ${id})" oncontextmenu="shuttle.askToRemoveBookmark(${id}, '${url}')" onmouseover="shuttle.showControlBar('id-${id}', 'show')" style="background-image: url(../app/modules/${url.replace('mod:', '')}/icon.png);"></a>`
9098
} else {
91-
fetch(`http://besticon-demo.herokuapp.com/allicons.json?url=${url}`).then((resp) => resp.json()).then((data) => {
92-
document.querySelector('.bookmarks-zone').innerHTML += `<a href="#" class="bubble-btn" id="id-${id}" onclick="shuttle.loadView('${url}', ${id})" oncontextmenu="shuttle.askToRemoveBookmark('${id}')" onmouseover="shuttle.showControlBar('id-${id}', 'show')" style="background-image: url(${data.icons[0].url});"></a>`
93-
}).catch((error) => {
94-
document.querySelector('.bookmarks-zone').innerHTML += `<a href="#" class="bubble-btn" id="id-${id}" onclick="shuttle.loadView('${url}', ${id})" oncontextmenu="shuttle.askToRemoveBookmark('${id}')" onmouseover="shuttle.showControlBar('id-${id}', 'show')" style="background-image: url(../../assets/img/no-icon.png);"></a>`
95-
}).then(() => {
96-
shuttle.reloadAddButton()
97-
})
99+
100+
favicon(favurl, function(err, favicon_url) {
101+
if (err || favicon_url === null) {
102+
document.querySelector('.bookmarks-zone').innerHTML += `<a href="#" class="bubble-btn" id="id-${id}" title="${url}" onclick="shuttle.loadView('${url}', ${id})" oncontextmenu="shuttle.askToRemoveBookmark(${id}, '${url}')" onmouseover="shuttle.showControlBar('id-${id}', 'show')" style="background-image: url(../assets/img/no-icon.png);"></a>`
103+
} else {
104+
document.querySelector('.bookmarks-zone').innerHTML += `<a href="#" class="bubble-btn" id="id-${id}" title="${url}" onclick="shuttle.loadView('${url}', ${id})" oncontextmenu="shuttle.askToRemoveBookmark(${id}, '${url}')" onmouseover="shuttle.showControlBar('id-${id}', 'show')" style="background-image: url(${favicon_url});"></a>`
105+
}
106+
});
107+
98108
}
99109
setTimeout(() => {
100110
shuttle.reloadAddButton()
101111
}, db.get('bookmarks').length * 1000)
102112
},
103113

104114
/** Asks the user to confirm the removal of a given bookmark */
105-
askToRemoveBookmark: (id) => {
115+
askToRemoveBookmark: (id, url) => {
106116
vex.dialog.buttons.YES.text = locationMsg('continue')
107117
vex.dialog.buttons.NO.text = locationMsg('cancel')
108118
vex.dialog.confirm({
109-
message: locationMsg('removeBookmarks'),
119+
message:`${locationMsg('removeBookmarks')} : ${url}`,
110120
callback: function (removalConfirmed) {
111121
if (removalConfirmed) {
112122
bookmarkUrl = idToUrl[id]
@@ -304,6 +314,10 @@ shuttle.initBookmarks(bookmarks)
304314
shuttle.showFrame(settings.get('settings.ShowFrame').value())
305315
shuttle.reloadAddButton()
306316

317+
setInterval(() => {
318+
shuttle.reloadAddButton()
319+
}, 500)
320+
307321
view.addEventListener('did-fail-load', (errorCode, errorDescription, validatedURL) => {
308322
console.log()
309323
currentBookmarkId = 'error'

main.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ const mb = menubar({
5656
mb.on('ready', () => {
5757
winston.log('Shuttle is ready')
5858
mb.tray.setContextMenu(contextMenu)
59-
mb.window.openDevTools()
6059
})
6160

6261
mb.on('after-create-window', () => {

package-lock.json

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"electron-localshortcut": "^3.1.0",
2828
"electron-squirrel-startup": "^1.0.0",
2929
"electron-updater": "^2.20.1",
30+
"favicon": "0.0.2",
3031
"lowdb": "^1.0.0",
3132
"menubar": "^5.2.3",
3233
"os-locale": "^2.1.0",

0 commit comments

Comments
 (0)