Ejemplo n.º 1
0
 public override string GetPlaylist(MyWebRequest req)
 {
     int channel_id = 0;
     if (req.Parameters.ContainsKey("id"))
         channel_id = int.Parse(req.Parameters["id"]);
     return GetEpg.XRun(this._device.Proxy.SessionState.session, channel_id).ToString();
 }
Ejemplo n.º 2
0
 public void SendResponse(MyWebRequest req)
 {
     string text;
     try
     {
         text = this.GetPlaylist(req);
     }
     catch (Exception ex)
     {
         text = ex.Message;
     }
     req.GetResponse().SendText(text);
 }
Ejemplo n.º 3
0
 private void AddFavouriteRequest(MyWebRequest req)
 {
     FavouriteAdd favouriteAdd = FavouriteAdd.Run(this._device.Proxy.SessionState.session, int.Parse(req.Parameters["id"].Split("#".ToCharArray(), 2)[0]));
     MyWebResponse response = req.GetResponse();
     int num1 = 1;
     string str1 = this._device.Web.GetMime(".xml").ToString();
     string charset1 = "utf-8";
     response.AddHeader((HttpHeader)num1, str1, charset1);
     byte[] bytes = Encoding.UTF8.GetBytes(favouriteAdd.GetXState());
     int num2 = 0;
     string str2 = bytes.Length.ToString();
     string charset2 = "utf-8";
     response.AddHeader((HttpHeader)num2, str2, charset2);
     int code = 200;
     response.SendHeaders(code);
     response.GetStream().Write(bytes, 0, bytes.Length);
 }
Ejemplo n.º 4
0
 private void LoginRequest(MyWebRequest obj)
 {
     this.Proxy.Login();
     MyWebResponse response = obj.GetResponse();
     byte[] bytes = Encoding.UTF8.GetBytes(this.Proxy.SessionState.ToString());
     int num1 = 1;
     string str1 = "text/xml";
     string charset1 = "utf-8";
     response.AddHeader((HttpHeader)num1, str1, charset1);
     int num2 = 0;
     string str2 = bytes.Length.ToString();
     string charset2 = "utf-8";
     response.AddHeader((HttpHeader)num2, str2, charset2);
     int code = 200;
     response.SendHeaders(code);
     response.GetStream().Write(bytes, 0, bytes.Length);
 }
Ejemplo n.º 5
0
 private void ScreenRequest(MyWebRequest myWebRequest)
 {
     if (!myWebRequest.Parameters.ContainsKey("id"))
     {
         this._device.Web.Send404(myWebRequest);
     }
     else
     {
         byte[] bytes = Encoding.UTF8.GetBytes(TranslationScreen.XRun(this._device.Proxy.SessionState.session, int.Parse(myWebRequest.Parameters["id"])).ToString());
         MyWebResponse response = myWebRequest.GetResponse();
         int num1 = 1;
         string str1 = this._device.Web.GetMime(".xml").ToString();
         string charset1 = "utf-8";
         response.AddHeader((HttpHeader)num1, str1, charset1);
         int num2 = 0;
         string str2 = bytes.Length.ToString();
         string charset2 = "utf-8";
         response.AddHeader((HttpHeader)num2, str2, charset2);
         int code = 200;
         response.SendHeaders(code);
         response.GetStream().Write(bytes, 0, bytes.Length);
     }
 }
Ejemplo n.º 6
0
 public override void Play(MyWebRequest req)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 7
