diff --git a/handlers.go b/handlers.go index a835759..d0ab8ce 100644 --- a/handlers.go +++ b/handlers.go @@ -48,10 +48,12 @@ type response struct { // Search Query string - List *List - Lists []*List - Media *Media - Medias []*Media + List *List + Lists []*List + Media *Media + Medias []*Media + DefaultMediaID int + DefaultMediaTime int64 ActiveMedias []*Media QueuedMedias []*Media @@ -470,6 +472,23 @@ func playList(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { var medias []*Media db.Model(&list).Related(&medias, "Medias") res.Medias = medias + res.DefaultMediaID = 0 + res.DefaultMediaTime = 0 + + if query := strings.TrimSpace(r.FormValue("m")); query != "" { + // Default media ID + for k, m := range res.Medias { + if m.ID == query { + res.DefaultMediaID = k + } + } + } + + if query := strings.TrimSpace(r.FormValue("t")); query != "" { + // Default time + res.DefaultMediaTime, _ = strconv.ParseInt(query, 10, 64) + } + html(w, "play.html", res) } diff --git a/templates/play.html b/templates/play.html index 22947a1..fc376cf 100644 --- a/templates/play.html +++ b/templates/play.html @@ -243,14 +243,21 @@

// set initial item to first one. - $player.attr('src', playlist[0]); - $player.data('index', 0); + var id = {{$.DefaultMediaID}}; + $player.attr('src', playlist[id]); + $player.data('index', id); $('.player-item').removeClass('active'); - $('#player-item-0').addClass('active'); + $('#player-item-'+id).addClass('active'); // $player.focus(); + // Set cur time + $player[0].currentTime = {{$.DefaultMediaTime}}; + // set volume $player.prop('volume', {{$.Config.Volume}}); + + // Auto Play + console.log($player); });