public override bool CheckConnection() { if (!MpcLoaded) { string url = GetJsonPath() + "/clients"; // PMS Server Clients Page - to connect to and see whether local player is in effect. try { var request = WebRequest.Create(url); request.Headers.Add("X-Plex-Token", PlexAuthToken); var response = request.GetResponse(); if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK) { // Get the stream containing content returned by the server. System.IO.Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader. System.IO.StreamReader reader = new System.IO.StreamReader(dataStream); XmlSerializer serializer = new XmlSerializer(typeof(ClientsMediaContainer)); ClientsMediaContainer deserialized = (ClientsMediaContainer)serializer.Deserialize(reader); if (deserialized.Server.Count == 0) { Log("No connected Plex. Clients Found"); return(false); } foreach (var server in deserialized.Server) { Log("Clients FOUND: " + server.Value); Log("name is " + server.name + " and host is " + server.host); if (server.host == GetLocalIPAddress()) { Log("Client Machine Found - Yah! " + server.host + ":" + server.name); ClientIPAddress = server.host; return(true); } } Log("Local Client not found - disconnecting"); return(false); } Log("HTTP Status Not Okay - no exception failed - disconnecting"); return(false); } catch (Exception ex) { Log("Cannot connect is server details right " + ex); return(false); } } return(true); }
public override int TestConnection(string ip, string port, string user, string password) { if (String.IsNullOrEmpty(ip)) { return(0); } if (String.IsNullOrEmpty(port)) { Log("Test connection : " + ip); } else { Log("Test connection : " + ip + ":" + port); } PlexAuthToken = GetPlexAuthToken(ip, port, user, password); if (String.IsNullOrEmpty(PlexAuthToken)) { Log("Not Plex Token - Not checking for clients."); return(0); // Not Connected - failed Setup. //Still need to check local player there - rather than internet server which gives Auth } string url = "http://" + ip + ":" + port + "/clients"; // PMS Server Clients Page - to connect to and see whether local player is in effect. try { var request = WebRequest.Create(url); request.Headers.Add("X-Plex-Token", PlexAuthToken); var response = request.GetResponse(); if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK) { // Get the stream containing content returned by the server. System.IO.Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader. System.IO.StreamReader reader = new System.IO.StreamReader(dataStream); XmlSerializer serializer = new XmlSerializer(typeof(ClientsMediaContainer)); ClientsMediaContainer deserialized = (ClientsMediaContainer)serializer.Deserialize(reader); if (deserialized.Server.Count == 0) { Log("No connected Plex. Clients Found"); return(0); } foreach (var server in deserialized.Server) { Log("Clients FOUND: " + server.Value); Log("name is " + server.name + " and host is " + server.host); if (server.host == GetLocalIPAddress()) { Log("Client Machine Found - Yah! " + server.host + ":" + server.name); ClientIPAddress = server.host; ServerPort = port; return(1); } } Log("Local Client not found - disconnecting"); return(0); } Log("HTTP Status Not Okay - no exception failed - disconnecting"); return(0); } catch (Exception ex) { Log("Cannot connect is server details right " + ex); return(0); } }