From 9937f94bbf8346bca79ee7a6a3c412e7c6e48011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E8=8B=B1=E6=9D=B0?= <327782001@qq.com> Date: Mon, 23 Oct 2023 15:07:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=B8=80=E4=B8=AA=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=9A=84=E5=86=99=E5=AE=8C=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CsdnController.java | 21 +++--- .../springbootkwan/service/CsdnService.java | 34 ++++++++-- .../service/impl/CsdnServiceImpl.java | 68 ++++++++++++++++--- 3 files changed, 96 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/kwan/springbootkwan/controller/CsdnController.java b/src/main/java/com/kwan/springbootkwan/controller/CsdnController.java index 75b0114..ecc3fc1 100644 --- a/src/main/java/com/kwan/springbootkwan/controller/CsdnController.java +++ b/src/main/java/com/kwan/springbootkwan/controller/CsdnController.java @@ -1,7 +1,6 @@ package com.kwan.springbootkwan.controller; import com.kwan.springbootkwan.entity.Result; -import com.kwan.springbootkwan.entity.resp.BusinessInfo; import com.kwan.springbootkwan.service.CsdnService; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -10,8 +9,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.List; - @Slf4j @RestController @RequestMapping("/csdn") @@ -23,16 +20,14 @@ public class CsdnController { @ApiOperation(value = "获取数据", notes = "获取数据") @GetMapping("/list") public Result get() { - final BusinessInfo businessInfo = service.list(); - final BusinessInfo.ArticleData data = businessInfo.getData(); - final List list = data.getList(); - final BusinessInfo.ArticleData.Article article = list.get(0); - final String url = article.getUrl(); - final int index = url.lastIndexOf("/"); - final String articleId = url.substring(index + 1); + final String articleId = service.list(); System.out.println(articleId); - - service.getArticleInfo(articleId); - return Result.ok(businessInfo); + final Boolean articleInfo = service.getArticleInfo(articleId); + if (!articleInfo) { + //进行点赞和评论 + service.like(articleId); + service.comment(articleId); + } + return Result.ok("流程处理完成"); } } diff --git a/src/main/java/com/kwan/springbootkwan/service/CsdnService.java b/src/main/java/com/kwan/springbootkwan/service/CsdnService.java index edc2eca..c659552 100644 --- a/src/main/java/com/kwan/springbootkwan/service/CsdnService.java +++ b/src/main/java/com/kwan/springbootkwan/service/CsdnService.java @@ -1,18 +1,40 @@ package com.kwan.springbootkwan.service; - -import com.kwan.springbootkwan.entity.resp.BusinessInfo; - +/** + * csdn博客自动化 + * + * @author : qinyingjie + * @version : 2.2.0 + * @date : 2023/10/23 14:59 + */ public interface CsdnService { /** * 获取文章信息 * * @return */ - BusinessInfo list(); + String list(); - void getArticleInfo(String articleId); + /** + * 查询是否评论过 + * + * @param articleId + * @return + */ + Boolean getArticleInfo(String articleId); -} + /** + * 点赞 + * + * @param articleId + */ + void like(String articleId); + /** + * 评论 + * + * @param articleId + */ + void comment(String articleId); +} \ No newline at end of file diff --git a/src/main/java/com/kwan/springbootkwan/service/impl/CsdnServiceImpl.java b/src/main/java/com/kwan/springbootkwan/service/impl/CsdnServiceImpl.java index c728653..df54b4f 100644 --- a/src/main/java/com/kwan/springbootkwan/service/impl/CsdnServiceImpl.java +++ b/src/main/java/com/kwan/springbootkwan/service/impl/CsdnServiceImpl.java @@ -1,5 +1,6 @@ package com.kwan.springbootkwan.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.fasterxml.jackson.core.JsonProcessingException; @@ -7,17 +8,24 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.kwan.springbootkwan.entity.resp.BusinessInfo; import com.kwan.springbootkwan.entity.resp.CommentData; import com.kwan.springbootkwan.service.CsdnService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class CsdnServiceImpl implements CsdnService { - // 构建header参数 + /** + * 构建header参数 + */ private static final String CUSTOM_HEADER_NAME = "Cookie"; - + /** + * 参数值 + */ private static final String CUSTOM_HEADER_VALUE = "uuid_tt_dd=10_20285116700-1697522872601-604163; c_adb=1; loginbox_strategy=%7B%22taskId%22%3A308%2C%22abCheckTime%22%3A1697522874474%2C%22version%22%3A%22control%22%7D; UserName=qyj19920704; UserInfo=a7d3b88c53a841ebb5792202cb43c84f; UserToken=a7d3b88c53a841ebb5792202cb43c84f; UserNick=%E6%AA%80%E8%B6%8A%E5%89%91%E6%8C%87%E5%A4%A7%E5%8E%82; AU=769; UN=qyj19920704; BT=1697522886100; p_uid=U010000; Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22qyj19920704%22%2C%22scope%22%3A1%7D%7D; management_ques=1697592152734; blog_details_recommend_nps=1697616147423; c_segment=3; Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac=1697522874,1697551027,1697636661,1697683407; csrfToken=jTRD3_1IBVA703lu2FkVkazx; dc_sid=9f7a02ed8375e91d86271ddaf1cf2ce4; c_first_ref=default; c_first_page=https%3A//liucy.blog.csdn.net/article/details/133852303%3Fspm%3D1001.2014.3001.5502; c_segment=3; Hm_lvt_e5ef47b9f471504959267fd614d579cd=1697764951; Hm_lpvt_e5ef47b9f471504959267fd614d579cd=1697764951; 404_page_nps=1697764955523; ssxmod_itna=YqUxBD97kOGHD8D2BmYite44zxcYo1=WOiox0vmvqGzDAxn40iDtgeqODDwu0/DNMQiDpiDuWOntaV73S5fd3iPeaN3D84i7DKqibDCqD1D3qDktzDYA8Dt4DTD34DYDiO=DBRsUQDFATN/3wUjmGtDG4DgDB=DxBEl3djBAq4DCr4DbxPy7mrDtLNSeLLdXT0/nn5Yf445SOG5lipwm0GdG7vwBA4PlDxNt8v1wADoGGGQYf+IE75ep753zpDxD; ssxmod_itna2=YqUxBD97kOGHD8D2BmYite44zxcYo1=WOYxn9EenDDsYebDLGQCoqQuGvHdDQRKYubdD6QqomsRD3xyRI/W9Q5nhe8oeYUvimaWYrNsqwcDgL6mDjYUhZK09LYcY/t5hSuP2va/kclf6hRkNh+LPyDwic73=9i4d94Lvw/R=oQ7E+jT4jjjA2Y+=QplLm8nbePRb+7=Re1CpjmZ4wIrnNPSKofWnIj=WOtkFtphylt+GhUxr0KkGtTzDXKDEEkbn3qhIn3Sj/ezt1u2MO3M9h7zEL6RunrXaKE+YdkRnIKiTG93cqpGFq8Fwr7ehksk1ZSWhoN2hQydddqQ1bTOSW8ddX+7g24v4TZ0+52=Y8PsOwfhavW4ECY8+GZOK=ro97bK0=Yi3YD5ZGsq25FhPodIRGCD2O8xidfo8+NR88v+rq4+b=fUOEK2frPEPdLFuYkao9uCfM1+cFZQ7q6HEMfRLjf6bhof0=1YhEYO1U=NZCPvDDw2Psluciq4De13mDNBODwqLwwg44qwOiDf=j1fKK5q+8gd7DDjKDeMv/04YDmLGvrwqOz4cov79500D4D==; c_first_ref=default; c_first_page=https%3A//mp.csdn.net/; creative_btn_mp=3; c_hasSub=true; write_guide_show=3; log_Id_click=177; dc_session_id=11_1698022100317.787671; c_dsid=11_1698022100317.794351; log_Id_pv=149; log_Id_view=1105; c_pref=https%3A//i.csdn.net/; c_ref=https%3A//blog.csdn.net/imwucx; c_page_id=default; dc_session_id=11_1698022100317.787671; c_dsid=11_1698022100317.794351; log_Id_view=1106; dc_tos=s2yi9b; log_Id_click=178; c_pref=https%3A//blog.csdn.net/imwucx; log_Id_pv=150; creativeSetApiNew=%7B%22toolbarImg%22%3Anull%2C%22publishSuccessImg%22%3Anull%2C%22articleNum%22%3A895%2C%22type%22%3A0%2C%22oldUser%22%3Afalse%2C%22useSeven%22%3Afalse%2C%22userName%22%3A%22qyj19920704%22%7D; c_ref=https%3A//cxian.blog.csdn.net/article/details/131299195; c_page_id=default; Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac=1698022433; dc_tos=s2yinc"; @Override - public BusinessInfo list() { + public String list() { String url = "https://blog.csdn.net/community/home-api/v1/get-business-list"; // 构建参数 String username = "imwucx"; @@ -30,7 +38,6 @@ public class CsdnServiceImpl implements CsdnService { .form("noMore", false) .form("username", username) .execute(); - // 打印响应结果 System.out.println("Response Status Code: " + response.getStatus()); final String body = response.body(); @@ -43,11 +50,15 @@ public class CsdnServiceImpl implements CsdnService { } catch (JsonProcessingException e) { e.printStackTrace(); } - return businessInfo; + final BusinessInfo.ArticleData data = businessInfo.getData(); + final List list = data.getList(); + final BusinessInfo.ArticleData.Article article = list.get(0); + final String urlInfo = article.getUrl(); + return urlInfo.substring(urlInfo.lastIndexOf("/") + 1); } @Override - public void getArticleInfo(String articleId) { + public Boolean getArticleInfo(String articleId) { String url = "https://blog.csdn.net/phoenix/web/v1/comment/list/" + articleId; // 使用Hutool发送GET请求 HttpResponse response = HttpUtil.createPost(url) @@ -68,6 +79,47 @@ public class CsdnServiceImpl implements CsdnService { } catch (JsonProcessingException e) { e.printStackTrace(); } - System.out.println(articleInfo); + final CommentData.DataInfo data = articleInfo.getData(); + final List list = data.getList(); + if (CollectionUtil.isNotEmpty(list)) { + for (CommentData.Comment comment : list) { + final CommentData.Info info = comment.getInfo(); + final String userName = info.getUserName(); + if (StringUtils.equals(userName, "qyj19920704")) { + //评论过 + return true; + } + } + } + return false; + } + + @Override + public void like(String articleId) { + String url = "https://blog.csdn.net//phoenix/web/v1/article/like"; + // 使用Hutool发送GET请求 + HttpResponse response = HttpUtil.createPost(url) + .header(CUSTOM_HEADER_NAME, CUSTOM_HEADER_VALUE) // 添加自定义header参数 + .form("articleId", articleId) + .execute(); + // 打印响应结果 + if (response.getStatus() == 200) { + System.out.println("点赞成功"); + } + } + + @Override + public void comment(String articleId) { + String url = "https://blog.csdn.net/phoenix/web/v1/comment/submit"; + // 使用Hutool发送GET请求 + HttpResponse response = HttpUtil.createPost(url) + .header(CUSTOM_HEADER_NAME, CUSTOM_HEADER_VALUE) // 添加自定义header参数 + .form("articleId", articleId) + .form("content", "支持博主优质文章,讲解得非常详细,干货满满,通俗易懂,期待博主下次更新") + .execute(); + // 打印响应结果 + if (response.getStatus() == 200) { + System.out.println("评论成功"); + } } -} +} \ No newline at end of file -- GitLab