示例#1
0
        public ArticleHandler(RuleConfig ruleConfig)
        {
            this._ruleConfig     = ruleConfig;
            this._fileOperate    = new FileOperate();
            this._articleBuilder = new ArticleBuilder();
            this._sqlOperate     = new SqlOperate();

            this._currentRule = new JsonArticleRule(ruleConfig.Rules);
        }
示例#2
0
        private ArticleModel CreateModel(string url, IArticleRule rule)
        {
            ArticleModel artModel = new ArticleModel();

            artModel.OriginUrl   = url;
            artModel.Title       = this.GetInfo(rule.GetTitleRule());
            artModel.Keys        = this.GetInfo(rule.GetKeysRule());
            artModel.Author      = this.GetInfo(rule.GetAuthorRule());
            artModel.Summary     = this.GetInfo(rule.GetSummaryRule());
            artModel.ImageUrls   = this.GetInfos(rule.GetImageUrlsRule());
            artModel.Content     = this.GetInfo(rule.GetContentRule());
            artModel.PublishDate = this.GetInfo(rule.GetPublishDateRule());

            return(artModel);
        }
示例#3
0
        public ArticleModel BuildModel(string url, IArticleRule rule)
        {
            if (string.IsNullOrEmpty(url) || rule == null)
            {
                return(null);
            }

            this._contentExtract.ExecuteUrl(url);
            if (!string.IsNullOrEmpty(this._contentExtract.GetExceptionMessage()))
            {
                throw new Exception(this._contentExtract.GetExceptionMessage());
            }

            return(this.CreateModel(url, rule));
        }