0
 public override void Play(MyWebRequest req)
 {
     GetStream getStream = GetStream.Run(this._device.Proxy.SessionState.session, int.Parse(req.Parameters["id"].Split("#".ToCharArray(), 2)[0]));
     if (!getStream.IsSuccess())
     {
         if (getStream.error != ApiError.incorrect)
             throw new Exception(getStream.error.ToString());
         while (!this._device.Proxy.Login() && this._device.Proxy.SessionState.error == ApiError.noconnect)
             TtvProxy.Log.WriteInfo("Попыдка авторизации на torrent-tv.ru");
         if (!this._device.Proxy.SessionState.IsSuccess())
             throw new Exception("No authorized");
         this.Play(req);
     }
     else
     {
         TorrentStream ts = this._device.Proxy.GetTsClient(getStream.source);
         Task<string> task;
         if (ts == null)
         {
             if (!req.Client.Connected)
                 return;
             ts = new TorrentStream(req.Client);
             ts.Connect();
             task = ts.Play(getStream.source, getStream.type, 0);
             if (task != null)
                 this._device.Proxy.AddToTsPool(ts);
         }
         else
         {
             task = ts.GetPlayTask();
             ts.Owner.Add(req.Client);
         }
         if (task != null && !task.IsCompleted)
             task.Wait();
         else if (task == null)
             throw new FileNotFoundException();
         if (string.IsNullOrEmpty(task.Result))
         {
             this._device.Proxy.RemoveFromTsPoos(ts);
             req.GetResponse().SendText("AceStream TimeOut");
         }
         else
         {
             string result = task.Result;
             string str = string.Empty;
             try
             {
                 str = this._device.Proxy.FindBroadcastUrl(result);
                 if (string.IsNullOrEmpty(str))
                     str = this._device.Proxy.StartBroadcastStream(result, (string)null);
                 this._device.Proxy.AddVlcBroadcastClient(str, req.Client);
                 req.GetResponse().SendStream(str, (Action<MyWebRequest>)null);
                 if (req.Client.Connected)
                     req.Client.Close();
                 if (!this._device.Proxy.StopBroadcast(str, result))
                     return;
                 ts.Disconnect(true);
                 this._device.Proxy.RemoveFromTsPoos(ts);
             }
             catch (Exception ex)
             {
                 TtvProxy.Log.WriteError(ex.Message);
                 ts.Disconnect(true);
                 this._device.Proxy.RemoveFromTsPoos(ts);
                 this._device.Proxy.StopBroadcast(str, result);
             }
         }
     }
 }
Ejemplo n.º 8
0
 public override string GetPlaylist(MyWebRequest req)
 {
     if (!req.Parameters.ContainsKey("type"))
         return AllTranslation.XRun(this._device.Proxy.SessionState.session, req.Parameters.ContainsKey("filter") ? req.Parameters["filter"] : "all").ToString();
     try
     {
         this.UpdateTranslations(req.Parameters);
     }
     catch (Exception ex)
     {
         return ex.Message;
     }
     Playlist playlist = Playlist.CreatePlaylist(req.Parameters["type"], Playlist.ContentType.Channel);
     List<Channel> list = req.Parameters.ContainsKey("group") ? Enumerable.ToList<Channel>(Enumerable.Where<Channel>((IEnumerable<Channel>)this._apires.channels, (Func<Channel, bool>)(channel => channel.group == req.Parameters["group"]))) : this._apires.channels;
     if (req.Parameters.ContainsKey("sort"))
     {
         string str = req.Parameters["sort"];
         if (!(str == "group"))
         {
             if (!(str == "-group"))
             {
                 if (!(str == "title"))
                 {
                     if (!(str == "-title"))
                     {
                         if (!(str == "id"))
                         {
                             if (str == "-id")
                                 list = Enumerable.ToList<Channel>((IEnumerable<Channel>)Enumerable.OrderByDescending<Channel, string>((IEnumerable<Channel>)list, (Func<Channel, string>)(channel => channel.id)));
                         }
                         else
                             list = Enumerable.ToList<Channel>((IEnumerable<Channel>)Enumerable.OrderBy<Channel, string>((IEnumerable<Channel>)list, (Func<Channel, string>)(channel => channel.id)));
                     }
                     else
                         list = Enumerable.ToList<Channel>((IEnumerable<Channel>)Enumerable.OrderByDescending<Channel, string>((IEnumerable<Channel>)list, (Func<Channel, string>)(channel => channel.name)));
                 }
                 else
                     list = Enumerable.ToList<Channel>((IEnumerable<Channel>)Enumerable.OrderBy<Channel, string>((IEnumerable<Channel>)list, (Func<Channel, string>)(channel => channel.name)));
             }
             else
                 list = Enumerable.ToList<Channel>((IEnumerable<Channel>)Enumerable.OrderByDescending<Channel, string>((IEnumerable<Channel>)list, (Func<Channel, string>)(channel => channel.group)));
         }
         else
             list = Enumerable.ToList<Channel>((IEnumerable<Channel>)Enumerable.OrderBy<Channel, string>((IEnumerable<Channel>)list, (Func<Channel, string>)(channel => channel.group)));
     }
     foreach (Channel channel in list)
         playlist.AddLine((object)channel, req.Headers["host"], false, req.Parameters.ContainsKey("transcode") ? "&transcode=" + req.Parameters["transcode"] : "");
     return playlist.ToString();
 }
