gosuki/firefox.go

61 lines
1.1 KiB
Go
Raw Normal View History

2018-06-08 16:27:33 +00:00
package main
import (
"time"
"github.com/fsnotify/fsnotify"
)
2018-06-08 16:27:33 +00:00
var Firefox = BrowserPaths{
"places.sqlite",
"/home/spike/.mozilla/firefox/p1rrgord.default/",
}
type FFBrowser struct {
BaseBrowser //embedding
}
func NewFFBrowser() IBrowser {
browser := &FFBrowser{}
browser.name = "firefox"
browser.bType = TFirefox
browser.baseDir = Firefox.BookmarkDir
browser.bkFile = Firefox.BookmarkFile
browser.Stats = &ParserStats{}
browser.NodeTree = &Node{Name: "root", Parent: nil}
browser.eventsChan = make(chan fsnotify.Event, EventsChanLen)
2018-06-08 16:27:33 +00:00
// Across jobs buffer
browser.InitBuffer()
browser.SetupWatcher()
// Run debouncer to avoid duplicate running of jobs
// when a batch of events is received
go debouncer(3000*time.Millisecond, browser.eventsChan, browser)
2018-06-08 16:27:33 +00:00
return browser
}
func (bw *FFBrowser) Watch() bool {
if !bw.isWatching {
go WatcherThread(bw)
bw.isWatching = true
return true
}
return false
}
func (bw *FFBrowser) Load() {
bw.BaseBrowser.Load()
bw.Run()
}
func (bw *FFBrowser) Run() {
log.Infof("Parsing Firefox bookmarks\n")
}