Skip to content

Commit ad020cf

Browse files
committed
chore: downgrade golang version to 1.20, support Windows 7. (#435)
* chore: downgrade golang version to 1.20, support windows 7 * chore: Update dependencies for Go project. - Update dependencies in go.sum - Improvements and optimizations in various files - Bug fixes and error handling enhancements * chore: Update modernc.org/sqlite library versions in go.mod and go.sum files - Update version of `modernc.org/sqlite` to `v1.31.1` in `go.mod` and `go.sum` files - Update module hash in `go.sum` file for `modernc.org/sqlite` - Ensure consistency between `go.mod` and `go.sum` files in relation to `modernc.org/sqlite` version * chore: replace log/slog with standard logger (#436) * chore: replace log/slog with standard logger * chore: Update Go dependencies and versions - Update Go version from `1.22.5` to `1.20` and other dependencies - Update critical dependencies to latest versions - Ensure compatibility with new versions of dependencies * chore: Optimize dependency management in workflows - Update build and lint workflows to use `go mod tidy` for getting dependencies - Change modules download mode to `'mod'` in linters configuration - Add step to get dependencies in lint workflow * refactor: Update dependencies and refactor Chromium key deletion logic - Update `modernc.org/sqlite` to `v1.31.1` in `go.mod` and `go.sum` - Increase version number to `0.5.0` in `cmd/hack-browser-data/main.go` - Refactor and update logic for filtering and copying items in `browser/chromium/chromium.go` * Improve logging functionality and data type conversion - Add `String()` method to `DataType` enum in types.go - Update log level to Debug in logger_test.go - Set log level to Debug in `TestLoggerDebug` and `TestLoggerDebugf` functions
1 parent 3159141 commit ad020cf

File tree

33 files changed

+695
-364
lines changed

33 files changed

+695
-364
lines changed

.github/workflows/build.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
strategy:
1515
matrix:
1616
os: [ubuntu-latest, windows-latest, macos-latest]
17-
goVer: ["1.22.x"]
17+
goVer: ["1.20.x"]
1818

1919
steps:
2020
- name: Check out code into the Go module directory
@@ -43,7 +43,9 @@ jobs:
4343
diff -u <(echo -n) <(gofmt -d .)
4444
4545
- name: Get dependencies
46-
run: go mod download
46+
run: |
47+
go mod tidy
48+
go mod download
4749
4850
- name: Build
4951
run: go build -v ./...

.github/workflows/lint.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,19 @@ jobs:
1616
- name: Set Golang
1717
uses: actions/setup-go@v5
1818
with:
19-
go-version: "1.22.x"
19+
go-version: "1.20.x"
2020
cache: false
2121

2222
- name: Check spelling with custom config file
2323
uses: crate-ci/typos@master
2424
with:
2525
config: ./.typos.toml
2626

27+
- name: Get dependencies
28+
run: |
29+
go mod tidy
30+
go mod download
31+
2732
- name: Lint
2833
uses: golangci/golangci-lint-action@v6
2934
with:

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- name: Set up Go
1515
uses: actions/setup-go@v5
1616
with:
17-
go-version: '1.22.x'
17+
go-version: '1.20.x'
1818

1919
- name: Check out code
2020
uses: actions/checkout@v4

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
test:
1313
strategy:
1414
matrix:
15-
go-version: [ "1.22.x" ]
15+
go-version: [ "1.20.x" ]
1616
platform: [ubuntu-latest]
1717
runs-on: ${{ matrix.platform }}
1818
steps:
@@ -35,7 +35,7 @@ jobs:
3535
if: success()
3636
uses: actions/setup-go@v5
3737
with:
38-
go-version: "1.22.x"
38+
go-version: "1.20.x"
3939
- name: Checkout code
4040
uses: actions/checkout@v4
4141
- name: Calc coverage

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,4 +205,6 @@ hack-browser-data
205205

206206
# CICD Config
207207
!.typos.toml
208-
!.github/*.yml
208+
!.github/*.yml
209+
!log/
210+
examples/*.go

.golangci.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
run:
22
timeout: '5m'
33
allow-parallel-runners: true
4-
modules-download-mode: 'readonly'
4+
modules-download-mode: 'mod'
55

66
linters:
77
enable:
@@ -43,11 +43,8 @@ linters:
4343
- 'noctx'
4444
- 'sqlclosecheck'
4545
- 'staticcheck'
46-
- 'structcheck'
4746
- 'stylecheck'
4847
- 'unused'
49-
- 'deadcode'
50-
- 'varcheck'
5148
- 'paralleltest'
5249

5350
issues:

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Installation of `HackBrowserData` is dead-simple, just download [the release for
8787
8888
### Building from source
8989

90-
only support `go 1.21+` with go generics and `log/slog` standard library.
90+
only support `go 1.20+` with go generics.
9191

9292
```bash
9393
$ git clone https://github.com/moonD4rk/HackBrowserData

browser/browser.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package browser
22

33
import (
4-
"log/slog"
54
"path/filepath"
65
"sort"
76
"strings"
87

98
"github.com/moond4rk/hackbrowserdata/browser/chromium"
109
"github.com/moond4rk/hackbrowserdata/browser/firefox"
1110
"github.com/moond4rk/hackbrowserdata/browserdata"
11+
"github.com/moond4rk/hackbrowserdata/log"
1212
"github.com/moond4rk/hackbrowserdata/utils/fileutil"
1313
"github.com/moond4rk/hackbrowserdata/utils/typeutil"
1414
)
@@ -44,16 +44,16 @@ func pickChromium(name, profile string) []Browser {
4444
if name == "all" {
4545
for _, v := range chromiumList {
4646
if !fileutil.IsDirExists(filepath.Clean(v.profilePath)) {
47-
slog.Warn("find browser failed, profile folder does not exist", "browser", v.name)
47+
log.Warnf("find browser failed, profile folder does not exist, browser %s", v.name)
4848
continue
4949
}
5050
multiChromium, err := chromium.New(v.name, v.storage, v.profilePath, v.dataTypes)
5151
if err != nil {
52-
slog.Error("new chromium error", "err", err)
52+
log.Errorf("new chromium error %v", err)
5353
continue
5454
}
5555
for _, b := range multiChromium {
56-
slog.Warn("find browser success", "browser", b.Name())
56+
log.Warnf("find browser success, browser %s", b.Name())
5757
browsers = append(browsers, b)
5858
}
5959
}
@@ -63,14 +63,14 @@ func pickChromium(name, profile string) []Browser {
6363
profile = c.profilePath
6464
}
6565
if !fileutil.IsDirExists(filepath.Clean(profile)) {
66-
slog.Error("find browser failed, profile folder does not exist", "browser", c.name)
66+
log.Errorf("find browser failed, profile folder does not exist, browser %s", c.name)
6767
}
6868
chromes, err := chromium.New(c.name, c.storage, profile, c.dataTypes)
6969
if err != nil {
70-
slog.Error("new chromium error", "err", err)
70+
log.Errorf("new chromium error %v", err)
7171
}
7272
for _, chrome := range chromes {
73-
slog.Warn("find browser success", "browser", chrome.Name())
73+
log.Warnf("find browser success, browser %s", chrome.Name())
7474
browsers = append(browsers, chrome)
7575
}
7676
}
@@ -89,17 +89,17 @@ func pickFirefox(name, profile string) []Browser {
8989
}
9090

9191
if !fileutil.IsDirExists(filepath.Clean(profile)) {
92-
slog.Warn("find browser failed, profile folder does not exist", "browser", v.name)
92+
log.Warnf("find browser failed, profile folder does not exist, browser %s", v.name)
9393
continue
9494
}
9595

9696
if multiFirefox, err := firefox.New(profile, v.dataTypes); err == nil {
9797
for _, b := range multiFirefox {
98-
slog.Warn("find browser success", "browser", b.Name())
98+
log.Warnf("find browser success, browser %s", b.Name())
9999
browsers = append(browsers, b)
100100
}
101101
} else {
102-
slog.Error("new firefox error", "err", err)
102+
log.Errorf("new firefox error %v", err)
103103
}
104104
}
105105

browser/chromium/chromium.go

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ package chromium
22

33
import (
44
"io/fs"
5-
"log/slog"
65
"os"
76
"path/filepath"
8-
"slices"
97
"strings"
108

119
"github.com/moond4rk/hackbrowserdata/browserdata"
10+
"github.com/moond4rk/hackbrowserdata/log"
1211
"github.com/moond4rk/hackbrowserdata/types"
1312
"github.com/moond4rk/hackbrowserdata/utils/fileutil"
1413
"github.com/moond4rk/hackbrowserdata/utils/typeutil"
@@ -53,9 +52,12 @@ func (c *Chromium) Name() string {
5352

5453
func (c *Chromium) BrowsingData(isFullExport bool) (*browserdata.BrowserData, error) {
5554
// delete chromiumKey from dataTypes, doesn't need to export key
56-
dataTypes := slices.DeleteFunc(c.dataTypes, func(i types.DataType) bool {
57-
return i == types.ChromiumKey
58-
})
55+
var dataTypes []types.DataType
56+
for _, dt := range c.dataTypes {
57+
if dt != types.ChromiumKey {
58+
dataTypes = append(dataTypes, dt)
59+
}
60+
}
5961

6062
if !isFullExport {
6163
dataTypes = types.FilterSensitiveItems(c.dataTypes)
@@ -96,7 +98,7 @@ func (c *Chromium) copyItemToLocal() error {
9698
err = fileutil.CopyFile(path, filename)
9799
}
98100
if err != nil {
99-
slog.Error("copy item to local error", "path", path, "filename", filename, "err", err)
101+
log.Errorf("copy item to local, path %s, filename %s err %v", path, filename, err)
100102
continue
101103
}
102104
}
@@ -139,7 +141,7 @@ func chromiumWalkFunc(items []types.DataType, multiItemPaths map[string]map[type
139141
return func(path string, info fs.FileInfo, err error) error {
140142
if err != nil {
141143
if os.IsPermission(err) {
142-
slog.Warn("skipping walk chromium path permission error", "path", path, "err", err)
144+
log.Warnf("skipping walk chromium path permission error, path %s, err %v", path, err)
143145
return nil
144146
}
145147
return err

browser/chromium/chromium_darwin.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import (
77
"crypto/sha1"
88
"errors"
99
"fmt"
10-
"log/slog"
1110
"os"
1211
"os/exec"
1312
"strings"
1413

1514
"github.com/moond4rk/hackbrowserdata/crypto"
15+
"github.com/moond4rk/hackbrowserdata/log"
1616
"github.com/moond4rk/hackbrowserdata/types"
1717
)
1818

@@ -54,6 +54,6 @@ func (c *Chromium) GetMasterKey() ([]byte, error) {
5454
return nil, errWrongSecurityCommand
5555
}
5656
c.masterKey = key
57-
slog.Info("get master key success", "browser", c.name)
57+
log.Debugf("get master key success, browser %s", c.name)
5858
return key, nil
5959
}

0 commit comments

Comments
 (0)