Compare commits

..

2 Commits

Author SHA1 Message Date
zhaarey 6c9015200c Update go.yml 3 months ago
zhaarey fa02c77ff8 fix apple master tag 3 months ago
  1. 29
      .github/workflows/go.yml
  2. 7
      main.go
  3. 9
      main_atmos.go
  4. 9
      main_select.go

@ -12,7 +12,6 @@ jobs:
runs-on: windows-latest runs-on: windows-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Set up Go - name: Set up Go
uses: actions/setup-go@v4 uses: actions/setup-go@v4
with: with:
@ -23,21 +22,17 @@ jobs:
go build -o main.exe -v ./main.go go build -o main.exe -v ./main.go
go build -o main_atmos.exe -v ./main_atmos.go go build -o main_atmos.exe -v ./main_atmos.go
go build -o main_select.exe -v ./main_select.go go build -o main_select.exe -v ./main_select.go
- name: Create a new directory and copy files
- name: Upload main.exe run: |
uses: actions/upload-artifact@v2 mkdir -p alac
with: cp agent.js alac/
name: apple-music-alac-atmos-downloader-main cp config.yaml alac/
path: main.exe cp main.exe alac/
cp main_atmos.exe alac/
- name: Upload main_atmos.exe cp main_select.exe alac/
uses: actions/upload-artifact@v2
with: - name: Upload apple-music-alac-atmos-downloader
name: apple-music-alac-atmos-downloader-atmos
path: main_atmos.exe
- name: Upload main_select.exe
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
with: with:
name: apple-music-alac-atmos-downloader-select name: apple-music-alac-atmos-downloader
path: main_select.exe path: alac/*

@ -5,7 +5,6 @@ import (
"bytes" "bytes"
"encoding/binary" "encoding/binary"
"encoding/json" "encoding/json"
"gopkg.in/yaml.v2"
"errors" "errors"
"fmt" "fmt"
"io" "io"
@ -23,6 +22,8 @@ import (
"strings" "strings"
"time" "time"
"gopkg.in/yaml.v2"
"github.com/abema/go-mp4" "github.com/abema/go-mp4"
"github.com/beevik/etree" "github.com/beevik/etree"
"github.com/grafov/m3u8" "github.com/grafov/m3u8"
@ -36,6 +37,7 @@ const (
var ( var (
forbiddenNames = regexp.MustCompile(`[/\\<>:"|?*]`) forbiddenNames = regexp.MustCompile(`[/\\<>:"|?*]`)
) )
type Config struct { type Config struct {
MediaUserToken string `yaml:"media-user-token"` MediaUserToken string `yaml:"media-user-token"`
SaveLrcFile bool `yaml:"save-lrc-file"` SaveLrcFile bool `yaml:"save-lrc-file"`
@ -76,6 +78,7 @@ type SongInfo struct {
alacParam *Alac alacParam *Alac
samples []SampleInfo samples []SampleInfo
} }
func loadConfig() error { func loadConfig() error {
// 读取config.yaml文件内容 // 读取config.yaml文件内容
data, err := ioutil.ReadFile("config.yaml") data, err := ioutil.ReadFile("config.yaml")
@ -1217,7 +1220,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro
} }
} }
stringsToJoin := []string{} stringsToJoin := []string{}
if meta.Data[0].Attributes.IsAppleDigitalMaster{ if meta.Data[0].Attributes.IsAppleDigitalMaster || meta.Data[0].Attributes.IsMasteredForItunes {
if config.AppleMasterChoice != "" { if config.AppleMasterChoice != "" {
stringsToJoin = append(stringsToJoin, config.AppleMasterChoice) stringsToJoin = append(stringsToJoin, config.AppleMasterChoice)
} }

@ -4,10 +4,8 @@ import (
"bytes" "bytes"
"encoding/binary" "encoding/binary"
"encoding/json" "encoding/json"
"gopkg.in/yaml.v2"
"errors" "errors"
"fmt" "fmt"
"github.com/beevik/etree"
"io" "io"
"io/ioutil" "io/ioutil"
"math" "math"
@ -23,6 +21,9 @@ import (
"strings" "strings"
"time" "time"
"github.com/beevik/etree"
"gopkg.in/yaml.v2"
"github.com/abema/go-mp4" "github.com/abema/go-mp4"
"github.com/grafov/m3u8" "github.com/grafov/m3u8"
) )
@ -35,6 +36,7 @@ const (
var ( var (
forbiddenNames = regexp.MustCompile(`[/\\<>:"|?*]`) forbiddenNames = regexp.MustCompile(`[/\\<>:"|?*]`)
) )
type Config struct { type Config struct {
MediaUserToken string `yaml:"media-user-token"` MediaUserToken string `yaml:"media-user-token"`
SaveLrcFile bool `yaml:"save-lrc-file"` SaveLrcFile bool `yaml:"save-lrc-file"`
@ -1145,7 +1147,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro
} }
singerFolder := filepath.Join(config.AtmosSaveFolder, forbiddenNames.ReplaceAllString(singerFoldername, "_")) singerFolder := filepath.Join(config.AtmosSaveFolder, forbiddenNames.ReplaceAllString(singerFoldername, "_"))
stringsToJoin := []string{} stringsToJoin := []string{}
if meta.Data[0].Attributes.IsAppleDigitalMaster{ if meta.Data[0].Attributes.IsAppleDigitalMaster || meta.Data[0].Attributes.IsMasteredForItunes {
if config.AppleMasterChoice != "" { if config.AppleMasterChoice != "" {
stringsToJoin = append(stringsToJoin, config.AppleMasterChoice) stringsToJoin = append(stringsToJoin, config.AppleMasterChoice)
} }
@ -1179,7 +1181,6 @@ func rip(albumId string, token string, storefront string, userToken string) erro
"{ArtistName}", meta.Data[0].Attributes.ArtistName, "{ArtistName}", meta.Data[0].Attributes.ArtistName,
"{AlbumName}", meta.Data[0].Attributes.Name, "{AlbumName}", meta.Data[0].Attributes.Name,
"{UPC}", meta.Data[0].Attributes.Upc, "{UPC}", meta.Data[0].Attributes.Upc,
"{RecordLabel}", meta.Data[0].Attributes.RecordLabel,
"{Copyright}", meta.Data[0].Attributes.Copyright, "{Copyright}", meta.Data[0].Attributes.Copyright,
"{AlbumId}", albumId, "{AlbumId}", albumId,
"{Quality}", Quality, "{Quality}", Quality,

@ -5,10 +5,8 @@ import (
"bytes" "bytes"
"encoding/binary" "encoding/binary"
"encoding/json" "encoding/json"
"gopkg.in/yaml.v2"
"errors" "errors"
"fmt" "fmt"
"github.com/beevik/etree"
"io" "io"
"io/ioutil" "io/ioutil"
"math" "math"
@ -24,6 +22,9 @@ import (
"strings" "strings"
"time" "time"
"github.com/beevik/etree"
"gopkg.in/yaml.v2"
"github.com/abema/go-mp4" "github.com/abema/go-mp4"
"github.com/grafov/m3u8" "github.com/grafov/m3u8"
) )
@ -36,6 +37,7 @@ const (
var ( var (
forbiddenNames = regexp.MustCompile(`[/\\<>:"|?*]`) forbiddenNames = regexp.MustCompile(`[/\\<>:"|?*]`)
) )
type Config struct { type Config struct {
MediaUserToken string `yaml:"media-user-token"` MediaUserToken string `yaml:"media-user-token"`
SaveLrcFile bool `yaml:"save-lrc-file"` SaveLrcFile bool `yaml:"save-lrc-file"`
@ -1203,7 +1205,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro
} }
singerFolder := filepath.Join(config.AlacSaveFolder, forbiddenNames.ReplaceAllString(singerFoldername, "_")) singerFolder := filepath.Join(config.AlacSaveFolder, forbiddenNames.ReplaceAllString(singerFoldername, "_"))
stringsToJoin := []string{} stringsToJoin := []string{}
if meta.Data[0].Attributes.IsAppleDigitalMaster{ if meta.Data[0].Attributes.IsAppleDigitalMaster || meta.Data[0].Attributes.IsMasteredForItunes {
if config.AppleMasterChoice != "" { if config.AppleMasterChoice != "" {
stringsToJoin = append(stringsToJoin, config.AppleMasterChoice) stringsToJoin = append(stringsToJoin, config.AppleMasterChoice)
} }
@ -1250,7 +1252,6 @@ func rip(albumId string, token string, storefront string, userToken string) erro
"{ArtistName}", meta.Data[0].Attributes.ArtistName, "{ArtistName}", meta.Data[0].Attributes.ArtistName,
"{AlbumName}", meta.Data[0].Attributes.Name, "{AlbumName}", meta.Data[0].Attributes.Name,
"{UPC}", meta.Data[0].Attributes.Upc, "{UPC}", meta.Data[0].Attributes.Upc,
"{RecordLabel}", meta.Data[0].Attributes.RecordLabel,
"{Copyright}", meta.Data[0].Attributes.Copyright, "{Copyright}", meta.Data[0].Attributes.Copyright,
"{AlbumId}", albumId, "{AlbumId}", albumId,
"{Quality}", Quality, "{Quality}", Quality,

Loading…
Cancel
Save