Ejemplo n.º 9
0
 public static MyWebRequest Create(TcpClient client)
 {
     MyWebRequest myWebRequest = new MyWebRequest()
     {
         headers = new Dictionary<string, string>((IEqualityComparer<string>)StringComparer.OrdinalIgnoreCase),
         urlParams = new Dictionary<string, string>((IEqualityComparer<string>)StringComparer.OrdinalIgnoreCase),
         Client = client,
         stream = client.GetStream(),
         QueryString = string.Empty
     };
     StringBuilder stringBuilder = new StringBuilder(128);
     bool flag1 = false;
     bool flag2 = true;
     int num1;
     while ((num1 = myWebRequest.stream.ReadByte()) >= 0)
     {
         if (num1 == 10 & flag1)
         {
             string str1 = stringBuilder.ToString(0, stringBuilder.Length - 1);
             if (!(str1 == string.Empty))
             {
                 stringBuilder.Clear();
                 if (flag2)
                 {
                     string[] strArray1 = str1.Split(new char[1]
                     {
         ' '
                     }, 2, StringSplitOptions.RemoveEmptyEntries);
                     myWebRequest.method = (HttpMethod)Enum.Parse(typeof(HttpMethod), strArray1[0], true);
                     int length = strArray1[1].LastIndexOf(' ');
                     myWebRequest.version = strArray1[1].Substring(length + 1);
                     string[] strArray2 = HttpUtility.UrlDecode(strArray1[1].Substring(0, length)).Split(new char[1]
                     {
         '?'
                     }, 2, StringSplitOptions.RemoveEmptyEntries);
                     myWebRequest.url = strArray2[0];
                     if (strArray2.Length > 1)
                         myWebRequest.QueryString = strArray2[1];
                     if (strArray2.Length == 2)
                     {
                         string str2 = strArray2[1];
                         char[] separator1 = new char[1]
                         {
           '&'
                         };
                         int num2 = 1;
                         foreach (string str3 in str2.Split(separator1, (StringSplitOptions)num2))
                         {
                             char[] separator2 = new char[1]
                             {
             '='
                             };
                             int count = 2;
                             int num3 = 1;
                             string[] strArray3 = str3.Split(separator2, count, (StringSplitOptions)num3);
                             myWebRequest.urlParams[strArray3[0]] = strArray3.Length == 2 ? strArray3[1] : string.Empty;
                         }
                     }
                     flag2 = false;
                 }
                 else
                 {
                     string[] strArray = str1.Split(new char[1]
                     {
         ':'
                     }, 2, StringSplitOptions.RemoveEmptyEntries);
                     myWebRequest.headers[strArray[0].Trim()] = strArray.Length > 1 ? strArray[1].Trim() : string.Empty;
                 }
                 flag1 = false;
             }
             else
                 break;
         }
         else if (num1 == 13)
         {
             stringBuilder.Append((char)num1);
             flag1 = true;
         }
         else
         {
             stringBuilder.Append((char)num1);
             flag1 = false;
         }
     }
     return myWebRequest;
 }
Ejemplo n.º 10
0
 public void SendFile(MyWebRequest req, string fpath)
 {
     if (!System.IO.File.Exists(fpath))
         this.Send404(req);
     FileStream fileStream = System.IO.File.OpenRead(fpath);
     MyWebResponse response = req.GetResponse();
     response.AddHeader(HttpHeader.ContentType, this._mimes[Path.GetExtension(fpath)].ToString(), "utf-8");
     response.AddHeader(HttpHeader.ContentLength, fileStream.Length.ToString(), "utf-8");
     fileStream.CopyTo(response.GetStream());
 }
Ejemplo n.º 11
0
 public void Send404(MyWebRequest req)
 {
     MyWebResponse response = req.GetResponse();
     response.AddHeader(HttpHeader.ContentType, "text/html; charset=UTF-8", "utf-8");
     byte[] bytes = Encoding.UTF8.GetBytes("<h1>404. Файл не найден</h1>");
     response.AddHeader(HttpHeader.ContentLength, bytes.Length.ToString(), "utf-8");
     response.SendHeaders(200);
     try
     {
         response.GetStream().Write(bytes, 0, bytes.Length);
     }
     catch (Exception ex)
     {
         TtvProxy.Log.Write(ex.Message, TypeMessage.Error);
     }
 }
Ejemplo n.º 12
0
 internal MyWebResponse(MyWebRequest req, NetworkStream stream)
 {
     this._request = req;
     this._stream = stream;
     this._headers = new Dictionary<string, string>((IEqualityComparer<string>)StringComparer.OrdinalIgnoreCase);
 }
Ejemplo n.º 13
0
 public abstract void Play(MyWebRequest req);
Ejemplo n.º 14
0
 public abstract string GetPlaylist(MyWebRequest req);