update(session): use session for refresh & more logs
(#6 #8) feudecamp now deletes all tables and refresh them.
This commit is contained in:
parent
680b1d5dbd
commit
c91d00418e
2 changed files with 38 additions and 42 deletions
70
server.go
70
server.go
|
@ -17,11 +17,8 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var MyClient = &http.Client{}
|
var MyClient = &http.Client{}
|
||||||
var MyResp = &RespBandcamp{}
|
|
||||||
var SpotifyAPI = newTokenUser()
|
|
||||||
//var SpotifyAPI = &TokenUser{}
|
|
||||||
var Session = session.New()
|
var Session = session.New()
|
||||||
var Errors string
|
var Queue = make(map[string]*RespBandcamp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
check artist and album
|
check artist and album
|
||||||
|
@ -84,7 +81,7 @@ func testSpotifyPlaylist(token, tokentype, id string) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getAllTracksPlaylist(token, tokentype, id string, offset int) (SpotifyPlaylist, error) {
|
func getAllTracksPlaylist(token, tokentype, id string, offset int) SpotifyPlaylist {
|
||||||
ret := SpotifyPlaylist{}
|
ret := SpotifyPlaylist{}
|
||||||
req, _ := http.NewRequest("GET",
|
req, _ := http.NewRequest("GET",
|
||||||
"https://api.spotify.com/v1/playlists/"+id+"/tracks?offset="+strconv.FormatInt(int64(offset), 10),
|
"https://api.spotify.com/v1/playlists/"+id+"/tracks?offset="+strconv.FormatInt(int64(offset), 10),
|
||||||
|
@ -99,38 +96,31 @@ func getAllTracksPlaylist(token, tokentype, id string, offset int) (SpotifyPlayl
|
||||||
defer res.Body.Close()
|
defer res.Body.Close()
|
||||||
err := json.NewDecoder(res.Body).Decode(&playlist)
|
err := json.NewDecoder(res.Body).Decode(&playlist)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ret, err
|
log.Print(err.Error())
|
||||||
fmt.Printf("error:", err)
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = *playlist
|
ret = *playlist
|
||||||
if ret.Total > offset {
|
if ret.Total > offset {
|
||||||
r, e := getAllTracksPlaylist(token, tokentype, id, offset + 100)
|
r := getAllTracksPlaylist(token, tokentype, id, offset + 100)
|
||||||
if e != nil {
|
|
||||||
return ret, e
|
|
||||||
}
|
|
||||||
|
|
||||||
ret.Items = append(ret.Items, r.Items...)
|
ret.Items = append(ret.Items, r.Items...)
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret, nil
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
id de la playlist
|
id de la playlist
|
||||||
*/
|
*/
|
||||||
func getListPlaylist(id, token, tokentype string) {
|
func getListPlaylist(id, token, tokentype string) {
|
||||||
|
playlist := getAllTracksPlaylist(token, tokentype, id, 0)
|
||||||
playlist, err := getAllTracksPlaylist(token, tokentype, id, 0)
|
|
||||||
if err != nil {
|
|
||||||
//fmt.Printf("error:", err.Error())
|
|
||||||
log.Panic("error")
|
|
||||||
}
|
|
||||||
|
|
||||||
var find bool
|
var find bool
|
||||||
var tmp string
|
var tmp string
|
||||||
|
var MyResp = &RespBandcamp{}
|
||||||
MyResp.Todo = len(playlist.Items)
|
MyResp.Todo = len(playlist.Items)
|
||||||
MyResp.Done = 0
|
MyResp.Done = 0
|
||||||
|
Queue[token] = MyResp
|
||||||
|
|
||||||
for i := 0; i < len(playlist.Items); i++ {
|
for i := 0; i < len(playlist.Items); i++ {
|
||||||
find, tmp = searchAlbumBandcamp(playlist.Items[i].Track.Album.Name,
|
find, tmp = searchAlbumBandcamp(playlist.Items[i].Track.Album.Name,
|
||||||
|
@ -182,23 +172,22 @@ func formHandler (c *fiber.Ctx) error {
|
||||||
log.Panic(e.Error())
|
log.Panic(e.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c.Set("Location", "/feudecamp")
|
||||||
c.Set("Location", "/feudecamp.html")
|
|
||||||
go getListPlaylist(id, token, tokentype)
|
go getListPlaylist(id, token, tokentype)
|
||||||
return c.SendStatus(303)
|
return c.SendStatus(303)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getNew(c *fiber.Ctx) error {
|
func getNew(c *fiber.Ctx) error {
|
||||||
/* read session */
|
/* read session */
|
||||||
c.JSON(MyResp)
|
sess, _ := Session.Get(c)
|
||||||
MyResp.Albums = nil
|
|
||||||
MyResp.Artists = nil
|
c.JSON(Queue[sess.Get("token").(string)])
|
||||||
MyResp.Notfound = nil
|
|
||||||
return c.SendStatus(201)
|
return c.SendStatus(201)
|
||||||
}
|
}
|
||||||
|
|
||||||
func mytoken(c *fiber.Ctx) error {
|
func mytoken(c *fiber.Ctx) error {
|
||||||
err := c.BodyParser(&SpotifyAPI)
|
tmp := newTokenUser()
|
||||||
|
err := c.BodyParser(&tmp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err.Error())
|
log.Panic(err.Error())
|
||||||
} else {
|
} else {
|
||||||
|
@ -207,9 +196,9 @@ func mytoken(c *fiber.Ctx) error {
|
||||||
log.Panic(err.Error())
|
log.Panic(err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
sess.Set("token", SpotifyAPI.Token)
|
sess.Set("token", tmp.Token)
|
||||||
sess.Set("expire", SpotifyAPI.ExpiresIn)
|
sess.Set("expire", tmp.ExpiresIn)
|
||||||
sess.Set("tokentype", SpotifyAPI.TokenType)
|
sess.Set("tokentype", tmp.TokenType)
|
||||||
sess.Set("creation", time.Now().GoString())
|
sess.Set("creation", time.Now().GoString())
|
||||||
err = sess.Save()
|
err = sess.Save()
|
||||||
|
|
||||||
|
@ -218,9 +207,6 @@ func mytoken(c *fiber.Ctx) error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//sess.Set("creation", time.Now())
|
|
||||||
|
|
||||||
|
|
||||||
return c.SendStatus(201)
|
return c.SendStatus(201)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,17 +226,16 @@ func index(c *fiber.Ctx) error {
|
||||||
tmp = true
|
tmp = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if Errors == "" {
|
return c.Render("index", fiber.Map{"connected": tmp, "url": SpotifyURL})
|
||||||
//return c.Render("index", fiber.Map{"connected": !SpotifyAPI.CheckEmpty(),
|
}
|
||||||
return c.Render("index", fiber.Map{"connected": tmp,
|
|
||||||
"url": SpotifyURL})
|
func fdc(c *fiber.Ctx) error {
|
||||||
} else {
|
sess, _ := Session.Get(c)
|
||||||
e := Errors
|
|
||||||
Errors = ""
|
if sess.Get("token") == nil {
|
||||||
return c.Render("index", fiber.Map{"connected": tmp,
|
panic("Vous n’êtes pas connecté.")
|
||||||
"error": e,
|
|
||||||
"url": SpotifyURL})
|
|
||||||
}
|
}
|
||||||
|
return c.Render("feudecamp", fiber.Map{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -261,6 +246,7 @@ func main() {
|
||||||
|
|
||||||
app.Get("/", index)
|
app.Get("/", index)
|
||||||
app.Post("/", mytoken)
|
app.Post("/", mytoken)
|
||||||
|
app.Get("/feudecamp", fdc)
|
||||||
app.Post("/feudecamp", getNew)
|
app.Post("/feudecamp", getNew)
|
||||||
app.Post("/back", formHandler)
|
app.Post("/back", formHandler)
|
||||||
app.Get("/callback", spotifyCallback)
|
app.Get("/callback", spotifyCallback)
|
||||||
|
|
|
@ -28,6 +28,13 @@ async function addCell(id, elem) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function cleanArray(id) {
|
||||||
|
var table = document.getElementById(id);
|
||||||
|
for (var i = table.rows.length - 1; i > 0; i--) {
|
||||||
|
table.deleteRow(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function refreshArray() {
|
async function refreshArray() {
|
||||||
const data = await fetch('/feudecamp', {method: 'POST'}).then(response => response.json());
|
const data = await fetch('/feudecamp', {method: 'POST'}).then(response => response.json());
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
|
@ -35,18 +42,21 @@ async function refreshArray() {
|
||||||
document.getElementById("nb-total").textContent = data.todo;
|
document.getElementById("nb-total").textContent = data.todo;
|
||||||
|
|
||||||
if (data.albums != null) {
|
if (data.albums != null) {
|
||||||
|
cleanArray("found");
|
||||||
for (const elem of data.albums) {
|
for (const elem of data.albums) {
|
||||||
addCell("found", elem);
|
addCell("found", elem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.artists != null) {
|
if (data.artists != null) {
|
||||||
|
cleanArray("artist-found");
|
||||||
for (const elem of data.artists) {
|
for (const elem of data.artists) {
|
||||||
addCell("artist-found", elem);
|
addCell("artist-found", elem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.notfound != null) {
|
if (data.notfound != null) {
|
||||||
|
cleanArray("notfound");
|
||||||
for (const elem of data.notfound) {
|
for (const elem of data.notfound) {
|
||||||
addCell("notfound", elem);
|
addCell("notfound", elem);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue