public static SubtitleDownloader FromDownloadURI(string downloadURI)
        {
            string serverUrl = string.Empty, serverTypeStr = string.Empty,
                   userName = string.Empty, password = string.Empty;

            bool active = false;

            string[] fields = StringUtils.ToStringArray(downloadURI, ';');
            if (fields != null && fields.Length > 0)
            {
                int i = 0;
                serverTypeStr = fields[i++];
                if (fields.Length > i)
                {
                    serverUrl = fields[i++];
                }
                if (fields.Length > i)
                {
                    active = (fields[i++] == "1");
                }
                if (fields.Length > i)
                {
                    userName = fields[i++];
                }
                if (fields.Length > i)
                {
                    password = fields[i++];
                }
            }

            SubtitleServerType serverType = SubtitleServerType.Osdb;

            try
            {
                serverType = (SubtitleServerType)Enum.Parse(typeof(SubtitleServerType), serverTypeStr);
            }
            catch
            {
                serverType = SubtitleServerType.Osdb;
            }

            SubtitleDownloader sd = new SubtitleDownloader(serverType, serverUrl, userName, password);

            sd.IsActive = active;

            return(sd);
        }
        public static SubtitleDownloader FromDownloadURI(string downloadURI)
        {
            string serverUrl = string.Empty, serverTypeStr = string.Empty,
                userName = string.Empty, password = string.Empty;

            bool active = false;

            string[] fields = StringUtils.ToStringArray(downloadURI, ';');
            if (fields != null && fields.Length > 0)
            {
                int i = 0;
                serverTypeStr = fields[i++];
                if (fields.Length > i)
                    serverUrl = fields[i++];
                if (fields.Length > i)
                    active = (fields[i++] == "1");
                if (fields.Length > i)
                    userName = fields[i++];
                if (fields.Length > i)
                    password = fields[i++];
            }

            SubtitleServerType serverType = SubtitleServerType.Osdb;
            try
            {
                serverType = (SubtitleServerType)Enum.Parse(typeof(SubtitleServerType), serverTypeStr);
            }
            catch
            {
                serverType = SubtitleServerType.Osdb;
            }

            SubtitleDownloader sd = new SubtitleDownloader(serverType, serverUrl, userName, password);
            sd.IsActive = active;

            return sd;
        }