private object GetUnsort(int max_limit) { ObjectList dir = new ObjectList("unsort", ObjectList.ListType.FILE); List<object> lst = new List<object>(); List<VideoLocal> vids = RepoFactory.VideoLocal.GetVideosWithoutEpisode(); foreach (VideoLocal vl in vids) { try { RawFile v = new RawFile(vl, 0); lst.Add(v); } catch { } if (max_limit != -1) { if (lst.Count >= max_limit) { break; } } } dir.Add(lst); return dir; }
internal object GetAllEpisodes() { Request request = this.Request; JMMUser user = (JMMUser)this.Context.CurrentUser; ObjectList ob = new ObjectList("all episodes", ObjectList.ListType.EPISODE); List<object> eps = new List<object>(); List<int> aepul = RepoFactory.AnimeEpisode_User.GetByUserID(user.JMMUserID).Select(a => a.AnimeEpisodeID).ToList(); foreach (int id in aepul) { eps.Add(new Episode().GenerateFromAnimeEpisodeID(id, user.JMMUserID,0)); } ob.Add(eps); return ob; }
private object GetSerieByFolderId(int folder_id, int max) { Request request = this.Request; Entities.JMMUser user = (Entities.JMMUser)this.Context.CurrentUser; ObjectList ob = new ObjectList("all series", ObjectList.ListType.SERIE); List<object> allseries = new List<object>(); List<VideoLocal> vlpall = RepoFactory.VideoLocalPlace.GetByImportFolder(folder_id).Select(a => a.VideoLocal).ToList(); foreach (VideoLocal vl in vlpall) { Serie ser = new Serie().GenerateFromVideoLocal(vl, user.JMMUserID, 1,0,0); allseries.Add(ser); if (allseries.Count >= max) { break; } } ob.Add(allseries); return ob; }
private object GetRecentSeries(int limit) { Request request = this.Request; Entities.JMMUser user = (Entities.JMMUser)this.Context.CurrentUser; ObjectList ob = new ObjectList("all series", ObjectList.ListType.SERIE); List<object> allseries = new List<object>(); List<AnimeSeries> series = RepoFactory.AnimeSeries.GetMostRecentlyAdded(limit); foreach (AnimeSeries aser in series) { allseries.Add(new Serie().GenerateFromAnimeSeries(aser, user.JMMUserID, 1,0,0)); } ob.Add(allseries); return ob; }
private object GetRecentEpisodes(int max_limit) { Request request = this.Request; Entities.JMMUser user = (Entities.JMMUser)this.Context.CurrentUser; ObjectList obl = new ObjectList("recent episodes", ObjectList.ListType.EPISODE); List<object> lst = new List<object>(); List<VideoLocal> vids = RepoFactory.VideoLocal.GetMostRecentlyAdded(max_limit); foreach (VideoLocal vl in vids) { foreach (AnimeEpisode aep in vl.GetAnimeEpisodes()) { Episode ep = new Episode().GenerateFromAnimeEpisode(aep, user.JMMUserID, 0); lst.Add(ep); } } obl.Add(lst); return obl; }
private object GetItemsFromGroup(int uid, string GroupId, bool nocast = false) { int gid; int.TryParse(GroupId, out gid); if (gid == -1) { return APIStatus.internalError("Invalid Group Id"); } ObjectList obl = new ObjectList(); List<Video> retGroups = new List<Video>(); AnimeGroup grp = RepoFactory.AnimeGroup.GetByID(gid); if (grp == null) { return APIStatus.notFound404("Group not found"); } Contract_AnimeGroup basegrp = grp?.GetUserContract(uid); if (basegrp != null) { List<AnimeSeries> seriesList = grp.GetSeries(); foreach (AnimeGroup grpChild in grp.GetChildGroups()) { Filter fr = new Filter(); var v = grpChild.GetPlexContract(uid); if (v != null) { fr.type = "show"; fr.url = APIHelper.ConstructGroupIdUrl(gid.ToString()); fr.art.fanart.Add(new Art() { url = Helper.GetRandomFanartFromVideo(v) ?? v.Art, index = 0 }); fr.art.banner.Add(new Art() { url = v.Banner = Helper.GetRandomBannerFromVideo(v) ?? v.Banner, index = 0 }); obl.list.Add(fr); } } foreach (AnimeSeries ser in seriesList) { Serie seri = new Serie().GenerateFromAnimeSeries(ser, uid, 0,0,0); obl.list.Add(seri); } } return obl; }
private object GetGroupsOrSubFiltersFromFilter(string GroupFilterID, int uid) { try { int groupFilterID = -1; int.TryParse(GroupFilterID, out groupFilterID); ObjectList dir = new ObjectList(); if (groupFilterID >= 0) { GroupFilter gf = RepoFactory.GroupFilter.GetByID(groupFilterID); if (gf == null) { return APIStatus.notFound404(); } dir.name = gf.GroupFilterName; dir.type = "show"; List<GroupFilter> allGfs = RepoFactory.GroupFilter.GetByParentID(groupFilterID).Where(a => a.InvisibleInClients == 0 && ( (a.GroupsIds.ContainsKey(uid) && a.GroupsIds[uid].Count > 0) || (a.FilterType & (int)GroupFilterType.Directory) == (int)GroupFilterType.Directory) ).ToList(); List<Filter> dirs = new List<Filter>(); foreach (GroupFilter gg in allGfs) { Filter pp = APIHelper.FilterFromGroupFilter(gg, uid); dirs.Add(pp); } if (dirs.Count > 0) { dir.Add(new List<object>(dirs.OrderBy(a => a.name).Cast<object>().ToList())); return dir; } if (gf.GroupsIds.ContainsKey(uid)) { foreach (AnimeGroup grp in gf.GroupsIds[uid].ToList().Select(a => RepoFactory.AnimeGroup.GetByID(a)).Where(a => a != null)) { Filter pp = APIHelper.FilterFromAnimeGroup(grp, uid); dirs.Add(pp); } dir.Add(new List<object>(dirs.Cast<object>().ToList())); } } return dir; } catch (Exception ex) { return APIStatus.internalError(ex.Message.ToString()); } }