コード例 #1
0
        public VideoProvider(string serviceName, string serviceId, string embedFormat, string editorFormat, string urlFormat, EmbedPattern[] embedPatterns,
            string urlPattern, bool urlConvertError, int width, int height, string useBackgroundColor, string appId, String[] publishPingUrls, string urlAtomPattern, string urlAtomFormat)
        {
            _serviceName = serviceName;
            _serviceId = serviceId;
            _embedFormat = embedFormat;
            _urlFormat = urlFormat;
            _urlPattern = urlPattern;
            _embedPatterns = embedPatterns;
            _width = width;
            _height = height;
            _useBackgroundColor = useBackgroundColor;
            _appId = appId;
            _publishPingUrls = publishPingUrls;
            _urlAtomPattern = urlAtomPattern;
            _urlAtomFormat = urlAtomFormat;

            _urlConvertError = urlConvertError;

            if (!String.IsNullOrEmpty(editorFormat))
                _editorFormat = editorFormat;
            else
                _editorFormat = embedFormat;
        }
コード例 #2
0
        public static VideoProvider VideoProviderFromXml(XmlNode providerNode)
        {
            string serviceName = NodeText(providerNode.SelectSingleNode("serviceName"));
            if (serviceName.Length == 0)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Name));

            string id = NodeText(providerNode.SelectSingleNode("id"));
            if (id.Length == 0)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Id));

            string embedFormat = NodeText(providerNode.SelectSingleNode("embedFormat"));
            if (embedFormat.Length == 0)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Format));
            embedFormat = embedFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name);

            string editorFormat = NodeText(providerNode.SelectSingleNode("editorFormat"));
            editorFormat = editorFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name);

            XmlNode embedPatternNode = providerNode.SelectSingleNode("embedPatterns");
            if (embedPatternNode == null)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern));
            XmlNodeList embedPatterns = embedPatternNode.SelectNodes("pattern");
            if (embedPatterns.Count == 0)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern));

            EmbedPattern[] embedPatternList = new EmbedPattern[embedPatterns.Count];
            int i = 0;
            foreach (XmlNode patternNode in embedPatterns)
            {
                string attribute = patternNode.Attributes["name"].Value;
                string pattern = NodeText(patternNode);
                embedPatternList[i++] = new EmbedPattern(attribute, pattern);
            }

            string urlFormat = NodeText(providerNode.SelectSingleNode("urlFormat"));
            if (urlFormat.Length == 0)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Format));

            XmlNode urlPatternNode = providerNode.SelectSingleNode("urlPattern");
            string urlPattern = NodeText(urlPatternNode);
            if (urlPattern.Length == 0)
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Pattern));

            bool urlConvertingError = false;
            if (urlPatternNode.Attributes["error"] != null)
                urlConvertingError = StringHelper.ToBool(urlPatternNode.Attributes["error"].Value, false);

            int width;
            int height;
            XmlNode sizeNode = providerNode.SelectSingleNode("size");
            if (sizeNode == null)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Size));
            }

            width = int.Parse(NodeText(sizeNode.SelectSingleNode("width")), CultureInfo.InvariantCulture);
            height = int.Parse(NodeText(sizeNode.SelectSingleNode("height")), CultureInfo.InvariantCulture);

            XmlNode backgroundNode = providerNode.SelectSingleNode("backgroundColor");
            string backgroundColor = NodeText(backgroundNode);

            XmlNode urlAtomPatternNode = providerNode.SelectSingleNode("urlAtomPattern");
            string urlAtomPattern = String.Empty;
            if (urlAtomPatternNode != null)
                urlAtomPattern = NodeText(urlAtomPatternNode);

            XmlNode urlAtomFormatNode = providerNode.SelectSingleNode("urlAtomFormat");
            string urlAtomFormat = String.Empty;
            if (urlAtomFormatNode != null)
                urlAtomFormat = NodeText(urlAtomFormatNode);

            XmlNode appIdNode = providerNode.SelectSingleNode("appServiceId");
            string appId = NodeText(appIdNode);

            XmlNode urlNode = providerNode.SelectSingleNode("publishPingUrl");
            string[] urls = null;
            if (urlNode != null)
            {
                int start = Convert.ToInt32(urlNode.Attributes["start"].Value, CultureInfo.InvariantCulture);
                int end = Convert.ToInt32(urlNode.Attributes["end"].Value, CultureInfo.InvariantCulture);
                urls = new string[end - start + 1];
                for (int j = 0; j < urls.Length; j++)
                {
                    urls[j] = NodeText(urlNode).Replace("{i}", (j + start).ToString(CultureInfo.InvariantCulture));
                }
            }
            return new VideoProvider(serviceName, id, embedFormat, editorFormat, urlFormat, embedPatternList, urlPattern, urlConvertingError, width, height, backgroundColor, appId, urls, urlAtomPattern, urlAtomFormat);
        }
