Exemplo n.º 1
0
        public void GoToURL(string url)
        {
            Uri result = MiMFa_Internet.CreateUri(url);

            if (MiMFa_Internet.IsWellURL(url) || url.StartsWith("http://") || url.StartsWith("https://"))
            {
                Browser.Url = result;
            }
            else
            {
                Browser.Url = result = new Uri("https://www.google.com/search?q=" + url);
            }
            tb_AddressBar.Text = result.ToString();
        }
Exemplo n.º 2
0
        public MiMFa_Table AddInTable(MiMFa_Table dt, HTMLElementPatern elementPatern, MiMFa_XMLElement elem, List <MiMFa_XMLElement> xmls)
        {
            if (elem == null)
            {
                return(MiMFa_Table.AddInTable(dt, "", elementPatern.ColName, elementPatern.TableValuePositionType));
            }
            string str = GetValueFromXML(elementPatern, elem);

            if (elementPatern.Usage != MiMFa_Usage.Set)
            {
                dt = MiMFa_Table.AddInTable(dt, str, elementPatern.ColName, elementPatern.TableValuePositionType);
            }
            else
            {
                switch (elementPatern.LinkJob)
                {
                case MiMFa_LinkJob.InternalPage:
                    AppendInFetchQueue(new FetchPatern(fetch_url, str), true);
                    break;

                case MiMFa_LinkJob.ExternalPage:
                    AppendInFetchQueue(fetch_webpatern.FindFetchPaternFor(str, fetch_url.Source), true);
                    break;

                //case MiMFa_LinkJob.Download:
                default:
                    string file = string.Join("", elementPatern.DestinationPath, "\\", MiMFa_UnicCode.CreateNewString(10), "_");
                    if (MiMFa_Internet.IsWellURL(str))
                    {
                        file += MiMFa_StringService.CompressedText(MiMFa_Path.NormalizeForFileAndFolderName(str.Split('/').Last()), 25, "");
                    }
                    bool b = MiMFa_Internet.DownloadOrSave(str, file);
                    dt = MiMFa_Table.AddInTable(dt, file, elementPatern.ColName, elementPatern.TableValuePositionType);
                    dt = MiMFa_Table.AddInTable(dt, str, string.Join("", "auto_", elementPatern.ColName, "_URL"), MiMFa_TableValuePositionType.NextColumnCell);
                    dt = MiMFa_Table.AddInTable(dt, b + "", string.Join("", "auto_", elementPatern.ColName, "_State"), MiMFa_TableValuePositionType.NextColumnCell);
                    break;
                }
            }
            return(dt);
        }
Exemplo n.º 3
0
        public void FetchCurrent()
        {
            string html = fetch_browser.DocumentText + "";

            if (fetch_url.FetchSuccessFul = (
                    !fetch_browser.IsBusy ||
                    (fetch_try_interval >= fetch_url.MaximumTry - 1 && html.Length > 1000)
                    ) && html.Length > 1)
            {
                GettingTable(this, fetch_url);
                MiMFa_Table dt = GetTable(fetch_url);
                if (dt != null && dt.MainTable.Rows.Count > 1)
                {
                    CurrentPaternSuccess(dt);
                }
                else
                {
                    CurrentPaternError(new Exception("Can not fetch table of document!"), html);
                }
            }
            else
            {
                if (fetch_try_interval++ > fetch_url.MaximumTry)
                {
                    CurrentPaternError(new Exception("This Document is not trust!"), html);
                }
                else if (!MiMFa_Internet.IsWellURL(fetch_url.ToString().Replace(" ", "+")))
                {
                    GettingTableError(this, fetch_url, html, new Exception("This URL is not trust!"));
                }
                else
                {
                    GettingTableError(this, fetch_url, html, new Exception("Trying to navigate this URL..."));
                }
            }
        }
Exemplo n.º 4
0
        public string GetValueFromXML(HTMLElementPatern elementPatern, MiMFa_XMLElement elem)
        {
            switch (elementPatern.Usage)
            {
            case MiMFa_Usage.Null:
            case MiMFa_Usage.Get:
                switch (elementPatern.ElementItems)
                {
                case MiMFa_XMLElementItems.Null:
                case MiMFa_XMLElementItems.ThisContent:
                    return(elem.OuterText);

                case MiMFa_XMLElementItems.ThisTag:
                    return(elem.Outer);

                case MiMFa_XMLElementItems.ThisAttribute:
                    return(elem.GetAttribute(elementPatern.AttributeName));

                case MiMFa_XMLElementItems.ChildContent:
                    return((elem.GetFirstChildElementByTagName(elementPatern.ChildName) ?? new MiMFa_XMLElement(-1, "", "", "")).OuterText);

                case MiMFa_XMLElementItems.ChildTag:
                    return((elem.GetFirstChildElementByTagName(elementPatern.ChildName) ?? new MiMFa_XMLElement(-1, "", "", "")).Outer);

                case MiMFa_XMLElementItems.ChildAttribute:
                    return((elem.GetFirstChildElementByTagName(elementPatern.ChildName) ?? new MiMFa_XMLElement(-1, "", "", "")).GetAttribute(elementPatern.AttributeName));

                case MiMFa_XMLElementItems.ChildrenContent:
                    return((new MiMFa_XMLElement(-1, "", "", "")
                    {
                        Children = elem.GetChildrenElementsByTagName(elementPatern.ChildName)
                    }).OuterText);

                case MiMFa_XMLElementItems.ChildrenTag:
                    return((new MiMFa_XMLElement(-1, "", "", "")
                    {
                        Children = elem.GetChildrenElementsByTagName(elementPatern.ChildName)
                    }).Outer);

                case MiMFa_XMLElementItems.ChildrenAttribute:
                    return(MiMFa_CollectionService.GetAllItems((new MiMFa_XMLElement(-1, "", "", "")
                    {
                        Children = elem.GetChildrenElementsByTagName(elementPatern.ChildName)
                    }).GetChildAttributes(elementPatern.AttributeName), "¶"));
                }
                break;

            case MiMFa_Usage.Set:
                string str = elem.GetAttribute("href");
                if (string.IsNullOrWhiteSpace(str))
                {
                    str = elem.GetAttribute("src");
                }
                if (string.IsNullOrWhiteSpace(str))
                {
                    str = elem.GetAttribute("url");
                }
                if (string.IsNullOrWhiteSpace(str))
                {
                    str = elem.InnerText;
                }
                if (!string.IsNullOrWhiteSpace(str))
                {
                    if (Uri.IsWellFormedUriString(str, UriKind.Relative))
                    {
                        str = MiMFa_Internet.GetBaseWebURL(fetch_url) + (str.StartsWith("/") ? "" : "/") + str;
                    }
                }
                else
                {
                    str = elem.OuterText;
                }
                return(str);
            }
            return(" ");
        }