Esempio n. 1
0
        private void ParseM3UTvChannelsFile(string m3uLine)
        {
            if (m3uLine == "#EXTM3U")
            {
                this.IsExtendend = true;
            }
            else if (m3uLine.StartsWith("#EXTINF"))
            {
                this._currentTvChannel = this.ExtractExtendedChannelInformation(m3uLine);
            }
            else
            {
                var m3uLineArray = m3uLine.Split('|');
                if (m3uLineArray.Length == 1)
                {
                    this._currentTvChannel.Path = m3uLine;
                }
                else
                {
                    this._currentTvChannel.Path = m3uLineArray[0].Trim();
                }

                this._channels.Add(this._currentTvChannel);
            }
        }
Esempio n. 2
0
        private TvChannel ExtractExtendedChannelInformation(string line)
        {
            var auxInformation = line.Substring(11, line.Length - 11);

            var channel = new TvChannel();

            var tvgId_Index      = auxInformation.IndexOf("tvg-id");
            var tvgName_Index    = auxInformation.IndexOf("tvg-name");
            var tvgLogo_Index    = auxInformation.IndexOf("tvg-logo");
            var groupTitle_Index = auxInformation.IndexOf("group-title");

            var tvgId = auxInformation.Substring(tvgId_Index, tvgId_Index + tvgName_Index).Trim();

            channel.Id = this.ExtractAndSanitizeValue(tvgId);

            var tvgName      = auxInformation.Substring(tvgName_Index, tvgLogo_Index - tvgName_Index).Trim();
            var tvgNameArray = tvgName.Split(':');

            if (tvgNameArray.Length == 1)
            {
                channel.Name = this.ExtractAndSanitizeValue(tvgName);
            }
            else
            {
                channel.Name            = tvgNameArray[0].Trim();
                channel.VideoParameters = tvgNameArray[1].Trim();
            }

            var tvgLogo = auxInformation.Substring(tvgLogo_Index, groupTitle_Index - tvgLogo_Index).Trim();

            channel.Logo = this.ExtractAndSanitizeValue(tvgLogo);

            var groupTitle = auxInformation.Substring(groupTitle_Index, auxInformation.Length - groupTitle_Index).Split(',')[0].Trim();

            channel.GroupTitle = this.ExtractAndSanitizeValue(groupTitle);

            return(channel);
        }