void IMetaHandler.HandleContent(IHtmlMetaElement element) { var encoding = this.GetEncoding(element); if (encoding != null) { var document = element.Owner; document.Source.CurrentEncoding = encoding; } }
/// <summary> /// Gets the associated encoding, if any. /// </summary> /// <param name="element">The element to get the encoding from.</param> /// <returns>The discovered encoding or null.</returns> protected virtual Encoding GetEncoding(IHtmlMetaElement element) { var charset = element.Charset; if (charset != null) { charset = charset.Trim(); if (TextEncoding.IsSupported(charset)) { return(TextEncoding.Resolve(charset)); } } var shouldParseContent = element.HttpEquivalent.Isi(HeaderNames.ContentType); return(shouldParseContent ? TextEncoding.Parse(element.Content ?? String.Empty) : null); }
public void ParseShopCategory() { Func <IHtmlDocument, string> doHtmlParser = ((document) => { var blueListItemsLinq = document.QuerySelector("head").QuerySelectorAll("meta").Where( m => { IHtmlMetaElement temp = m as IHtmlMetaElement; if (temp != null) { return(temp.Name == "microscope-data"); } return(false); }); return(null); }); ParseCommon("shop_category", doHtmlParser, shopDBBase); }
void IMetaHandler.HandleContent(IHtmlMetaElement element) { var metaValue = element.HttpEquivalent; if (metaValue.Isi("refresh")) { var document = element.Owner; var content = element.Content; var baseUrl = new Url(document.DocumentUri); var redirectUrl = baseUrl; var delay = content; var sepIndex = content.IndexOf(';'); if (sepIndex >= 0) { delay = content.Substring(0, sepIndex); var rest = content.Substring(sepIndex + 1).Trim(); if (rest.StartsWith("url=", StringComparison.OrdinalIgnoreCase)) { var relativeUrl = rest.Substring(4); if (relativeUrl.Length > 0) { redirectUrl = new Url(baseUrl, relativeUrl); } } } if (Int32.TryParse(delay, out var delaySeconds)) { var delayTime = TimeSpan.FromSeconds(delaySeconds); Task.Delay(delayTime) .ContinueWith(task => document.Location.Assign(redirectUrl.Href)); } } }
public void HandleContent(IHtmlMetaElement element) { element.Owner.Source.CurrentEncoding = Encoding.UTF8; }