public override IEnumerable <TvgMedia> Pull() { _panel = _panel ?? GetApiResultAsync(CancellationToken.None).GetAwaiter().GetResult(); if (_panel.Available_Channels != null) { return(_panel.Available_Channels.Select(x => Channels.ToTvgMedia(x, y => _panel.GenerateUrlFrom(x)))); } return(null); }
public override async Task <IEnumerable <TvgMedia> > PullAsync(CancellationToken cancellationToken) { _panel = _panel ?? await GetApiResultAsync(CancellationToken.None); if (_panel.Available_Channels != null) { return(_panel.Available_Channels.Select(x => Channels.ToTvgMedia(x, y => _panel.GenerateUrlFrom(x)))); } return(null); }
public async Task <IActionResult> Index(string Username, string Password, string action, string series_id, string stream_id, string category_id, string vod_id) { var routeName = ControllerContext.ActionDescriptor.AttributeRouteInfo.Template; string url = Request.QueryString.Value; string path = Request.Path.Value; string[] urlpar = url.Split("?/"); var urlparams = string.Join("", urlpar); if (urlparams != "" || !urlparams.Contains("action")) { if (routeName == "panel_api.php") { if (urlparams != "") { var client = new RestClient($"http://rb-group-server.com:25461/panel_api.php{urlparams}"); RestRequest request = new RestRequest(Method.GET); var response = await client.ExecuteAsync(request); var obj = JsonConvert.DeserializeObject <XtreamPanel>(response.Content); var xtp = new XtreamPanel(); xtp.User_info = obj.User_info; xtp.Server_info = obj.Server_info; xtp.Categories = obj.Categories; xtp.Available_Channels = obj.Available_Channels; //xtp.Channels = obj.Channels; //xtp.Available_Movies = obj.Available_Movies; //xtp.Available_Series = obj.Available_Series; /*var dict = obj.Available_Movies.ToDictionary(p => p.Value); * foreach (var person in obj.Available_Channels) * { * dict[person.Value] = person; * } * xtp.Available_Series = dict.Values.ToList();*/ string ob = JsonConvert.SerializeObject(xtp); return(Content(ob, "application/json")); } else { var client = new RestClient($"http://rb-group-server.com:25461/player_api.php?username={Username}&password={Password}&action={action}&series_id={series_id}&stream_id={stream_id}&category_id={category_id}&vod_id={vod_id}"); RestRequest request = new RestRequest(Method.GET); var response = await client.ExecuteAsync(request); return(Content(response.Content, "application/json")); } } else if (routeName == "player_api.php") { if (urlparams != "") { var client = new RestClient($"http://rb-group-server.com:25461/player_api.php{urlparams}"); RestRequest request = new RestRequest(Method.GET); var response = await client.ExecuteAsync(request); return(Content(response.Content, "application/json")); } else { var client = new RestClient($"http://rb-group-server.com:25461/player_api.php?username={Username}&password={Password}&action={action}&series_id={series_id}&stream_id={stream_id}&category_id={category_id}&vod_id={vod_id}"); RestRequest request = new RestRequest(Method.GET); var response = await client.ExecuteAsync(request); return(Content(response.Content, "application/json")); } } else if (routeName.Contains("movie")) { return(Redirect($"http://rb-group-server.com:25461{ path }")); } else if (routeName.Contains("series")) { return(Redirect($"http://rb-group-server.com:25461{ path }")); } else if (routeName.Contains("live")) { //string streamid = Request.Path.Value.Split('/').Last(); return(Redirect($"http://rb-group-server.com:25461{ path }")); } else if (routeName.Contains("created_live")) { /*string streamid = Request.Path.Value.Split('/').Last(); * string tempFile = Path.GetTempPath() + $"{streamid}"; * using (WebClient myWebClient = new WebClient()) * { * do * { * myWebClient.DownloadFileAsync(new Uri($"http://rb-group-server.com:25461{ path }"), tempFile); * * byte[] buffer; * FileStream fileStream = new FileStream(tempFile, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite); * try * { * int length = (int)fileStream.Length; * buffer = new byte[length]; * int count; * int sum = 0; * while ((count = fileStream.Read(buffer, sum, length - sum)) > 0) * { * sum += count; * } * } * catch (Exception) * { * //fileStream.Close(); * throw; * } * * return File(buffer, "video/mp2t"); * } while (tempFile.Length >= 0); * }*/ return(Redirect($"http://rb-group-server.com:25461{ path }")); } else if (urlparams != "" && !urlparams.Contains("action")) { var client = new RestClient($"http://rb-group-server.com:25461/"); RestRequest request = new RestRequest($"{urlparams}", Method.GET); var response = await client.ExecuteAsync(request); return(Content(response.Content, "application/json")); } else if (urlparams == "" && !urlparams.Contains("action")) { return(Ok("Access Denied")); } } return(Ok("Access Denied")); }
public XtreamClientMoq() { _xtreamPanel = Newtonsoft.Json.JsonConvert.DeserializeObject <XtreamPanel>(TrimJsonAndConvertChannelsToArray(GetXtreamPanel())); }