Exemple #1
0
        public static void HttpSendgotoHttp(string url, FrontViewConfig _config, Plugin.ApiCurrently nowPlaying)
        {
            try
            {
                //Add Variable Support to URL passing - mainly useful for filename?
                var newurl = url;

                if (url == "")
                {
                    Logger.Instance().LogDump("HttpSend", "Called - URL Empty:  URL: " + url, true);
                    return;
                }

                if (nowPlaying.FileName != null)
                {
                    newurl = url.Replace("%HTTPFILENAME%", Uri.EscapeUriString(nowPlaying.FileName));
                }
                if (nowPlaying.Artist != null)
                {
                    newurl = newurl.Replace("%HTTPARTIST%", Uri.EscapeUriString(nowPlaying.Artist));
                }
                if (nowPlaying.Album != null)
                {
                    newurl = newurl.Replace("%HTTPALBUM%", Uri.EscapeUriString(nowPlaying.Album));
                }
                if (nowPlaying.FanartURL != null)
                {
                    newurl = newurl.Replace("%HTTPFANARTURL%", Uri.EscapeUriString(nowPlaying.FanartURL));
                }
                if (nowPlaying.MediaType != null)
                {
                    newurl = newurl.Replace("%HTTPMEDIATYPE%", Uri.EscapeUriString(nowPlaying.MediaType));
                }
                if (nowPlaying.ShowTitle != null)
                {
                    newurl = newurl.Replace("%HTTPTITLE%", Uri.EscapeUriString(nowPlaying.ShowTitle));
                }
                if (nowPlaying.Plot != null)
                {
                    newurl = newurl.Replace("%HTTPPLOT%", Uri.EscapeUriString(nowPlaying.Plot));
                }


                newurl = newurl.Replace("%HTTPSEASONNO%", Uri.EscapeUriString(nowPlaying.SeasonNumber.ToString()));


                newurl = newurl.Replace("%HTTPPROGRESS%", Uri.EscapeUriString(nowPlaying.Progress.ToString()));

                newurl = newurl.Replace("%HTTPTIME%", Uri.EscapeUriString(nowPlaying.Time.ToString()));

                newurl = newurl.Replace("%HTTPEPISODENO%", Uri.EscapeUriString(nowPlaying.EpisodeNumber.ToString()));



                Logger.Instance().LogDump("HttpSend", "Variables " + url + " newURL " + newurl, true);

                url = newurl;


                if (_config.HttpUseDigest == false)
                {
                    Logger.Instance().LogDump("HttpSend", "Using Basic: Url:  " + url, true);

                    var logon    = _config.HttpUser;
                    var password = _config.HttpPassword;
                    var Auth     = "Basic";


                    Logger.Instance().LogDump("HttpSend", "Using " + Auth + " Authorisation:   URL " + url, true);

                    WebRequest request = WebRequest.Create(url);
                    request.Method = WebRequestMethods.Http.Get;
                    NetworkCredential networkCredential = new NetworkCredential(logon, password); // logon in format "domain\username"
                    CredentialCache   myCredentialCache = new CredentialCache {
                        { new Uri(url), Auth, networkCredential }
                    };
                    request.PreAuthenticate = true;
                    request.Credentials     = myCredentialCache;
                    using (WebResponse response = request.GetResponse())
                    {
                        //Console.WriteLine(((HttpWebResponse)response).StatusDescription);
                        Logger.Instance().LogDump("HttpSend", "Response: " + url + " Response: " + (((HttpWebResponse)response).StatusDescription), true);
                        //using (Stream dataStream = response.GetResponseStream())
                        // {
                        //     using (StreamReader reader = new StreamReader(dataStream))
                        //     {
                        //         string responseFromServer = reader.ReadToEnd();
                        //         Logger.Instance().LogDump("HttpSend", "url: " + url + " Response: " + responseFromServer, true);
                        //Console.WriteLine(responseFromServer);
                        //     }
                        // }
                    }
                }
                if (_config.HttpUseDigest == true)
                {
                    Uri    myurl   = new Uri(url);
                    string baseurl = myurl.GetComponents(UriComponents.SchemeAndServer | UriComponents.UserInfo, UriFormat.Unescaped);
                    //var baseurl = myurl.Host;
                    var dir = myurl.PathAndQuery;
                    Logger.Instance().LogDump("HttpSend", "Using Digest:  Url: " + url + " BaseURL: " + baseurl + "  Dir: " + dir, true);
                    DigestAuthFixer digest    = new DigestAuthFixer(baseurl, _config.HttpUser, _config.HttpPassword);
                    string          strReturn = digest.GrabResponse(dir);
                }
            }


            catch (Exception ex)
            {
                Logger.Instance().Log("HttpSend", "ERROR: For URL: " + url + "   Exception: " + ex, true);
            }
        }
