public void libraryLinky() { try { string href = document.location.href; Regex reg = new Regex(@"/(dp|ASIN|product)/([\dX]{10})"); Match m = reg.Match(href); string title; if (m.Success && m.Groups.Count == 3) { string isbn = m.Groups[2].Value; HTMLDivElement div = (HTMLDivElement)document.getElementById("btAsinTitle").parentElement.parentElement; title = truncate(Regex.Replace(document.getElementById("btAsinTitle").innerHTML, "</?[^>]+>", "")); addLoadingIcon((IHTMLDOMNode)div); string url = "http://api.calil.jp/check?appkey=" + appkey + "&isbn=" + isbn + "&systemid=" + selectedSystemId + "&format=xml"; checkLibrary(url, (IHTMLDOMNode)div, isbn, title); } else if ((href.IndexOf("wishlist") != -1) || (href.IndexOf("/s?") != -1) || (href.IndexOf("/s/") != -1) || (href.IndexOf("/exec/") != -1) || (href.IndexOf("/gp/search") != -1) || (href.IndexOf("/gp/bestsellers/") != -1)) { IHTMLElementCollection objects = null; if (href.IndexOf("wishlist") != -1) { objects = (IHTMLElementCollection)document.getElementsByTagName("span"); } else { objects = (IHTMLElementCollection)document.getElementsByTagName("div"); } if (objects != null) { IEnumerator objEnum = objects.GetEnumerator(); while (objEnum.MoveNext()) { IHTMLElement obj = (IHTMLElement)objEnum.Current; if (obj.className == null) { continue; } if (obj.className == "productTitle" || (obj.className == "title" && obj.parentElement.className == "data") || obj.className == "fixed-line") { IHTMLDOMChildrenCollection childs = null; if (((IHTMLElement)obj).tagName.ToLower() == "span") { childs = (IHTMLDOMChildrenCollection)((HTMLSpanElement)obj).childNodes; } else { childs = (IHTMLDOMChildrenCollection)((HTMLDivElement)obj).childNodes; } IEnumerator childEnum = childs.GetEnumerator(); while (childEnum.MoveNext()) { if (((IHTMLElement)childEnum.Current).tagName.ToLower() == "a") { HTMLAnchorElement link = (HTMLAnchorElement)childEnum.Current; if (link != null) { reg = new Regex("<span title='(.+)'>"); m = reg.Match(link.innerHTML); if (m.Success && m.Groups.Count == 2) { title = truncate(stripTags(m.Groups[1].Value.Trim())); } else { title = truncate(stripTags(Regex.Replace(link.innerHTML, @"<\w[^>]*?>", ""))); } reg = new Regex(@"/dp/([\dX]{10})/ref"); m = reg.Match(link.href); if (m.Success && m.Groups.Count == 2) { string isbn = m.Groups[1].Value; addLoadingIcon((IHTMLDOMNode)obj); string url = "http://api.calil.jp/check?appkey=" + appkey + "&isbn=" + isbn + "&systemid=" + selectedSystemId + "&format=xml"; checkLibrary(url, (IHTMLDOMNode)obj, isbn, title); } } break; } } } } } } } catch (Exception ex) { AddErrorLog(ex); MessageBox.Show(ex.Message); } }