func ShowEpisodeLinks(ctx *gin.Context) { seasonNumber, _ := strconv.Atoi(ctx.Params.ByName("season")) episodeNumber, _ := strconv.Atoi(ctx.Params.ByName("episode")) torrents, err := showEpisodeLinks(ctx.Params.ByName("showId"), seasonNumber, episodeNumber) if err != nil { ctx.Error(err) return } if len(torrents) == 0 { xbmc.Notify("Pulsar", "No links were found", config.AddonIcon()) return } choices := make([]string, 0, len(torrents)) for _, torrent := range torrents { label := fmt.Sprintf("S:%d P:%d - %s", torrent.Seeds, torrent.Peers, torrent.Name, ) choices = append(choices, label) } choice := xbmc.ListDialog("Choose stream", choices...) if choice >= 0 { rUrl := UrlQuery(UrlForXBMC("/play"), "uri", torrents[choice].Magnet()) ctx.Redirect(302, rUrl) } }
func MovieLinks(ctx *gin.Context) { torrents := movieLinks(ctx.Params.ByName("imdbId")) if len(torrents) == 0 { xbmc.Notify("Pulsar", "No links were found", config.AddonIcon()) return } choices := make([]string, 0, len(torrents)) for _, torrent := range torrents { info := make([]string, 0) if torrent.RipType > 0 { info = append(info, bittorrent.Rips[torrent.RipType]) } if torrent.Resolution > 0 { info = append(info, bittorrent.Resolutions[torrent.Resolution]) } if torrent.VideoCodec > 0 { info = append(info, bittorrent.Codecs[torrent.VideoCodec]) } if torrent.AudioCodec > 0 { info = append(info, bittorrent.Codecs[torrent.AudioCodec]) } label := fmt.Sprintf("S:%d P:%d - %s - %s", torrent.Seeds, torrent.Peers, strings.Join(info, " "), torrent.Name, ) choices = append(choices, label) } choice := xbmc.ListDialog("Choose stream", choices...) if choice >= 0 { rUrl := UrlQuery(UrlForXBMC("/play"), "uri", torrents[choice].Magnet()) ctx.Redirect(302, rUrl) } }