func TVIndex(ctx *gin.Context) { items := xbmc.ListItems{ {Label: "LOCALIZE[30209]", Path: UrlForXBMC("/shows/search"), Thumbnail: config.AddonResource("img", "search.png")}, {Label: "LOCALIZE[30056]", Path: UrlForXBMC("/shows/trakt/"), Thumbnail: config.AddonResource("img", "trakt.png")}, {Label: "LOCALIZE[30238]", Path: UrlForXBMC("/shows/recent/episodes"), Thumbnail: config.AddonResource("img", "fresh.png")}, {Label: "LOCALIZE[30237]", Path: UrlForXBMC("/shows/recent/shows"), Thumbnail: config.AddonResource("img", "clock.png")}, {Label: "LOCALIZE[30210]", Path: UrlForXBMC("/shows/popular"), Thumbnail: config.AddonResource("img", "popular.png")}, {Label: "LOCALIZE[30211]", Path: UrlForXBMC("/shows/top"), Thumbnail: config.AddonResource("img", "top_rated.png")}, {Label: "LOCALIZE[30212]", Path: UrlForXBMC("/shows/mostvoted"), Thumbnail: config.AddonResource("img", "most_voted.png")}, } for _, genre := range tmdb.GetTVGenres(config.Get().Language) { slug, _ := genreSlugs[genre.Id] items = append(items, &xbmc.ListItem{ Label: genre.Name, Path: UrlForXBMC("/shows/popular/%s", strconv.Itoa(genre.Id)), Thumbnail: config.AddonResource("img", fmt.Sprintf("genre_%s.png", slug)), ContextMenu: [][]string{ []string{"LOCALIZE[30237]", fmt.Sprintf("Container.Update(%s)", UrlForXBMC("/shows/recent/shows/%s", strconv.Itoa(genre.Id)))}, []string{"LOCALIZE[30238]", fmt.Sprintf("Container.Update(%s)", UrlForXBMC("/shows/recent/episodes/%s", strconv.Itoa(genre.Id)))}, }, }) } ctx.JSON(200, xbmc.NewView("", items)) }
func Index(ctx *gin.Context) { action := ctx.Request.URL.Query().Get("action") if action == "search" || action == "manualsearch" { SubtitlesIndex(ctx) return } ctx.JSON(200, xbmc.NewView("", xbmc.ListItems{ {Label: "LOCALIZE[30214]", Path: UrlForXBMC("/movies/"), Thumbnail: config.AddonResource("img", "movies.png")}, {Label: "LOCALIZE[30215]", Path: UrlForXBMC("/shows/"), Thumbnail: config.AddonResource("img", "tv.png")}, {Label: "LOCALIZE[30209]", Path: UrlForXBMC("/search"), Thumbnail: config.AddonResource("img", "search.png")}, {Label: "LOCALIZE[30216]", Path: UrlForXBMC("/pasted"), Thumbnail: config.AddonResource("img", "magnet.png")}, })) }
func TVIndex(ctx *gin.Context) { items := xbmc.ListItems{ {Label: "LOCALIZE[30209]", Path: UrlForXBMC("/shows/search"), Thumbnail: config.AddonResource("img", "search.png")}, {Label: "LOCALIZE[30210]", Path: UrlForXBMC("/shows/popular"), Thumbnail: config.AddonResource("img", "popular.png")}, } for _, genre := range tmdb.GetTVGenres(config.Get().Language) { slug, _ := genreSlugs[genre.Id] items = append(items, &xbmc.ListItem{ Label: genre.Name, Path: UrlForXBMC("/shows/popular/%s", strconv.Itoa(genre.Id)), Thumbnail: config.AddonResource("img", fmt.Sprintf("genre_%s.png", slug)), }) } ctx.JSON(200, xbmc.NewView("", items)) }
func renderShows(shows tmdb.Shows, ctx *gin.Context, page int) { paging := 0 if page >= 0 { paging = 1 } items := make(xbmc.ListItems, 0, len(shows)+paging) for _, show := range shows { if show == nil { continue } item := show.ToListItem() item.Path = UrlForXBMC("/show/%d/seasons", show.Id) item.ContextMenu = [][]string{ []string{"LOCALIZE[30219]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/library/show/addremove/%d", show.Id))}, []string{"LOCALIZE[30035]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/setviewmode/tvshows"))}, } items = append(items, item) } if page >= 0 { path := ctx.Request.URL.Path nextpage := &xbmc.ListItem{ Label: "LOCALIZE[30218]", Path: UrlForXBMC(fmt.Sprintf("%s?page=%d", path, page+1)), Thumbnail: config.AddonResource("img", "nextpage.png"), } items = append(items, nextpage) } ctx.JSON(200, xbmc.NewView("tvshows", items)) }
func renderShows(shows tmdb.Shows, ctx *gin.Context, page int, query string) { nextPage := 0 if page >= 0 { nextPage = 1 } items := make(xbmc.ListItems, 0, len(shows)+nextPage) for _, show := range shows { if show == nil { continue } item := show.ToListItem() item.Path = UrlForXBMC("/show/%d/seasons", show.Id) libraryAction := []string{"LOCALIZE[30252]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/library/show/add/%d", show.Id))} if inJsonDb, err := InJsonDB(strconv.Itoa(show.Id), LShow); err == nil && inJsonDb == true { libraryAction = []string{"LOCALIZE[30253]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/library/show/remove/%d", show.Id))} } watchlistAction := []string{"LOCALIZE[30255]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/show/%d/watchlist/add", show.Id))} if InShowsWatchlist(show.Id) { watchlistAction = []string{"LOCALIZE[30256]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/show/%d/watchlist/remove", show.Id))} } collectionAction := []string{"LOCALIZE[30258]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/show/%d/collection/add", show.Id))} if InShowsCollection(show.Id) { collectionAction = []string{"LOCALIZE[30259]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/show/%d/collection/remove", show.Id))} } item.ContextMenu = [][]string{ libraryAction, watchlistAction, collectionAction, []string{"LOCALIZE[30035]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/setviewmode/tvshows"))}, } items = append(items, item) } if page >= 0 { path := ctx.Request.URL.Path nextPath := UrlForXBMC(fmt.Sprintf("%s?page=%d", path, page+1)) if query != "" { nextPath = UrlForXBMC(fmt.Sprintf("%s?q=%s&page=%d", path, query, page+1)) } next := &xbmc.ListItem{ Label: "LOCALIZE[30218]", Path: nextPath, Thumbnail: config.AddonResource("img", "nextpage.png"), } items = append(items, next) } ctx.JSON(200, xbmc.NewView("tvshows", items)) }
func TVTrakt(ctx *gin.Context) { items := xbmc.ListItems{ {Label: "LOCALIZE[30254]", Path: UrlForXBMC("/shows/trakt/watchlist"), Thumbnail: config.AddonResource("img", "trakt.png")}, {Label: "LOCALIZE[30257]", Path: UrlForXBMC("/shows/trakt/collection"), Thumbnail: config.AddonResource("img", "trakt.png")}, {Label: "LOCALIZE[30210]", Path: UrlForXBMC("/shows/trakt/popular"), Thumbnail: config.AddonResource("img", "popular.png")}, {Label: "LOCALIZE[30246]", Path: UrlForXBMC("/shows/trakt/trending"), Thumbnail: config.AddonResource("img", "trending.png")}, {Label: "LOCALIZE[30247]", Path: UrlForXBMC("/shows/trakt/played"), Thumbnail: config.AddonResource("img", "most_played.png")}, {Label: "LOCALIZE[30248]", Path: UrlForXBMC("/shows/trakt/watched"), Thumbnail: config.AddonResource("img", "most_watched.png")}, {Label: "LOCALIZE[30249]", Path: UrlForXBMC("/shows/trakt/collected"), Thumbnail: config.AddonResource("img", "most_collected.png")}, {Label: "LOCALIZE[30250]", Path: UrlForXBMC("/shows/trakt/anticipated"), Thumbnail: config.AddonResource("img", "most_anticipated.png")}, } ctx.JSON(200, xbmc.NewView("", items)) }
func renderMovies(movies tmdb.Movies, ctx *gin.Context, page int) { paging := 0 if page >= 0 { paging = 1 } items := make(xbmc.ListItems, 0, len(movies)+paging) for _, movie := range movies { if movie == nil { continue } item := movie.ToListItem() playUrl := UrlForXBMC("/movie/%d/play", movie.Id) movieLinksUrl := UrlForXBMC("/movie/%d/links", movie.Id) if config.Get().ChooseStreamAuto == true { item.Path = playUrl } else { item.Path = movieLinksUrl } item.ContextMenu = [][]string{ []string{"LOCALIZE[30202]", fmt.Sprintf("XBMC.PlayMedia(%s)", movieLinksUrl)}, []string{"LOCALIZE[30023]", fmt.Sprintf("XBMC.PlayMedia(%s)", playUrl)}, []string{"LOCALIZE[30203]", "XBMC.Action(Info)"}, } if movie.IMDBId != "" { item.ContextMenu = append(item.ContextMenu, []string{ "LOCALIZE[30219]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/library/movie/addremove/%s", movie.IMDBId)), }) } item.ContextMenu = append(item.ContextMenu, []string{ "LOCALIZE[30034]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/setviewmode/movies")), }) item.Info.Trailer = UrlForHTTP("/youtube/%s", item.Info.Trailer) item.IsPlayable = true items = append(items, item) } if page >= 0 { path := ctx.Request.URL.Path nextpage := &xbmc.ListItem{ Label: "LOCALIZE[30218]", Path: UrlForXBMC(fmt.Sprintf("%s?page=%d", path, page+1)), Thumbnail: config.AddonResource("img", "nextpage.png"), } items = append(items, nextpage) } ctx.JSON(200, xbmc.NewView("movies", items)) }
func renderTraktMovies(movies []*trakt.Movies, ctx *gin.Context, page int) { hasNextPage := 0 if page > 0 { hasNextPage = 1 } items := make(xbmc.ListItems, 0, len(movies)+hasNextPage) for _, movieListing := range movies { movie := movieListing.Movie if movie == nil { continue } item := movie.ToListItem() playUrl := UrlForXBMC("/movie/%d/play", movie.IDs.TMDB) movieLinksUrl := UrlForXBMC("/movie/%d/links", movie.IDs.TMDB) if config.Get().ChooseStreamAuto == true { item.Path = playUrl } else { item.Path = movieLinksUrl } libraryAction := []string{"LOCALIZE[30252]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/library/movie/add/%d", movie.IDs.TMDB))} if inJsonDb, err := InJsonDB(strconv.Itoa(movie.IDs.TMDB), LMovie); err == nil && inJsonDb == true { libraryAction = []string{"LOCALIZE[30253]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/library/movie/remove/%d", movie.IDs.TMDB))} } watchlistAction := []string{"LOCALIZE[30255]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/movie/%d/watchlist/add", movie.IDs.TMDB))} if InMoviesWatchlist(movie.IDs.TMDB) { watchlistAction = []string{"LOCALIZE[30256]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/movie/%d/watchlist/remove", movie.IDs.TMDB))} } collectionAction := []string{"LOCALIZE[30258]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/movie/%d/collection/add", movie.IDs.TMDB))} if InMoviesCollection(movie.IDs.TMDB) { collectionAction = []string{"LOCALIZE[30259]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/movie/%d/collection/remove", movie.IDs.TMDB))} } item.ContextMenu = [][]string{ []string{"LOCALIZE[30202]", fmt.Sprintf("XBMC.PlayMedia(%s)", movieLinksUrl)}, []string{"LOCALIZE[30023]", fmt.Sprintf("XBMC.PlayMedia(%s)", playUrl)}, []string{"LOCALIZE[30203]", "XBMC.Action(Info)"}, libraryAction, watchlistAction, collectionAction, []string{"LOCALIZE[30034]", fmt.Sprintf("XBMC.RunPlugin(%s)", UrlForXBMC("/setviewmode/movies"))}, } // item.Info.Trailer = UrlForHTTP("/youtube/%s", movie.Trailer) item.IsPlayable = true items = append(items, item) } if page >= 0 && hasNextPage > 0 { path := ctx.Request.URL.Path nextpage := &xbmc.ListItem{ Label: "LOCALIZE[30218]", Path: UrlForXBMC(fmt.Sprintf("%s?page=%d", path, page+1)), Thumbnail: config.AddonResource("img", "nextpage.png"), } items = append(items, nextpage) } ctx.JSON(200, xbmc.NewView("movies", items)) }