static private PrepareAliases ( string>.Dictionary |
||
namespaces | string>.Dictionary | |
Результат | List |
/// <summary> /// /// </summary> /// <returns></returns> public bool LoadNamespaces() { string output = Tools.GetHTML(ApiPath + "?action=query&meta=siteinfo&siprop=general|namespaces|namespacealiases|statistics&format=xml"); XmlDocument xd = new XmlDocument(); xd.LoadXml(output); if (xd["api"] == null || xd["api"]["query"] == null || xd["api"]["query"]["namespaces"] == null || xd["api"]["query"]["namespacealiases"] == null) { return(false); } foreach (XmlNode xn in xd["api"]["query"]["namespaces"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaces[id] = xn.InnerText + ":"; } } namespaceAliases = Variables.PrepareAliases(namespaces); foreach (XmlNode xn in xd["api"]["query"]["namespacealiases"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaceAliases[id].Add(xn.InnerText); } } return(true); }
/// <summary> /// Loads SiteInfo from local cache or API call, processes data returned /// </summary> /// <returns></returns> public bool LoadSiteInfo() { if (!LoadFromCache()) { LoadFromNetwork(); } XmlDocument xd = new XmlDocument(); xd.LoadXml(siteinfoOutput); var api = xd["api"]; if (api == null) { return(false); } var query = api["query"]; if (query == null) { return(false); } var general = query["general"]; if (general == null) { return(false); } ArticleUrl = Host + general.GetAttribute("articlepath"); Language = general.GetAttribute("lang"); IsRightToLeft = general.HasAttribute("rtl"); CapitalizeFirstLetter = general.GetAttribute("case") == "first-letter"; MediaWikiVersion = general.GetAttribute("generator").Replace("MediaWiki ", ""); if (query["namespaces"] == null || query["namespacealiases"] == null) { return(false); } foreach (XmlNode xn in query["namespaces"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaces[id] = xn.InnerText + ":"; } } if (!Namespace.VerifyNamespaces(namespaces)) { throw new Exception("Error loading namespaces from " + ApiPath); } namespaceAliases = Variables.PrepareAliases(namespaces); foreach (XmlNode xn in query["namespacealiases"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaceAliases[id].Add(xn.InnerText); } } if (query["magicwords"] == null) { return(false); } foreach (XmlNode xn in query["magicwords"].GetElementsByTagName("magicword")) { List <string> alias = new List <string>(); foreach (XmlNode xin in xn["aliases"].GetElementsByTagName("alias")) { alias.Add(xin.InnerText); } magicWords.Add(xn.Attributes["name"].Value, alias); } // CategoryCollation: Unicode sorting in category sort keys LoadCategoryCollation(); UcaCategoryCollation = (from Match m in UcacatCollation.Matches(catCollationInfo) select m.Groups[1].Value).ToList(); return(true); }
/// <summary> /// /// </summary> /// <returns></returns> public bool LoadSiteInfo() { string output = Editor.HttpGet(ApiPath + "?action=query&meta=siteinfo&siprop=general|namespaces|namespacealiases|statistics|magicwords&format=xml"); XmlDocument xd = new XmlDocument(); xd.LoadXml(output); var api = xd["api"]; if (api == null) { return(false); } var query = api["query"]; if (query == null) { return(false); } var general = query["general"]; if (general == null) { return(false); } ArticleUrl = Host + general.GetAttribute("articlepath"); Language = general.GetAttribute("lang"); IsRightToLeft = general.HasAttribute("rtl"); CapitalizeFirstLetter = general.GetAttribute("case") == "first-letter"; if (query["namespaces"] == null || query["namespacealiases"] == null) { return(false); } foreach (XmlNode xn in query["namespaces"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaces[id] = xn.InnerText + ":"; } } if (!Namespace.VerifyNamespaces(namespaces)) { throw new Exception("Error loading namespaces from " + ApiPath); } namespaceAliases = Variables.PrepareAliases(namespaces); foreach (XmlNode xn in query["namespacealiases"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaceAliases[id].Add(xn.InnerText); } } if (query["magicwords"] == null) { return(false); } foreach (XmlNode xn in query["magicwords"].GetElementsByTagName("magicword")) { List <string> alias = new List <string>(); foreach (XmlNode xin in xn["aliases"].GetElementsByTagName("alias")) { alias.Add(xin.InnerText); } magicWords.Add(xn.Attributes["name"].Value, alias); } return(true); }
/// <summary> /// /// </summary> /// <returns></returns> public bool LoadSiteInfo() { string output = Editor.HttpGet(ApiPath + "?action=query&meta=siteinfo&siprop=general|namespaces|namespacealiases|statistics|magicwords&format=xml"); XmlDocument xd = new XmlDocument(); xd.LoadXml(output); var general = xd["general"]; if (general == null) { return(false); } Language = general.Attributes["lang"].Value; IsRightToLeft = general.Attributes["rtl"] != null; if (xd["api"] == null || xd["api"]["query"] == null || xd["api"]["query"]["namespaces"] == null || xd["api"]["query"]["namespacealiases"] == null) { return(false); } foreach (XmlNode xn in xd["api"]["query"]["namespaces"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaces[id] = xn.InnerText + ":"; } } namespaceAliases = Variables.PrepareAliases(namespaces); foreach (XmlNode xn in xd["api"]["query"]["namespacealiases"].GetElementsByTagName("ns")) { int id = int.Parse(xn.Attributes["id"].Value); if (id != 0) { namespaceAliases[id].Add(xn.InnerText); } } if (xd["api"]["query"]["magicwords"] == null) { return(false); } foreach (XmlNode xn in xd["api"]["query"]["magicwords"].GetElementsByTagName("magicword")) { List <string> alias = new List <string>(); foreach (XmlNode xin in xn["aliases"].GetElementsByTagName("alias")) { alias.Add(xin.InnerText); } magicWords.Add(xn.Attributes["name"].Value, alias); } return(true); }