Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }