diff --git a/go.mod b/go.mod index 18806f6..c7565be 100644 --- a/go.mod +++ b/go.mod @@ -51,6 +51,8 @@ require ( github.com/klauspost/pgzip v1.2.6 // indirect github.com/kr/pretty v0.2.1 // indirect github.com/libdns/libdns v0.2.2 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect github.com/mholt/acmez/v3 v3.0.0 // indirect github.com/mholt/archives v0.1.0 // indirect @@ -94,6 +96,7 @@ require ( require ( github.com/beevik/etree v1.3.0 + github.com/fatih/color v1.18.0 github.com/olekukonko/tablewriter v0.0.5 github.com/zhaarey/go-mp4tag v0.0.0-20250210094042-22578afc09bf gopkg.in/yaml.v2 v2.2.8 diff --git a/go.sum b/go.sum index 88c1bca..45eff7a 100644 --- a/go.sum +++ b/go.sum @@ -57,6 +57,8 @@ github.com/dsnet/compress v0.0.2-0.20230904184137-39efe44ab707/go.mod h1:qssHWj6 github.com/dsnet/golib v0.0.0-20171103203638-1ea166775780/go.mod h1:Lj+Z9rebOhdfkVLjJ8T6VcRQv3SXugXy999NBtR9aFY= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/gaukas/clienthellod v0.4.2 h1:LPJ+LSeqt99pqeCV4C0cllk+pyWmERisP7w6qWr7eqE= github.com/gaukas/clienthellod v0.4.2/go.mod h1:M57+dsu0ZScvmdnNxaxsDPM46WhSEdPYAOdNgfL7IKA= github.com/gaukas/godicttls v0.0.4 h1:NlRaXb3J6hAnTmWdsEKb9bcSBD6BvcIjdGdeb0zfXbk= @@ -165,6 +167,10 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/libdns/libdns v0.2.2 h1:O6ws7bAfRPaBsgAYt8MDe2HcNBGC29hkZ9MX2eUSX3s= github.com/libdns/libdns v0.2.2/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -373,6 +379,7 @@ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/main.go b/main.go index 7e870ca..83b1913 100644 --- a/main.go +++ b/main.go @@ -31,6 +31,7 @@ import ( "github.com/spf13/pflag" "github.com/zhaarey/go-mp4tag" "gopkg.in/yaml.v2" + "github.com/fatih/color" ) var ( @@ -235,14 +236,14 @@ func checkArtist(artistUrl string, token string, relationship string) ([]string, //table.SetAutoMergeCellsByColumnIndex([]int{1,2,3}) table.SetRowLine(false) //table.AppendBulk(options) - table.SetHeaderColor(tablewriter.Colors{tablewriter.Bold, tablewriter.BgGreenColor}, - tablewriter.Colors{tablewriter.FgHiRedColor, tablewriter.Bold, tablewriter.BgBlackColor}, - tablewriter.Colors{tablewriter.BgRedColor, tablewriter.FgWhiteColor}, - tablewriter.Colors{tablewriter.BgCyanColor, tablewriter.FgWhiteColor}) + table.SetHeaderColor(tablewriter.Colors{}, + tablewriter.Colors{tablewriter.FgRedColor, tablewriter.Bold}, + tablewriter.Colors{tablewriter.Bold, tablewriter.FgBlackColor}, + tablewriter.Colors{tablewriter.Bold, tablewriter.FgBlackColor}) - table.SetColumnColor(tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiBlackColor}, - tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiRedColor}, - tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiBlackColor}, + table.SetColumnColor(tablewriter.Colors{tablewriter.FgCyanColor}, + tablewriter.Colors{tablewriter.Bold, tablewriter.FgRedColor}, + tablewriter.Colors{tablewriter.Bold, tablewriter.FgBlackColor}, tablewriter.Colors{tablewriter.Bold, tablewriter.FgBlackColor}) for i, v := range options { urls = append(urls, v[3]) @@ -256,7 +257,8 @@ func checkArtist(artistUrl string, token string, relationship string) ([]string, } reader := bufio.NewReader(os.Stdin) fmt.Println("Please select from the " + relationship + " options above (multiple options separated by commas, ranges supported, or type 'all' to select all)") - fmt.Print("Enter your choice: ") + cyanColor := color.New(color.FgCyan) + cyanColor.Print("Enter your choice: ") input, _ := reader.ReadString('\n') // Remove newline and whitespace @@ -1001,14 +1003,14 @@ func rip(albumId string, token string, storefront string, mediaUserToken string, table.SetRowLine(false) //table.SetAutoMergeCells(true) table.SetCaption(meta.Data[0].Type == "albums", fmt.Sprintf("Storefront: %s, %d tracks missing", strings.ToUpper(storefront), meta.Data[0].Attributes.TrackCount-trackTotal)) - table.SetHeaderColor(tablewriter.Colors{tablewriter.Bold, tablewriter.BgGreenColor}, - tablewriter.Colors{tablewriter.FgHiRedColor, tablewriter.Bold, tablewriter.BgBlackColor}, - tablewriter.Colors{tablewriter.BgRedColor, tablewriter.FgWhiteColor}, - tablewriter.Colors{tablewriter.BgCyanColor, tablewriter.FgWhiteColor}) + table.SetHeaderColor(tablewriter.Colors{}, + tablewriter.Colors{tablewriter.FgRedColor, tablewriter.Bold}, + tablewriter.Colors{tablewriter.FgBlackColor, tablewriter.Bold}, + tablewriter.Colors{tablewriter.FgBlackColor, tablewriter.Bold}) - table.SetColumnColor(tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiBlackColor}, - tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiRedColor}, - tablewriter.Colors{tablewriter.Bold, tablewriter.FgHiBlackColor}, + table.SetColumnColor(tablewriter.Colors{tablewriter.FgCyanColor}, + tablewriter.Colors{tablewriter.Bold, tablewriter.FgRedColor}, + tablewriter.Colors{tablewriter.Bold, tablewriter.FgBlackColor}, tablewriter.Colors{tablewriter.Bold, tablewriter.FgBlackColor}) for _, row := range data { if row[2] == "explicit" { @@ -1028,7 +1030,8 @@ func rip(albumId string, token string, storefront string, mediaUserToken string, //table.AppendBulk(data) table.Render() fmt.Println("Please select from the track options above (multiple options separated by commas, ranges supported, or type 'all' to select all)") - fmt.Print("select: ") + cyanColor := color.New(color.FgCyan) + cyanColor.Print("select: ") reader := bufio.NewReader(os.Stdin) input, err := reader.ReadString('\n') if err != nil {