Пример #1
0
        public Page Download(Request request, ITask task)
        {
            // ReSharper disable once UnusedVariable
            string path = BasePath + "/" + task.Identify + "/";
            Page   page;

            try
            {
                FileInfo file = GetFile(path + Encrypt.Md5Encrypt(request.Url));

                StreamReader bufferedReader = new StreamReader(file.OpenRead());
                string       line           = bufferedReader.ReadLine();
                if (("url:\t" + request.Url).Equals(line))
                {
                    string html = GetHtml(bufferedReader);
                    page = new Page(request);
                    page.SetUrl(PlainText.Create(request.Url));
                    page.SetHtml(Html.Create(html));
                }
            }
            catch (IOException e)
            {
                if (e.GetType().IsInstanceOfType(typeof(FileNotFoundException)))
                {
                    _logger.Info("File not exist for url " + request.Url);
                }
                else
                {
                    _logger.Warn("File read error for url " + request.Url, e);
                }
            }
            page = DownloadWhenMiss(request, task);
            return(page);
        }
Пример #2
0
 public static Button Create(string text, Uri url)
 {
     return(new Button
     {
         Text = PlainText.Create(text),
         Url = url
     });
 }
        public void testMultiModel_should_not_skip_when_match()
        {
            Page page = new Page(new Request("http://codecraft.us/foo", null));

            page.SetRawText("<div foo='foo'></div>");
            page.SetUrl(PlainText.Create("http://codecraft.us/foo"));
            ModelPageProcessor modelPageProcessor = ModelPageProcessor.Create(null, typeof(ModelFoo), typeof(ModelBar));

            modelPageProcessor.Process(page);
            Assert.IsFalse(page.GetResultItems().IsSkip);
        }
Пример #4
0
        private void ParseComponent(string tag, string attributes, string value)
        {
            value = this.FormatHTML(value);

            if (tag != null)
            {
                tag = tag.ToLower();
            }

            Component element = null;

            switch (tag)
            {
            case "u":
                element = new Underline();
                break;

            case "i":
                element = new Italic();
                break;

            case "b":
                element = new Bold();
                break;

            case "strike":
                element = new Strike();
                break;

            case "h1":
                element = new Title();
                break;

            case "url":
                element = new URL();
                break;

            case "spoiler":
                element = new Spoiler();
                break;

            case "noparse":
                element = new NoParse();
                break;

            case "code":
                element = new Code();
                break;

            case "quote":
                element = new Quote();
                break;

            case "olist":
                element = new List();
                break;

            case "list":
                element = new List();
                break;

            case "img":
                element = new Image();
                break;

            default:
                element = new PlainText();
                break;
            }

            if (element != null)
            {
                element.Create(value, attributes);

                /*if (global.options.newLine) {
                 *  result = result.toString().replace(/\r ?\n / g, '<br />')
                 *
                 * }*/
                this.components.Add(element);
            }
        }