示例#1
0
        public async Task <ArticleJson> GetArticle(string urlString)
        {
            var client  = new HttpClient();
            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(String.Format("https://news-parser1.p.rapidapi.com/article?url={0}", urlString)),
                Headers    =
                {
                    { "x-rapidapi-key",  "70952da06amsh21fd2b056a6fd6dp1439c7jsn56b7c3d247b0" },
                    { "x-rapidapi-host", "news-parser1.p.rapidapi.com"                        },
                },
            };
            ArticleJson articleJson = new ArticleJson();

            using (var response = await client.SendAsync(request))
            {
                response.EnsureSuccessStatusCode();
                var body = await response.Content.ReadAsStringAsync();

                //Console.WriteLine(body);

                articleJson = JsonSerializer.Deserialize <ArticleJson>(body);
            }
            return(articleJson);
        }
示例#2
0
        public async Task <IActionResult> Upload(Article article)
        {
            if (_userManager.GetUserId(User) == null)
            {
                return(RedirectToAction("Login", "Account"));
            }

            ArticleJson retrievedArticle = await GetArticle(article.SourceUrl);

            article.RequestId = Int32.Parse(_userManager.GetUserId(User));
            article.Title     = retrievedArticle.title_1;
            if (article.Title != retrievedArticle.title_2)
            {
                article.Subtitle = retrievedArticle.title_2;
            }
            article.AuthorName      = retrievedArticle.author;
            article.PublicationName = retrievedArticle.website_url;
            if (retrievedArticle.date_published != null && retrievedArticle.date_published != "")
            {
                DateTime dateValue;
                if (DateTime.TryParse(retrievedArticle.date_published, out dateValue))
                {
                    article.PublishDate = dateValue;
                }
            }
            article.Content    = retrievedArticle.content_1;
            article.AddContent = retrievedArticle.content_2;
            article.Image      = retrievedArticle.lead_image_url;

            if (ModelState.IsValid)
            {
                int newArticle = repository.SaveArticle(article);
                return(RedirectToAction("Completed", "Article", new { ArticleId = newArticle }));
            }
            else
            {
                return(View());
            }
        }
示例#3
0
 private Article(ArticleJson articleJson)
 {
     Urn   = articleJson.Urn;
     Id    = articleJson.Id;
     Title = articleJson.Title;
 }
示例#4
0
        protected List <ArticleJson> ArticleListInfo(List <Article> list, string usernumber = "")
        {
            //文章编号集合
            var array        = list.Select(x => x.Number).ToArray();
            var articletypes = AppHelper.GetArticleType();
            var parts        = new SubSonic.Query.Select(provider).From <ArticlePart>().Where <ArticlePart>(x => x.Types == Enum_ArticlePart.Pic).And("ArticleNumber").In(array).OrderAsc("SortID").ExecuteTypedList <ArticlePart>();

            List <string> userids = new List <string>();

            list.ForEach(x =>
            {
                userids.Add(x.CreateUserNumber);
            });

            var users = new SubSonic.Query.Select(provider, "ID", "NickName", "Avatar", "Cover", "Signature", "Number", "IsPay").From <User>().Where("Number").In(userids.ToArray()).ExecuteTypedList <User>();

            //判断是否关注、判断是否点赞、判断是否收藏
            var fans  = new List <Fan>();
            var zans  = new List <ArticleZan>();
            var keeps = new List <Keep>();

            if (!string.IsNullOrWhiteSpace(usernumber))
            {
                fans  = db.Find <Fan>(x => x.CreateUserNumber == usernumber).ToList();
                zans  = db.Find <ArticleZan>(x => x.CreateUserNumber == usernumber).ToList();
                keeps = db.Find <Keep>(x => x.CreateUserNumber == usernumber).ToList();
            }

            var tags = GetTag();

            List <ArticleJson> newlist = new List <ArticleJson>();

            list.ForEach(x =>
            {
                var user = users.FirstOrDefault(y => y.Number == x.CreateUserNumber);
                if (user != null)
                {
                    ArticleJson model   = new ArticleJson();
                    var articletype     = articletypes.FirstOrDefault(y => y.ID == x.TypeID);
                    model.UserID        = user.ID;
                    model.NickName      = user.NickName;
                    model.Avatar        = user.Avatar;
                    model.Signature     = user.Signature;
                    model.UserCover     = user.Cover;
                    model.IsPay         = user.IsPay;
                    model.ArticleID     = x.ID;
                    model.ArticleNumber = x.Number;
                    model.Title         = x.Title;
                    model.Views         = x.Views;
                    model.Goods         = x.Goods;

                    //标签
                    model.TagList = new List <Tag>();
                    if (!string.IsNullOrWhiteSpace(x.Tag))
                    {
                        var tag = x.Tag.Split(',').ToList();
                        tag.ForEach(y =>
                        {
                            var id   = Tools.SafeInt(y);
                            var item = tags.FirstOrDefault(z => z.ID == id);
                            if (item != null)
                            {
                                model.TagList.Add(item);
                            }
                        });
                    }
                    model.IsFollow     = fans.Count(y => y.ToUserNumber == x.CreateUserNumber);
                    model.IsZan        = zans.Count(y => y.ArticleNumber == x.Number);
                    model.IsKeep       = keeps.Count(y => y.ArticleNumber == x.Number);
                    model.UserNumber   = x.CreateUserNumber;
                    model.Cover        = x.Cover;
                    model.CreateDate   = x.CreateDate.ToString("yyyy-MM-dd hh:mm");
                    model.TypeName     = articletype == null ? "" : articletype.Name;
                    model.ArticlePart  = parts.Where(y => y.ArticleNumber == x.Number).OrderBy(y => y.ID).Take(4).ToList();
                    model.ArticlePower = x.ArticlePower;
                    model.Recommend    = x.Recommend;
                    model.Province     = x.Province;
                    model.City         = x.City;
                    model.Submission   = x.Submission;
                    newlist.Add(model);
                }
            });

            return(newlist);
        }