feat(front): links to spotify/bandcamp + infos
Infos as artist and album are now provide and show in a table.
This commit is contained in:
parent
014fb66867
commit
a0f5500220
2 changed files with 66 additions and 16 deletions
40
server.go
40
server.go
|
@ -15,15 +15,26 @@ type BandcampAlbum struct {
|
||||||
url string
|
url string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type UrlBandcamp struct {
|
||||||
|
Artiste string `json:"artist"`
|
||||||
|
Album string `json:"album"`
|
||||||
|
SpotifyUrl string `json:"spotifyurl"`
|
||||||
|
BandcampUrl string `json:"bandcampurl"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func newUrlBandcamp(auteur, album, spo, band string) UrlBandcamp {
|
||||||
|
return UrlBandcamp{Artiste: auteur, Album: album, SpotifyUrl: spo, BandcampUrl: band}
|
||||||
|
}
|
||||||
|
|
||||||
type RespBandcamp struct {
|
type RespBandcamp struct {
|
||||||
Done int `json:"done"`
|
Done int `json:"done"`
|
||||||
Todo int `json:"todo"`
|
Todo int `json:"todo"`
|
||||||
Url []string `json:"url"`
|
Urls []UrlBandcamp `json:"urls"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rp *RespBandcamp) Add(str string) []string {
|
func (rp *RespBandcamp) Add(tmp UrlBandcamp) []UrlBandcamp {
|
||||||
rp.Url = append(rp.Url, str)
|
rp.Urls = append(rp.Urls, tmp)
|
||||||
return rp.Url
|
return rp.Urls
|
||||||
}
|
}
|
||||||
|
|
||||||
var MyClient = &http.Client{}
|
var MyClient = &http.Client{}
|
||||||
|
@ -76,26 +87,31 @@ func getListPlaylist(id string) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ree := &SpotifyPlaylist{}
|
playlist := &SpotifyPlaylist{}
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
err = json.NewDecoder(res.Body).Decode(&ree)
|
err = json.NewDecoder(res.Body).Decode(&playlist)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("error:", err)
|
fmt.Printf("error:", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp := BandcampAlbum{}
|
tmp := BandcampAlbum{}
|
||||||
MyResp.Todo = len(ree.Items)
|
MyResp.Todo = len(playlist.Items)
|
||||||
MyResp.Done = 0
|
MyResp.Done = 0
|
||||||
|
|
||||||
for i := 0; i < len(ree.Items); i++ {
|
for i := 0; i < len(playlist.Items); i++ {
|
||||||
tmp = testBandcamp(ree.Items[i].Track.Album.Name,
|
tmp = testBandcamp(playlist.Items[i].Track.Album.Name,
|
||||||
ree.Items[i].Track.Album.Artists[0].Name)
|
playlist.Items[i].Track.Album.Artists[0].Name)
|
||||||
if tmp.find {
|
if tmp.find {
|
||||||
//fmt.Printf("Find !! url: %s\n", tmp.url)
|
//fmt.Printf("Find !! url: %s\n", tmp.url)
|
||||||
//MyResp.url = append(MyResp.url, tmp.url)
|
//MyResp.url = append(MyResp.url, tmp.url)
|
||||||
//MyResp.url = append (MyResp.url, tmp.url)
|
//MyResp.url = append (MyResp.url, tmp.url)
|
||||||
MyResp.Add(tmp.url)
|
//MyResp.Add(tmp.url)
|
||||||
|
MyResp.Add(newUrlBandcamp(
|
||||||
|
playlist.Items[i].Track.Album.Artists[0].Name,
|
||||||
|
playlist.Items[i].Track.Album.Name,
|
||||||
|
playlist.Items[i].Track.Album.ExternalUrls.Spotify,
|
||||||
|
tmp.url))
|
||||||
//fmt.Printf("tmp %s \n", MyResp.url[0])
|
//fmt.Printf("tmp %s \n", MyResp.url[0])
|
||||||
//fmt.Printf("len=%d cap=%d %v\n", len(MyResp.url), cap(MyResp.url), MyResp.url)
|
//fmt.Printf("len=%d cap=%d %v\n", len(MyResp.url), cap(MyResp.url), MyResp.url)
|
||||||
}
|
}
|
||||||
|
@ -148,7 +164,7 @@ func getNew(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
w.WriteHeader(http.StatusCreated)
|
w.WriteHeader(http.StatusCreated)
|
||||||
json.NewEncoder(w).Encode(MyResp)
|
json.NewEncoder(w).Encode(MyResp)
|
||||||
MyResp.Url = nil
|
MyResp.Urls = nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
@ -15,20 +15,54 @@
|
||||||
<p><a href="https://codepen.io/brunjo/pen/bNEWjV">Code Source du loader</a> sous <a href="https://blog.codepen.io/documentation/licensing/">licence MIT</a>.</p>
|
<p><a href="https://codepen.io/brunjo/pen/bNEWjV">Code Source du loader</a> sous <a href="https://blog.codepen.io/documentation/licensing/">licence MIT</a>.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="my-list">
|
<div>
|
||||||
|
<table id="my-list">
|
||||||
|
<tr>
|
||||||
|
<th>Artiste</th>
|
||||||
|
<th>Album</th>
|
||||||
|
<th>Spotify</th>
|
||||||
|
<th>Bandcamp</th>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
|
const spotifyText = document.createTextNode("Spotify");
|
||||||
|
const bandcampText = document.createTextNode("Bandcamp");
|
||||||
|
const tab = document.getElementById("my-list");
|
||||||
|
|
||||||
async function test() {
|
async function test() {
|
||||||
const data = await fetch('/refresh').then(response => response.json());
|
const data = await fetch('/refresh').then(response => response.json());
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
if (data.url != null) {
|
if (data.urls != null) {
|
||||||
for (const elem of data.url) {
|
var newRow, artist, album, tmpLink;
|
||||||
|
for (const elem of data.urls) {
|
||||||
|
artist = document.createTextNode(elem.artist);
|
||||||
|
album = document.createTextNode(elem.album);
|
||||||
|
tmpLink = document.createElement("a");
|
||||||
|
tmpLink.appendChild(spotifyText.cloneNode());
|
||||||
|
tmpLink.title = "Lien Spotify";
|
||||||
|
tmpLink.href = elem.spotifyurl;
|
||||||
|
|
||||||
|
/*
|
||||||
let tmp = document.createTextNode(elem);
|
let tmp = document.createTextNode(elem);
|
||||||
let newP = document.createElement("p");
|
let newP = document.createElement("p");
|
||||||
newP.appendChild(tmp);
|
newP.appendChild(tmp);
|
||||||
document.getElementById("my-list").appendChild(newP);
|
document.getElementById("my-list").appendChild(newP);
|
||||||
|
*/
|
||||||
|
newRow = tab.insertRow(-1);
|
||||||
|
newRow.insertCell(0).appendChild(artist);
|
||||||
|
newRow.insertCell(1).appendChild(album);
|
||||||
|
|
||||||
|
newRow.insertCell(2).appendChild(tmpLink);
|
||||||
|
|
||||||
|
tmpLink = document.createElement("a");
|
||||||
|
tmpLink.appendChild(bandcampText.cloneNode());
|
||||||
|
tmpLink.title = "Lien Bandcamp";
|
||||||
|
tmpLink.href = elem.bandcampurl;
|
||||||
|
newRow.insertCell(3).appendChild(tmpLink);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue