protected override void _Execute(atom.Trace context, int level, string url, string file) { { context. SetFontState(NAME.FONT_STATE.BLINK). SetProgress(NAME.PROGRESS.INFINITE). SendPreview(NAME.TYPE.INFO, url); } { context.Send(NAME.SOURCE.PREVIEW, NAME.TYPE.HEADER, level, "[[[Info]]]"); { context.Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PARAMETER, level + 1, "[[[File Name]]]", url); context.Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PARAMETER, level + 1, "[[[File Size]]]", (new FileInfo(file)).Length.ToString()); context.Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PARAMETER, level + 1, "[[[Raw Format]]]", "CSS"); } } { context. SetControl(NAME.CONTROL.BROWSER). SetUrl(url). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PREVIEW, level). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PREVIEW, level); } { var a_Context = new Thread(__BrowserThread); { a_Context.SetApartmentState(ApartmentState.STA); a_Context.Start(new Tuple <string, string, int>(url, file, level)); } } }
private static void __Execute(atom.Trace context, int level, string url, string file, string name, IEnumerable <HtmlNode> nodes) { if ((nodes != null) && (nodes.Count() > 0)) { context. SetFontState(NAME.FONT_STATE.BOLD). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.FOLDER, level, name); foreach (var a_Context in nodes) { var a_Name = ""; { var a_Context1 = a_Context.Attributes.FirstOrDefault(n => n.Name == "src"); if (a_Context1 != null) { a_Name = a_Context1.Value; } } if (string.IsNullOrEmpty(a_Name)) { var a_Context1 = a_Context.Descendants().FirstOrDefault(n => n.Attributes.Contains("src")); if (a_Context1 != null) { a_Name = a_Context1.Attributes?.FirstOrDefault(n => n.Name == "src")?.Value; } } if (string.IsNullOrEmpty(a_Name)) { var a_Context1 = a_Context.Attributes.FirstOrDefault(n => n.Name == "href"); if (a_Context1 != null) { a_Name = a_Context1.Value; } } if (string.IsNullOrEmpty(a_Name) == false) { context. SetUrlInfo(__GetUrl(url, a_Name)); } { context. SetUrl(file, a_Context.Line, a_Context.LinePosition). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.OBJECT, level + 1, __GetText(a_Context.OuterHtml)); } if (string.IsNullOrEmpty(__GetControl(a_Context.Name)) == false) { context. SetControl(__GetControl(a_Context.Name)). SetUrlPreview(__GetUrl(url, a_Name)). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PREVIEW, level + 2). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PREVIEW, level + 2). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PREVIEW, level + 2). Send(NAME.SOURCE.PREVIEW, NAME.TYPE.PREVIEW, level + 2); } if (GetState() == NAME.STATE.CANCEL) { break; } } } }
private static void __Execute(atom.Trace context, int level, string url, string file) { context. Send(NAME.SOURCE.PREVIEW, NAME.TYPE.FOOTER, level, "[[[Document]]]"); if (string.IsNullOrEmpty(url) == false) { var a_Context = new HtmlWeb().Load(url); { var a_Context1 = a_Context.DocumentNode.Descendants(); { __Execute(context, level + 1, url, file, "[[[Anchors]]]", a_Context1.Where(n => n.Name.ToLower() == "a")); __Execute(context, level + 1, url, file, "[[[Audios]]]", a_Context1.Where(n => n.Name.ToLower() == "audio")); __Execute(context, level + 1, url, file, "[[[Canvases]]]", a_Context1.Where(n => n.Name.ToLower() == "canvas")); __Execute(context, level + 1, url, file, "[[[Forms]]]", a_Context1.Where(n => n.Name.ToLower() == "form")); __Execute(context, level + 1, url, file, "[[[Images]]]", a_Context1.Where(n => n.Name.ToLower() == "img").Concat(a_Context1.Where(n => n.Name.ToLower() == "svg"))); __Execute(context, level + 1, url, file, "[[[Links]]]", a_Context1.Where(n => n.Name.ToLower() == "link")); __Execute(context, level + 1, url, file, "[[[Metadata]]]", a_Context1.Where(n => n.Name.ToLower() == "meta")); __Execute(context, level + 1, url, file, "[[[Frames]]]", a_Context1.Where(n => n.Name.ToLower() == "iframe")); __Execute(context, level + 1, url, file, "[[[Scripts]]]", a_Context1.Where(n => n.Name.ToLower() == "script")); __Execute(context, level + 1, url, file, "[[[Styles]]]", a_Context1.Where(n => n.Name.ToLower() == "style")); __Execute(context, level + 1, url, file, "[[[Videos]]]", a_Context1.Where(n => n.Name.ToLower() == "video")); } } if (a_Context.ParseErrors != null && a_Context.ParseErrors?.Count() > 0) { var a_IsFound = false; { context. Send(NAME.SOURCE.PREVIEW, NAME.TYPE.FOLDER, level + 1, "[[[Errors]]]"); foreach (var a_Context1 in a_Context.ParseErrors) { if (GetState() == NAME.STATE.CANCEL) { break; } if (a_IsFound == false) { context. SetComment("{" + a_Context1.Code.ToString() + "}", "[[[Error Code]]]"). SetUrl(file, a_Context1.Line, a_Context1.LinePosition). SetUrlPreview(url); a_IsFound = true; } { context. Send(NAME.SOURCE.PREVIEW, NAME.TYPE.ERROR, level + 2, a_Context1.Reason?.Trim()); } } } } } { context. SetFontState(NAME.FONT_STATE.NONE). SetProgress(100). SendPreview(NAME.TYPE.INFO, url); } }