diff --git a/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/codec/MarshallingCodeCFactory.java b/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/codec/MarshallingCodeCFactory.java index 37ef2be..3571759 100644 --- a/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/codec/MarshallingCodeCFactory.java +++ b/cdp-tools/cdp-tool-netty-disruptor/src/main/java/com/baiye/codec/MarshallingCodeCFactory.java @@ -41,7 +41,6 @@ public final class MarshallingCodeCFactory { configuration.setVersion(5); MarshallerProvider provider = new DefaultMarshallerProvider(marshallerFactory, configuration); //构建Netty的MarshallingEncoder对象,MarshallingEncoder用于实现序列化接口的POJO对象序列化为二进制数组 - MarshallingEncoder encoder = new MarshallingEncoder(provider); - return encoder; + return new MarshallingEncoder(provider); } } diff --git a/cdp-tools/cdp-tool-wechat/cdp-wechat-server/src/main/java/com/baiye/controller/AliYunOssUpload.java b/cdp-tools/cdp-tool-wechat/cdp-wechat-server/src/main/java/com/baiye/controller/AliYunOssUpload.java index b144750..b5fedfd 100644 --- a/cdp-tools/cdp-tool-wechat/cdp-wechat-server/src/main/java/com/baiye/controller/AliYunOssUpload.java +++ b/cdp-tools/cdp-tool-wechat/cdp-wechat-server/src/main/java/com/baiye/controller/AliYunOssUpload.java @@ -2,12 +2,12 @@ package com.baiye.controller; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.text.StrPool; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.aliyun.oss.OSS; +import com.baiye.BadRequestException; import com.baiye.core.base.api.Result; import com.baiye.core.constant.DefaultNumberConstants; -import com.baiye.BadRequestException; import com.baiye.oss.OssConfig; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -43,7 +43,7 @@ public class AliYunOssUpload { if (ObjectUtil.isNotNull(file) && StringUtils.isNotBlank(file.getOriginalFilename())) { String objectName = DateUtil.formatDate - (DateUtil.date()).concat(StrUtil.SLASH) + (DateUtil.date()).concat(StrPool.SLASH) .concat(file.getOriginalFilename()); ossClient.putObject(bucketname, objectName, file.getInputStream()); // 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。 diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/java/com/baiye/controller/AliYunOssUpload.java b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/java/com/baiye/controller/AliYunOssUpload.java new file mode 100644 index 0000000..4242ec8 --- /dev/null +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/java/com/baiye/controller/AliYunOssUpload.java @@ -0,0 +1,78 @@ +package com.baiye.controller; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.text.StrPool; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.aliyun.oss.OSS; +import com.baiye.BadRequestException; +import com.baiye.annotation.Inner; +import com.baiye.config.oss.OssConfig; +import com.baiye.core.base.api.Result; +import com.baiye.core.constant.DefaultNumberConstants; +import com.baiye.dto.ScreenshotDTO; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.net.URL; + +/** + * @author Enzo + * @date : 2022/8/10 + */ +@Slf4j +@RestController +@RequestMapping("/upload/screenshot") +public class AliYunOssUpload { + + @Resource + private OssConfig ossConfig; + + @Value("${aliyun.bucketname}") + private String bucketname; + + + @SneakyThrows + @Inner(value = false) + @PostMapping("/images") + public Result uploadOssFile + (@RequestParam(value = "phone") String phone, @RequestParam(value = "file") MultipartFile file) { + OSS ossClient = ossConfig.ossClient(); + if (ObjectUtil.isNotNull(file) && + StringUtils.isNotBlank(file.getOriginalFilename())) { + String objectName = DateUtil.formatDate + (DateUtil.date()).concat(StrPool.SLASH) + .concat(file.getOriginalFilename()); + ossClient.putObject(bucketname, objectName, file.getInputStream()); + // 生成以GET方法访问的签名URL,访客可以直接通过浏览器访问相关内容。 + DateTime dateTime = DateUtil.offsetDay(DateUtil.date(), DefaultNumberConstants.TWO_HUNDRED); + URL url = ossClient.generatePresignedUrl(bucketname, objectName, dateTime); + ossClient.shutdown(); + String downUrl = url.toString(); + log.info("====================== the down url as {} ======================", downUrl); + ScreenshotDTO screenshot = ScreenshotDTO.builder().url(downUrl).phone(phone).build(); + String post = HttpUtil.post("http://101.34.63.53/phone/api/v1/xhs/remoteLogin", JSONUtil.toJsonStr(screenshot)); + log.info("====================== the result body as {} ====================== ", JSONUtil.toJsonStr(post)); + return Result.data(post); + } + throw new BadRequestException("上传图片失败"); + } + + + @Inner(value = false) + @GetMapping("/callback") + public Result checkUploadFile(@RequestParam String url) { + OSS ossClient = ossConfig.ossClient(); + String file = url.substring(url.lastIndexOf(StrPool.DOT)); + ossClient.deleteObject(bucketname, file); + return Result.success(); + } + +} diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/java/com/baiye/test/TiktokCookie.java b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/java/com/baiye/test/TiktokCookie.java new file mode 100644 index 0000000..be22ef5 --- /dev/null +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/java/com/baiye/test/TiktokCookie.java @@ -0,0 +1,50 @@ +package com.baiye.test; + +import com.baiye.core.constant.DefaultNumberConstants; +import com.baiye.core.constant.SysConstants; +import com.google.common.collect.Maps; +import com.google.common.net.HttpHeaders; +import lombok.extern.slf4j.Slf4j; +import org.jsoup.Connection; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.select.Elements; + +import java.io.IOException; +import java.util.Map; + +/** + * @author Enzo + * @date : 2023/3/29 + */ +@Slf4j +public class TiktokCookie { + public static void main(String[] args) throws IOException { + + + + + Connection connection = Jsoup.connect("https://www.xiaohongshu.com/explore/640efda4000000001303347d"); + Map articleMap = Maps.newConcurrentMap(); + Map hashMap = Maps.newHashMap(); + hashMap.put(HttpHeaders.USER_AGENT, SysConstants.USER_AGENT); + + + hashMap.put("Cookie", "web_session=030037a31ddba445eeff9cc956234a02b5b3f3;"); + + + // 设置单个请求头 + Connection header = connection.headers(hashMap); + Document document = header.get(); + if (document.getElementsByClass("title").size() > DefaultNumberConstants.ZERO_NUMBER) { + String title = document.getElementsByClass("title").get(DefaultNumberConstants.ZERO_NUMBER).text(); + articleMap.put("title", title); + } + Elements elements = document.getElementsByClass("count"); + + articleMap.put("likeNum", elements.get(DefaultNumberConstants.ZERO_NUMBER).getElementsByTag("span").text()); + articleMap.put("collectNum", elements.get(DefaultNumberConstants.ONE_NUMBER).getElementsByTag("span").text()); + articleMap.put("commentNum", elements.get(DefaultNumberConstants.TWO_NUMBER).getElementsByTag("span").text()); + + } +} diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/resources/config/application.yml b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/resources/config/application.yml index 8793b04..23a423d 100644 --- a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/resources/config/application.yml +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-api/src/main/resources/config/application.yml @@ -47,6 +47,8 @@ xiaoHongShu: maxPoolSize: 16 queueCapacity: 4 +aliyun: + bucketname: baiye-cdp # 文件存储路径 file: diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/pom.xml b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/pom.xml index 4645b62..6d23db0 100644 --- a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/pom.xml +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/pom.xml @@ -57,6 +57,11 @@ us.codecraft webmagic-core + + + com.alibaba.cloud + spring-cloud-starter-alicloud-oss + diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/config/oss/OssConfig.java b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/config/oss/OssConfig.java new file mode 100644 index 0000000..2106c68 --- /dev/null +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/config/oss/OssConfig.java @@ -0,0 +1,33 @@ +package com.baiye.config.oss; + +import com.alibaba.alicloud.context.AliCloudProperties; +import com.alibaba.alicloud.context.oss.OssProperties; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; + +/** + * @author Enzo + * @date : 2022/8/15 + */ +@Configuration +@RequiredArgsConstructor +public class OssConfig { + + private final OssProperties ossProperties; + private final AliCloudProperties aliCloudProperties; + + @Bean + @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) + public OSS ossClient() { + return new OSSClientBuilder().build + (ossProperties.getEndpoint(), + aliCloudProperties.getAccessKey(), + aliCloudProperties.getSecretKey()); + } + +} diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/dto/ScreenshotDTO.java b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/dto/ScreenshotDTO.java new file mode 100644 index 0000000..4df5b4e --- /dev/null +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/dto/ScreenshotDTO.java @@ -0,0 +1,20 @@ +package com.baiye.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +/** + * @author Enzo + * @date : 2023/6/15 + */ +@Data +@Builder +public class ScreenshotDTO { + @ApiModelProperty("文件链接") + private String url; + + @ApiModelProperty("号码") + private String phone; + +} diff --git a/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/dto/UploadImagesDTO.java b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/dto/UploadImagesDTO.java new file mode 100644 index 0000000..0b13a2c --- /dev/null +++ b/cdp-tools/cdp-tool-xhs/cdp-tool-xhs-core/src/main/java/com/baiye/dto/UploadImagesDTO.java @@ -0,0 +1,19 @@ +package com.baiye.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; + +/** + * @author Enzo + * @date : 2023/6/15 + */ +@Data +public class UploadImagesDTO { + + @ApiModelProperty("上传文件") + private MultipartFile file; + + @ApiModelProperty("号码") + private String phone; +}