diff --git a/sql/create_table.sql b/sql/create_table.sql index f49bfc3..efacf80 100644 --- a/sql/create_table.sql +++ b/sql/create_table.sql @@ -89,4 +89,8 @@ ALTER TABLE picture ADD COLUMN space_id bigint null comment '空间 id(为空表示公共空间)'; -- 创建索引 -CREATE INDEX idx_spaceId ON picture (space_id); \ No newline at end of file +CREATE INDEX idx_spaceId ON picture (space_id); + +-- 添加新列 +ALTER TABLE picture + ADD COLUMN pic_color varchar(16) null comment '图片主色调'; \ No newline at end of file diff --git a/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/ImageSearchApiFacade.java b/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/ImageSearchApiFacade.java new file mode 100644 index 0000000..747f1f5 --- /dev/null +++ b/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/ImageSearchApiFacade.java @@ -0,0 +1,29 @@ +package edu.whut.smilepicturebackend.api.imagesearch; +import edu.whut.smilepicturebackend.api.imagesearch.model.ImageSearchResult; +import edu.whut.smilepicturebackend.api.imagesearch.sub.GetImageFirstUrlApi; +import edu.whut.smilepicturebackend.api.imagesearch.sub.GetImageListApi; +import edu.whut.smilepicturebackend.api.imagesearch.sub.GetImagePageUrlApi; +import lombok.extern.slf4j.Slf4j; + +import java.util.List; + +@Slf4j +public class ImageSearchApiFacade { + + /** + * 搜索图片 + * @param localImagePath + * @return + */ + public static List searchImage(String localImagePath) { + String imagePageUrl = GetImagePageUrlApi.getImagePageUrl(localImagePath); + String imageFirstUrl = GetImageFirstUrlApi.getImageFirstUrl(imagePageUrl); + List imageList = GetImageListApi.getImageList(imageFirstUrl); + return imageList; + } + + public static void main(String[] args) { + List imageList = searchImage("https://www.codefather.cn/logo.png"); + System.out.println("结果列表" + imageList); + } +} diff --git a/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/model/ImageSearchResult.java b/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/model/ImageSearchResult.java new file mode 100644 index 0000000..c8bf3d6 --- /dev/null +++ b/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/model/ImageSearchResult.java @@ -0,0 +1,20 @@ +package edu.whut.smilepicturebackend.api.imagesearch.model; + +import lombok.Data; + +/** + * 图片搜索结果 + */ +@Data +public class ImageSearchResult { + + /** + * 缩略图地址 + */ + private String thumbUrl; + + /** + * 来源地址 + */ + private String fromUrl; +} \ No newline at end of file diff --git a/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/sub/GetImageFirstUrlApi.java b/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/sub/GetImageFirstUrlApi.java new file mode 100644 index 0000000..9f104d9 --- /dev/null +++ b/src/main/java/edu/whut/smilepicturebackend/api/imagesearch/sub/GetImageFirstUrlApi.java @@ -0,0 +1,64 @@ +package edu.whut.smilepicturebackend.api.imagesearch.sub; +import edu.whut.smilepicturebackend.exception.BusinessException; +import edu.whut.smilepicturebackend.exception.ErrorCode; +import lombok.extern.slf4j.Slf4j; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 获取图片列表接口的 Api(Step 2) + */ +@Slf4j +public class GetImageFirstUrlApi { + + /** + * 获取图片列表页面地址 + * + * @param url + * @return + */ + public static String getImageFirstUrl(String url) { + try { + // 使用 Jsoup 获取 HTML 内容 + Document document = Jsoup.connect(url) + .timeout(5000) + .get(); + + // 获取所有