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); } }
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; } }
public ApiCurrently NowPlaying(bool checkNewMedia) { var nowPlaying = new ApiCurrently(); // TODO : Correct implementation return nowPlaying; }