Exemple #2
0
        public void RefreshNowPlaying()
        {
            lock (Locker)
            {
                if (!_parent.IsConnected()) return;

                var infos = _parent.Command("GetCurrentlyPlaying");
                if (infos == null)
                    return;

                _currentInfo.Clear();

                foreach (var info in infos)
                {
                    var splitIndex = info.IndexOf(':') + 1;
                    if (splitIndex <= 2) continue;
                    var key = info.Substring(0, splitIndex - 1).Replace(" ", "").ToLower(CultureInfo.InvariantCulture);
                    var value = info.Substring(splitIndex, info.Length - splitIndex);
                    _currentInfo.Add(key, value);
                }
                if (GetInfo("thumb") != null)
                {
                    var thumbparts = GetInfo("thumb").Split('/');
                    var hash = thumbparts[thumbparts.Length - 1].Trim().Replace(".tbn", "");
                    _currentInfo.Add("fanart", GetInfo("thumb").Replace("/" + hash[0] + "/", "/Fanart/"));
                }

                string[] aVolume = null;
                string[] aProgress = null;

                if (GetInfo("playstatus") != null)
                {
                    aVolume = _parent.Command("GetVolume");
                    if (aVolume == null)
                        return;
                    aProgress = _parent.Command("GetPercentage");
                    if (aProgress == null)
                        return;
                }

                try
                {
                    _volume = aVolume != null ? Convert.ToInt32("0" + aVolume[0], CultureInfo.InvariantCulture) : 0;
                }
                catch (Exception)
                {
                    _volume = 0;
                }

                _volume = Math.Min(100, _volume);
                try
                {
                    _progress = aProgress != null ? Convert.ToInt32("0" + aProgress[0], CultureInfo.InvariantCulture) : 1;
                }
                catch (Exception)
                {
                    _progress = 1;
                }
                _progress = Math.Min(99, _progress);

                var nowPlaying = new ApiCurrently
                {
                    IsPlaying = (GetInfo("playstatus") == "Playing") ? true : false,
                    IsPaused = (GetInfo("playstatus") == "Paused") ? true : false,
                    IsNewMedia = _isNewMedia,
                    IsMuted = (_volume == 0) ? true : false
                };

                if (GetInfo("showtitle") != null)
                    nowPlaying.MediaType = "TvShow";
                else if (GetInfo("title") != null)
                {
                    if (GetInfo("type") == "Audio")
                        nowPlaying.MediaType = "Audio";
                    if (GetInfo("type") == "Video")
                        nowPlaying.MediaType = "Movie";
                }
                else
                {
                    nowPlaying.MediaType = "Unknown";
                }

                nowPlaying.FileName = GetInfo("filename");
                nowPlaying.Title = GetInfo("title");
                nowPlaying.Artist = GetInfo("artist");
                nowPlaying.Album = GetInfo("album");
                try
                {
                    nowPlaying.Year = Convert.ToInt32("0" + GetInfo("year"), CultureInfo.InvariantCulture);
                }
                catch
                {
                    nowPlaying.Year = 0;
                }
                try
                {

                    nowPlaying.Track = Convert.ToInt32("0" + GetInfo("track"), CultureInfo.InvariantCulture);
                }
                catch
                {
                    nowPlaying.Track = 0;
                }
                try
                {
                    nowPlaying.SeasonNumber = Convert.ToInt32("0" + GetInfo("season"), CultureInfo.InvariantCulture);
                }
                catch
                {
                    nowPlaying.SeasonNumber = 0;
                }
                try
                {
                    nowPlaying.EpisodeNumber = Convert.ToInt32("0" + GetInfo("episode"), CultureInfo.InvariantCulture);
                }
                catch
                {
                    nowPlaying.EpisodeNumber = 0;
                }

                nowPlaying.Genre = GetInfo("genre");
                nowPlaying.ThumbURL = GetInfo("thumb");
                nowPlaying.FanartURL = GetInfo("fanart");
                nowPlaying.ShowTitle = GetInfo("showtitle");
                nowPlaying.Plot = GetInfo("plot");
                nowPlaying.Director = GetInfo("director");
                nowPlaying.Volume = GetVolume();
                nowPlaying.Progress = GetProgress();

                nowPlaying.Studio = GetInfo("studio");
                nowPlaying.Tagline = GetInfo("tagline");
                nowPlaying.Rating = GetInfo("rating");

                var time = GetInfo("time");
                if (!string.IsNullOrEmpty(time))
                {
                    var splittime = time.Split(':');
                    switch (splittime.Length)
                    {
                        case 1:
                            nowPlaying.Time = new TimeSpan(0, 0, 0,
                                                           Convert.ToInt32("0" + splittime[0], CultureInfo.InvariantCulture));
                            break;
                        case 2:
                            nowPlaying.Time = new TimeSpan(0, 0,
                                                           Convert.ToInt32("0" + splittime[0], CultureInfo.InvariantCulture),
                                                           Convert.ToInt32("0" + splittime[1], CultureInfo.InvariantCulture));
                            break;
                        case 3:
                            nowPlaying.Time = new TimeSpan(0,
                                                           Convert.ToInt32("0" + splittime[0], CultureInfo.InvariantCulture),
                                                           Convert.ToInt32("0" + splittime[1], CultureInfo.InvariantCulture),
                                                           Convert.ToInt32("0" + splittime[2], CultureInfo.InvariantCulture));
                            break;
                        default:
                            nowPlaying.Time = new TimeSpan(0);
                            break;
                    }
                }

                var duration = GetInfo("duration");
                if (duration != null)
                {
                    var splitduration = duration.Split(':');
                    switch (splitduration.Length)
                    {
                        case 1:
                            nowPlaying.Duration = new TimeSpan(0, 0, 0,
                                                               Convert.ToInt32("0" + splitduration[0],
                                                                               CultureInfo.InvariantCulture));
                            break;
                        case 2:
                            nowPlaying.Duration = new TimeSpan(0, 0,
                                                               Convert.ToInt32("0" + splitduration[0],
                                                                               CultureInfo.InvariantCulture),
                                                               Convert.ToInt32("0" + splitduration[1],
                                                                               CultureInfo.InvariantCulture));
                            break;
                        case 3:
                            nowPlaying.Duration = new TimeSpan(0,
                                                               Convert.ToInt32("0" + splitduration[0],
                                                                               CultureInfo.InvariantCulture),
                                                               Convert.ToInt32("0" + splitduration[1],
                                                                               CultureInfo.InvariantCulture),
                                                               Convert.ToInt32("0" + splitduration[2],
                                                                               CultureInfo.InvariantCulture));
                            break;
                        default:
                            nowPlaying.Duration = new TimeSpan(0);
                            break;
                    }
                }

                var firstaired = GetInfo("firstaired");
                if (firstaired != null)
                {
                    var splitaired = firstaired.Split('-');
                    if (splitaired.Length > 1)
                        nowPlaying.FirstAired =
                            new DateTime(Convert.ToInt32("0" + splitaired[0], CultureInfo.InvariantCulture),
                                         Convert.ToInt32("0" + splitaired[1], CultureInfo.InvariantCulture),
                                         Convert.ToInt32("0" + splitaired[2], CultureInfo.InvariantCulture));

                }
                _nowPlaying = nowPlaying;
            }
        }
Exemple #3
0
 public ApiCurrently NowPlaying(bool checkNewMedia)
 {
     var nowPlaying = new ApiCurrently();
     // TODO : Correct implementation
     return nowPlaying;
 }