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 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() item.Path = UrlForXBMC("/movie/%s/play", movie.IMDBId) item.Info.Trailer = UrlForHTTP("/youtube/%s", item.Info.Trailer) item.IsPlayable = true item.ContextMenu = [][]string{ []string{"LOCALIZE[30202]", fmt.Sprintf("XBMC.PlayMedia(%s)", UrlForXBMC("/movie/%s/links", movie.IMDBId))}, []string{"LOCALIZE[30203]", "XBMC.Action(Info)"}, } 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 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.ExternalIDs.TVDBID) 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)) }