Compare commits

..

No commits in common. '6c9015200c4cb212436acf44354c63ddefabcd76' and '5f528e76a9c94271795b3eda61123998067a602c' have entirely different histories.

  1. 29
      .github/workflows/go.yml
  2. 7
      main.go
  3. 9
      main_atmos.go
  4. 9
      main_select.go

@ -12,6 +12,7 @@ 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:
@ -22,17 +23,21 @@ 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
run: | - name: Upload main.exe
mkdir -p alac uses: actions/upload-artifact@v2
cp agent.js alac/ with:
cp config.yaml alac/ name: apple-music-alac-atmos-downloader-main
cp main.exe alac/ path: main.exe
cp main_atmos.exe alac/
cp main_select.exe alac/ - name: Upload main_atmos.exe
uses: actions/upload-artifact@v2
- name: Upload apple-music-alac-atmos-downloader with:
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 name: apple-music-alac-atmos-downloader-select
path: alac/* path: main_select.exe

@ -5,6 +5,7 @@ import (
"bytes" "bytes"
"encoding/binary" "encoding/binary"
"encoding/json" "encoding/json"
"gopkg.in/yaml.v2"
"errors" "errors"
"fmt" "fmt"
"io" "io"
@ -22,8 +23,6 @@ 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"
@ -37,7 +36,6 @@ 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"`
@ -78,7 +76,6 @@ 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")
@ -1220,7 +1217,7 @@ func rip(albumId string, token string, storefront string, userToken string) erro
} }
} }
stringsToJoin := []string{} stringsToJoin := []string{}
if meta.Data[0].Attributes.IsAppleDigitalMaster || meta.Data[0].Attributes.IsMasteredForItunes { if meta.Data[0].Attributes.IsAppleDigitalMaster{
if config.AppleMasterChoice != ""{ if config.AppleMasterChoice != ""{
stringsToJoin = append(stringsToJoin, config.AppleMasterChoice) stringsToJoin = append(stringsToJoin, config.AppleMasterChoice)
} }

@ -4,8 +4,10 @@ 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"
@ -21,9 +23,6 @@ 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,7 +35,6 @@ 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"`
@ -1147,7 +1145,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 || meta.Data[0].Attributes.IsMasteredForItunes { if meta.Data[0].Attributes.IsAppleDigitalMaster{
if config.AppleMasterChoice != ""{ if config.AppleMasterChoice != ""{
stringsToJoin = append(stringsToJoin, config.AppleMasterChoice) stringsToJoin = append(stringsToJoin, config.AppleMasterChoice)
} }
@ -1181,6 +1179,7 @@ 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,8 +5,10 @@ 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"
@ -22,9 +24,6 @@ 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"
) )
@ -37,7 +36,6 @@ 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"`
@ -1205,7 +1203,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 || meta.Data[0].Attributes.IsMasteredForItunes { if meta.Data[0].Attributes.IsAppleDigitalMaster{
if config.AppleMasterChoice != ""{ if config.AppleMasterChoice != ""{
stringsToJoin = append(stringsToJoin, config.AppleMasterChoice) stringsToJoin = append(stringsToJoin, config.AppleMasterChoice)
} }
@ -1252,6 +1250,7 @@ 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