コード例 #3
0
        public static VideoProvider VideoProviderFromXml(XmlNode providerNode)
        {
            string serviceName = NodeText(providerNode.SelectSingleNode("serviceName"));

            if (serviceName.Length == 0)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Name));
            }

            string id = NodeText(providerNode.SelectSingleNode("id"));

            if (id.Length == 0)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Id));
            }

            string embedFormat = NodeText(providerNode.SelectSingleNode("embedFormat"));

            if (embedFormat.Length == 0)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Format));
            }
            embedFormat = embedFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name);

            string editorFormat = NodeText(providerNode.SelectSingleNode("editorFormat"));

            editorFormat = editorFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name);

            XmlNode embedPatternNode = providerNode.SelectSingleNode("embedPatterns");

            if (embedPatternNode == null)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern));
            }
            XmlNodeList embedPatterns = embedPatternNode.SelectNodes("pattern");

            if (embedPatterns.Count == 0)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern));
            }

            EmbedPattern[] embedPatternList = new EmbedPattern[embedPatterns.Count];
            int            i = 0;

            foreach (XmlNode patternNode in embedPatterns)
            {
                string attribute = patternNode.Attributes["name"].Value;
                string pattern   = NodeText(patternNode);
                embedPatternList[i++] = new EmbedPattern(attribute, pattern);
            }

            string urlFormat = NodeText(providerNode.SelectSingleNode("urlFormat"));

            if (urlFormat.Length == 0)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Format));
            }

            XmlNode urlPatternNode = providerNode.SelectSingleNode("urlPattern");
            string  urlPattern     = NodeText(urlPatternNode);

            if (urlPattern.Length == 0)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Pattern));
            }

            bool urlConvertingError = false;

            if (urlPatternNode.Attributes["error"] != null)
            {
                urlConvertingError = StringHelper.ToBool(urlPatternNode.Attributes["error"].Value, false);
            }

            int     width;
            int     height;
            XmlNode sizeNode = providerNode.SelectSingleNode("size");

            if (sizeNode == null)
            {
                throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Size));
            }

            width  = int.Parse(NodeText(sizeNode.SelectSingleNode("width")), CultureInfo.InvariantCulture);
            height = int.Parse(NodeText(sizeNode.SelectSingleNode("height")), CultureInfo.InvariantCulture);

            XmlNode backgroundNode  = providerNode.SelectSingleNode("backgroundColor");
            string  backgroundColor = NodeText(backgroundNode);

            XmlNode urlAtomPatternNode = providerNode.SelectSingleNode("urlAtomPattern");
            string  urlAtomPattern     = String.Empty;

            if (urlAtomPatternNode != null)
            {
                urlAtomPattern = NodeText(urlAtomPatternNode);
            }


            XmlNode urlAtomFormatNode = providerNode.SelectSingleNode("urlAtomFormat");
            string  urlAtomFormat     = String.Empty;

            if (urlAtomFormatNode != null)
            {
                urlAtomFormat = NodeText(urlAtomFormatNode);
            }


            XmlNode appIdNode = providerNode.SelectSingleNode("appServiceId");
            string  appId     = NodeText(appIdNode);

            XmlNode urlNode = providerNode.SelectSingleNode("publishPingUrl");

            string[] urls = null;
            if (urlNode != null)
            {
                int start = Convert.ToInt32(urlNode.Attributes["start"].Value, CultureInfo.InvariantCulture);
                int end   = Convert.ToInt32(urlNode.Attributes["end"].Value, CultureInfo.InvariantCulture);
                urls = new string[end - start + 1];
                for (int j = 0; j < urls.Length; j++)
                {
                    urls[j] = NodeText(urlNode).Replace("{i}", (j + start).ToString(CultureInfo.InvariantCulture));
                }
            }
            return(new VideoProvider(serviceName, id, embedFormat, editorFormat, urlFormat, embedPatternList, urlPattern, urlConvertingError, width, height, backgroundColor, appId, urls, urlAtomPattern, urlAtomFormat));
        }