feat: support export chromium local storage

This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2022-04-19 22:33:12 +08:00
parent 2452b2670a
commit 4fe266d954
5 changed files with 52 additions and 33 deletions
+29 -11
View File
@@ -71,16 +71,21 @@ func (c *chromium) BrowsingData() (*browingdata.Data, error) {
func (c *chromium) copyItemToLocal() error {
for i, path := range c.itemPaths {
// var dstFilename = item.TempName()
var filename = i.String()
// TODO: Handle read file error
d, err := ioutil.ReadFile(path)
if err != nil {
return err
}
err = ioutil.WriteFile(filename, d, 0777)
if err != nil {
return err
if fileutil.FolderExists(path) {
if err := fileutil.CopyDir(path, i.String()); err != nil {
return err
}
} else {
var filename = i.String()
// TODO: Handle read file error
d, err := ioutil.ReadFile(path)
if err != nil {
return err
}
err = ioutil.WriteFile(filename, d, 0777)
if err != nil {
return err
}
}
}
return nil
@@ -91,7 +96,11 @@ func (c *chromium) getItemPath(profilePath string, items []item.Item) (map[item.
parentDir := fileutil.ParentDir(profilePath)
baseDir := fileutil.BaseDir(profilePath)
err := filepath.Walk(parentDir, chromiumWalkFunc(items, itemPaths, baseDir))
return itemPaths, err
if err != nil {
return itemPaths, err
}
fillLocalStoragePath(itemPaths, item.ChromiumLocalStorage)
return itemPaths, nil
}
func chromiumWalkFunc(items []item.Item, itemPaths map[item.Item]string, baseDir string) filepath.WalkFunc {
@@ -110,3 +119,12 @@ func chromiumWalkFunc(items []item.Item, itemPaths map[item.Item]string, baseDir
return err
}
}
func fillLocalStoragePath(itemPaths map[item.Item]string, storage item.Item) {
if p, ok := itemPaths[item.ChromiumHistory]; ok {
lsp := filepath.Join(filepath.Dir(p), storage.FileName())
if fileutil.FolderExists(lsp) {
itemPaths[item.ChromiumLocalStorage] = lsp
}
}
}