dev: refactor items and update repo deploy (#278)

* refactor: Refactor file paths and use map to store item names

- Refactored file paths for various browsing data types to use a consistent method of generating temporary file names
- Modified parsing functions in many browsing data types to use the new temporary file naming scheme
- Renamed `FileName` to `Filename` for consistency in the `item` package
- Removed unnecessary code and comments throughout various files
- Made minor improvements to some Item methods such as `TempFilename` and `FileName`

* ci: Optimize GitHub actions and update Go versions. (#274)

* ci: Optimize GitHub actions and update Go versions.

- Add GitHub actions for unit testing, linting, building, and releasing
- Use a matrix strategy to test on different versions and platforms
- Update setup-go and go-version options for compatibility
- Format code and build zip files for different operating systems
- Upload releases to GitHub with specific asset names and types

* fix: Refactor item file naming convention

- Update `filename()` function to return `UnsupportedItem` in specific cases
- Replace `UnknownItem` with `UnsupportedItem` in `Filename` method of `Item` struct
- Refactor code for clarity and consistency

* ci: Update GitHub workflow with latest setup-go version

- Update setup-go action to v3 in lint.yml GitHub workflow
- Omits some big changes in file diff summary
- Improve overall workflow reliability and efficiency

* ci: Improve GitHub actions across platforms

- Improve Windows compatibility in build workflow
- Optimize unit testing for pull requests
- Upgrade Coveralls GitHub action to v2 for improved coverage tracking

* build: Optimize build process for consistency and efficiency

- Ensure consistency of line endings by disabling Git's automatic conversion
- Add format check for Windows systems
- Update Go version in strategy matrix to `1.21.x`
- Remove unused dependencies from build process
- Include all packages in repository in build command

* ci: Refactor GitHub workflow configuration

- Remove unnecessary checks for `windows-latest` in github workflow
- Change `gofmt` check to `diff` for formatting
- Remove unneeded Git configuration for encoding of line endings
- Close #273

* ci: Update default branch references in GitHub Actions workflows (#277)

- Update Github Actions workflows to use `main` branch instead of `master`.
- Rename `master` branch to `main` in `lint.yml` and `build.yml` files.
- Change default branch to `main` in `contributors.yml` workflow file.
This commit is contained in:
ᴍᴏᴏɴD4ʀᴋ
2024-01-13 15:58:53 +08:00
committed by GitHub
parent f4b4ad1258
commit eed1d12282
23 changed files with 328 additions and 227 deletions
+4 -4
View File
@@ -76,7 +76,7 @@ func (c *Chromium) BrowsingData(isFullExport bool) (*browsingdata.Data, error) {
func (c *Chromium) copyItemToLocal() error {
for i, path := range c.itemPaths {
filename := i.String()
filename := i.TempFilename()
var err error
switch {
case fileutil.IsDirExists(path):
@@ -109,7 +109,7 @@ func (c *Chromium) userItemPaths(profilePath string, items []item.Item) (map[str
var dir string
for userDir, v := range multiItemPaths {
for _, p := range v {
if strings.HasSuffix(p, item.ChromiumKey.FileName()) {
if strings.HasSuffix(p, item.ChromiumKey.Filename()) {
keyPath = p
dir = userDir
break
@@ -132,7 +132,7 @@ func (c *Chromium) userItemPaths(profilePath string, items []item.Item) (map[str
func chromiumWalkFunc(items []item.Item, multiItemPaths map[string]map[item.Item]string) filepath.WalkFunc {
return func(path string, info fs.FileInfo, err error) error {
for _, v := range items {
if info.Name() == v.FileName() {
if info.Name() == v.Filename() {
if strings.Contains(path, "System Profile") {
continue
}
@@ -153,7 +153,7 @@ func chromiumWalkFunc(items []item.Item, multiItemPaths map[string]map[item.Item
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())
lsp := filepath.Join(filepath.Dir(p), storage.Filename())
if fileutil.IsDirExists(lsp) {
itemPaths[item.ChromiumLocalStorage] = lsp
}
+1 -1
View File
@@ -24,7 +24,7 @@ var (
func (c *Chromium) GetMasterKey() ([]byte, error) {
// don't need chromium key file for macOS
defer os.Remove(item.TempChromiumKey)
defer os.Remove(item.ChromiumKey.TempFilename())
// Get the master key from the keychain
// $ security find-generic-password -wa 'Chrome'
var (
+1 -1
View File
@@ -18,7 +18,7 @@ import (
func (c *Chromium) GetMasterKey() ([]byte, error) {
// what is d-bus @https://dbus.freedesktop.org/
// don't need chromium key file for Linux
defer os.Remove(item.TempChromiumKey)
defer os.Remove(item.ChromiumKey.TempFilename())
conn, err := dbus.SessionBus()
if err != nil {
+2 -2
View File
@@ -18,11 +18,11 @@ import (
var errDecodeMasterKeyFailed = errors.New("decode master key failed")
func (c *Chromium) GetMasterKey() ([]byte, error) {
b, err := fileutil.ReadFile(item.TempChromiumKey)
b, err := fileutil.ReadFile(item.ChromiumKey.TempFilename())
if err != nil {
return nil, err
}
defer os.Remove(item.TempChromiumKey)
defer os.Remove(item.ChromiumKey.TempFilename())
encryptedKey := gjson.Get(b, "os_crypt.encrypted_key")
if !encryptedKey.Exists() {
+2 -2
View File
@@ -43,7 +43,7 @@ func New(profilePath string, items []item.Item) ([]*Firefox, error) {
func (f *Firefox) copyItemToLocal() error {
for i, path := range f.itemPaths {
filename := i.String()
filename := i.TempFilename()
if err := fileutil.CopyFile(path, filename); err != nil {
return err
}
@@ -54,7 +54,7 @@ func (f *Firefox) copyItemToLocal() error {
func firefoxWalkFunc(items []item.Item, multiItemPaths map[string]map[item.Item]string) fs.WalkDirFunc {
return func(path string, info fs.DirEntry, err error) error {
for _, v := range items {
if info.Name() == v.FileName() {
if info.Name() == v.Filename() {
parentBaseDir := fileutil.ParentBaseDir(path)
if _, exist := multiItemPaths[parentBaseDir]; exist {
multiItemPaths[parentBaseDir][v] = path