static async Task Main(string[] args) { string str1 = "<font color=\\\"#00a1d6\\\">>>Po.6214</font><br />另外已知的是套壳客户端发不了图片,因为就是个套壳网页所以没办法唤醒相册[^o^]ノ"; var config = Configuration.Default; var context = new BrowsingContext(config); var document = await context.OpenAsync(req => req.Content(str1)); var visitor = new RichTextBlockVisitor(); Dfs(document.DocumentElement, 1); var documentNode = new HTMLNode((IHtmlHtmlElement)document.DocumentElement); var renderer = documentNode.Accept(visitor); renderer.Print(); Console.Read(); while (true) { var str = Console.ReadLine(); var ans = GetIPAddr(str); ans.ForEach(Console.WriteLine); } GetIPAddr("88881"); /* * var config = new ApiConfig(); * ForumController f = new ForumController(config); * var res = await f.GetForumsAsync(); * var p = new PostController(config); * var posts = await p.GetPostAsync(res[0].Id, 1); * var t = new ThreadController(config); * var threads = await t.GetThreadsAsync(posts[0].No, 1); * Console.ReadLine(); */ }
private string f() { HTMLNode bodyNode = this.a.BodyNode; int A_2 = -1; return(this.de() + this.dc() + this.da() + this.db() + "\\viewkind4\\uc1\\pard" + this.da(this.a.RootNode, new FontStyle(HTMLTree.defaultFontName, HTMLTree.defaultFontSize, HTMLTree.defaultColor, Colors.Transparent), ref A_2) + this.dd()); }
void IAstVisitor <ParsingContext> .Visit(HTMLNode node, ParsingContext context) { context.Stack.Push(new Paragraph()); node.Body.Accept(this, context); var c = context.Stack.Pop(); context.Blocks.Add(c); }
public Render Visit(HTMLNode node) { recursionLevel += 1; var render = new Render(recursionLevel, "html"); var body = node.Body.Accept(this); render.Children.Add(body); recursionLevel -= 1; return(render); }
public bool replaceChild(int index, HTMLNode node) { return false; }
public bool addChild(int index, HTMLNode node) { return false; }
public bool replaceChild(int index, HTMLNode node) { throw new NotImplementedException(); }
void IAstVisitor <ResolveContext> .Visit(HTMLNode node, ResolveContext context) { context.Parent = node; node.Body.Accept(this, context); }
public async static Task <string> LoadFromHtml(HTMLNode imgNode, string baseUrl) { Param param = imgNode.Param.ByName("src"); string str = ""; if (param == null) { return(str); } string url = param.Value.Trim().ToLower(); if ((url == "#") || url.Equals(string.Empty)) { return(""); } if ((url.StartsWith("http://") || url.StartsWith("ftp://")) || url.StartsWith("file://")) { url = param.Value.Trim(); } else { url = baseUrl + param.Value.Trim(); } ImageStyle style = new ImageStyle(url); using (Stream stream = await NetHelper.Get(url)) { int width = 0; int height = 0; RandomStream rs = new RandomStream(stream); BitmapImage image = new BitmapImage(); { image.SetSource(rs); width = image.PixelWidth; height = image.PixelHeight; Param param2 = imgNode.Param.ByName("width"); if (param2 != null) { style.Width = HTMLTree.FontSizeFromHTML(param2.Value.Trim()); } Param param3 = imgNode.Param.ByName("height"); if (param3 != null) { style.Height = HTMLTree.FontSizeFromHTML(param3.Value.Trim()); } if ((style.Width != -1) && (style.Height != -1)) { width = style.Width; height = style.Height; } else if (style.Width != -1) { height = (width * style.Height) / style.Width; width = style.Width; } else if (style.Height != -1) { width = (height * style.Width) / style.Height; height = style.Height; } } StringBuilder builder = new StringBuilder(); builder.AppendFormat("{{\\pict\\wmetafile8\\picwgoal{0}\\pichgoal{1}\n", width * 20, height * 20); byte[] buffer = new byte[40]; stream.Position = 0L; int num3 = 0; while ((num3 = stream.Read(buffer, 0, 40)) > 0) { for (int i = 0; i < num3; i++) { builder.Append(buffer[i].ToString("x").PadLeft(2, '0')); } builder.Append("\n"); } builder.Append("}"); return(builder.ToString()); } }
private string da(HTMLNode A_0, FontStyle A_1, ref int A_2) { if (A_0.TagName.Equals("head")) { return(""); } string str = ""; FontStyle fontStyle = A_1; int A_2_1 = -1; int index1 = A_0.Css.Css.IndexOf("font-size", CssType.ForAll, ""); if (index1 == -1) { int index2 = A_0.Css.Css.IndexOf("size", CssType.ForAll, ""); if (index2 != -1) { string fontsize = A_0.Css.Css[index2].Value.Trim(); fontStyle.FontSize = (uint)HTMLTree.FontSizeFromHTML(fontsize); fontStyle.FontSize = (uint)((((int)fontStyle.FontSize - 1) * 2 + 10) * 2); } } else { string fontsize = A_0.Css.Css[index1].Value.Trim(); fontStyle.FontSize = (uint)(HTMLTree.FontSizeFromHTML(fontsize) * 2); } int index3 = A_0.Css.Css.IndexOf("font-family", CssType.ForAll, ""); if (index3 != -1) { fontStyle.FontName = A_0.Css.Css[index3].Value.Trim(); } int index4 = A_0.Css.Css.IndexOf("color", CssType.ForAll, ""); if (index4 != -1) { string color = A_0.Css.Css[index4].Value.Trim(); fontStyle.FontColor = HTMLTree.ColorFromHTML(color); } int index5 = A_0.Css.Css.IndexOf("align", CssType.ForAll, ""); if (index5 != -1) { string align = A_0.Css.Css[index5].Value.Trim(); fontStyle.Align = HTMLTree.AlignFromHtml(align); } switch (A_0.TagName) { case "i": case "em": fontStyle.IsItalic = true; break; case "b": case "strong": fontStyle.IsBold = true; break; case "u": fontStyle.IsUnderLine = true; break; case "center": fontStyle.Align = Alignment.Center; break; case "ul": A_2_1 = 0; break; case "ol": A_2_1 = 1; break; case "sup": fontStyle.Raise = RaiseType.Sup; str = str + "{"; break; case "sub": fontStyle.Raise = RaiseType.Sub; str = str + "{"; break; } switch (A_0.TagName) { case "br": str = str + "\\par"; break; case "li": if (A_2 == 0) { str = str + "\\par\n" + this.da(fontStyle) + "{\\pntext\\'B7\\tab}" + this.da(A_0.Text); break; } else if (A_2 > 0) { str = str + "\\par\n " + this.da(fontStyle) + "{\\pntext " + A_2.ToString() + "\\tab}" + this.da(A_0.Text); ++A_2; break; } else { break; } case "font": if (!A_0.Text.Trim().Equals(string.Empty)) { str = str + this.da(fontStyle) + " " + this.da(A_0.Text); break; } else { break; } case "p": case "div": str = str + "\\par\n\\pard" + this.da(fontStyle) + " " + this.da(A_0.Text); break; case "img": str = str + RTFImageHelper.LoadFromHtml(A_0, ""); break; default: if (A_0.Text != string.Empty) { str = str + this.da(fontStyle) + " " + this.da(A_0.Text); break; } else { break; } } for (int index2 = 0; index2 < A_0.Nodes.Count; ++index2) { str = str + this.da(A_0.Nodes[index2], fontStyle, ref A_2_1); } switch (A_0.TagName) { case "sup": case "sub": str = str + "}"; break; } return(str); }