mirror of
https://github.com/AynaLivePlayer/miaosic.git
synced 2025-12-06 13:02:48 +08:00
Compare commits
2 Commits
f834cca698
...
15cadb4e5f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
15cadb4e5f | ||
|
|
b02c6f0142 |
@@ -17,13 +17,15 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
writeMetadata bool
|
||||
downloadQuality string
|
||||
writeMetadata bool
|
||||
downloadQuality string
|
||||
specifiedFilename string
|
||||
)
|
||||
|
||||
func init() {
|
||||
CmdDownload.Flags().BoolVar(&writeMetadata, "metadata", false, "Write metadata (tags, cover, lyrics) to the file")
|
||||
CmdDownload.Flags().StringVar(&downloadQuality, "quality", "", "Quality preference (e.g., 128k, 320k, flac)")
|
||||
CmdDownload.Flags().StringVar(&specifiedFilename, "filename", "", "Filename to use for download")
|
||||
}
|
||||
|
||||
var CmdDownload = &cobra.Command{
|
||||
@@ -105,9 +107,12 @@ Supported formats for metadata include MP3 and FLAC.`,
|
||||
if ext == "" {
|
||||
ext = mimetype.Detect(downloadedBytes[:min(512, len(downloadedBytes))]).Extension()
|
||||
}
|
||||
|
||||
// Step 5: Save the file from the buffer
|
||||
filename := sanitizeFilename(fmt.Sprintf("%s - %s%s", info.Artist, info.Title, ext))
|
||||
// Step 5: Save the file from the buffer
|
||||
if specifiedFilename != "" {
|
||||
filename = specifiedFilename
|
||||
}
|
||||
|
||||
err = os.WriteFile(filename, downloadedBytes, 0644)
|
||||
if err != nil {
|
||||
fmt.Printf("Error saving file to disk: %v\n", err)
|
||||
|
||||
@@ -7,6 +7,10 @@ import (
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
func init() {
|
||||
CmdInfo.Flags().BoolP("json", "j", false, "output in json")
|
||||
}
|
||||
|
||||
var CmdInfo = &cobra.Command{
|
||||
Use: "info <provider> <uri>",
|
||||
Short: "Get media info",
|
||||
|
||||
@@ -18,6 +18,7 @@ var (
|
||||
func init() {
|
||||
CmdLyric.Flags().StringVarP(&lyricOutput, "output", "o", "", "Output lyrics to file")
|
||||
CmdLyric.Flags().BoolVar(&saveLyric, "save", false, "Save lyrics to file with auto-generated name")
|
||||
CmdLyric.Flags().BoolP("json", "j", false, "output in json")
|
||||
}
|
||||
|
||||
var CmdLyric = &cobra.Command{
|
||||
|
||||
@@ -8,6 +8,10 @@ import (
|
||||
"os"
|
||||
)
|
||||
|
||||
func init() {
|
||||
CmdQuality.Flags().BoolP("json", "j", false, "output in json")
|
||||
}
|
||||
|
||||
var CmdQuality = &cobra.Command{
|
||||
Use: "quality <provider>",
|
||||
Short: "List supported qualities for a provider",
|
||||
|
||||
@@ -16,6 +16,7 @@ var (
|
||||
func init() {
|
||||
CmdSearch.Flags().IntVarP(&searchPage, "page", "p", 1, "Page number")
|
||||
CmdSearch.Flags().IntVar(&searchPageSize, "page-size", 10, "Results per page")
|
||||
CmdSearch.Flags().BoolP("json", "j", false, "output in json")
|
||||
}
|
||||
|
||||
var CmdSearch = &cobra.Command{
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
func init() {
|
||||
CmdUrl.Flags().String("quality", "", "Quality preference (128k, 192k, 256k, 320k, hq, sq)")
|
||||
CmdUrl.Flags().BoolP("json", "j", false, "output in json")
|
||||
}
|
||||
|
||||
var CmdUrl = &cobra.Command{
|
||||
|
||||
@@ -35,11 +35,9 @@ var rootCmd = &cobra.Command{
|
||||
}
|
||||
|
||||
var sessionFile string
|
||||
var outputJson bool
|
||||
|
||||
func init() {
|
||||
rootCmd.PersistentFlags().StringVarP(&sessionFile, "session-file", "s", "", "Session file path")
|
||||
rootCmd.PersistentFlags().BoolVarP(&outputJson, "json", "j", false, "output in json")
|
||||
rootCmd.AddCommand(cmds.CmdProviders)
|
||||
rootCmd.AddCommand(cmds.CmdSearch)
|
||||
rootCmd.AddCommand(cmds.CmdQrlogin)
|
||||
|
||||
@@ -16,10 +16,12 @@ import (
|
||||
|
||||
func (p *QQMusicProvider) makeApiRequest(module, method string, params map[string]interface{}) (gjson.Result, error) {
|
||||
expiredTime := time.UnixMilli(p.cred.CreatedAt * 1000).Add(7 * 24 * time.Hour)
|
||||
//fmt.Println(expiredTime.Format("2006-01-02 15:04:05"))
|
||||
if expiredTime.Before(time.Now().Add(24*time.Hour)) && !p.tokenRefreshed {
|
||||
//if true && !p.tokenRefreshed {
|
||||
//if !p.tokenRefreshed {
|
||||
//only refresh once
|
||||
//fmt.Println("Token expired")
|
||||
p.tokenRefreshed = true
|
||||
p.qimeiUpdated = false
|
||||
_ = p.refreshToken()
|
||||
|
||||
Reference in New Issue
Block a user