-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.go
104 lines (95 loc) · 2.48 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package main
import (
"flag"
"fmt"
"os"
"strconv"
"strings"
"github.com/ankikong/goMusic/provider/zzzfun"
"github.com/ankikong/goMusic/tool"
"github.com/ankikong/goMusic/provider/bilibili"
"github.com/ankikong/goMusic/provider/qq"
"github.com/ankikong/goMusic/provider/kugou"
"github.com/ankikong/goMusic/provider/songbean"
"github.com/ankikong/goMusic/provider/netease"
"github.com/jedib0t/go-pretty/table"
)
func search(text string) {
var result []songbean.SongData
for _, rs := range netease.Search(text) {
result = append(result, rs)
}
for _, rs := range kugou.Search(text) {
result = append(result, rs)
}
for _, rs := range qq.Search(text) {
result = append(result, rs)
}
t := table.NewWriter()
t.SetOutputMirror(os.Stdout)
t.AppendHeader(table.Row{"编号", "歌名", "歌手", "专辑", "来源"})
// fmt.Println("歌名\t歌手\t专辑")
// fmt.Printf("%-26s%-26s%-26s\n", "歌名", "歌手", "专辑")
index := 0
for _, rs := range result {
t.AppendRow(table.Row{index, rs.GetFileName(), rs.GetArtistName(), rs.GetAlbumName(), rs.GetSource()})
index++
// fmt.Printf("%-26s%-26s%-26s\n", rs.GetFileName(), rs.GetArtistName(), rs.GetAlbumName())
}
var input string
var num uint64
// stdin := bufio.NewReader(os.Stdin)
t.Render()
for {
fmt.Print("please input integer(input q to quit):")
// fmt.Println(input)
fmt.Scan(&input)
// fmt.Fscan(stdin, input)
input = strings.TrimSpace(input)
input = strings.ToLower(input)
if input == "q" {
return
}
nums, err := strconv.ParseUint(input, 10, 20)
if err != nil {
continue
}
num = nums
break
}
if num >= 0 && num < uint64(len(result)) {
rss := result[num].GetURL(320)
fmt.Println(rss.SongURL)
tool.Download(rss.SongURL, result[num].GetFileName(), "", true, false)
} else {
panic("index out of range")
}
}
func main() {
var (
URL string
keyword string
)
flag.StringVar(&URL, "url", "", "url of song")
flag.StringVar(&keyword, "kw", "", "search keyword")
flag.Parse()
if len(keyword) > 0 {
search(keyword)
} else {
if strings.Contains(URL, "music.163.com") {
netease.GetByURL(URL)
} else if strings.Contains(URL, "qq.com") {
qq.GetByURL(URL)
} else if strings.Contains(URL, "bilibili") {
if strings.Contains(URL, "video") {
bilibili.Deal(URL)
} else if strings.Contains(URL, "bangumi") {
bilibili.BangumiDeal(URL)
} else {
fmt.Println("unsupport url")
}
} else if strings.Contains(URL, "www.zzzfun.com") {
zzzfun.GetByURL(URL)
}
}
}