From c76cbbefa26910c82dfd3585f8f999ee5784254b Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Wed, 28 Aug 2024 10:16:48 +0800 Subject: [PATCH] 新增功能操作按钮,和更新了数据库数据 --- src/main/java/cc/mrbird/febs/mall/test/DYDelMark.java | 324 +++++++++++++++++++++++++++--------------------------- 1 files changed, 162 insertions(+), 162 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/test/DYDelMark.java b/src/main/java/cc/mrbird/febs/mall/test/DYDelMark.java index 945de93..3328eeb 100644 --- a/src/main/java/cc/mrbird/febs/mall/test/DYDelMark.java +++ b/src/main/java/cc/mrbird/febs/mall/test/DYDelMark.java @@ -1,162 +1,162 @@ -package cc.mrbird.febs.mall.test; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; - -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class DYDelMark { - public static void main(String[] args) { - String content = "https://v.douyin.com/iLwxgYHE/"; - JSONObject douYData = extractDouYinData(content); - if (douYData != null) { - System.out.println(douYData); - } else { - System.out.println(1); - } - } - private static JSONObject extractDouYinData(String content) { - String url = extractUrl(content); - - if (url != null) { - if (content.contains("douyin.com")) { - if (content.contains("live.douyin.com")) { - System.out.println("直播"); - return null; - } else { - String dyUrlOrId = processContent(content); - String videoId = isNumeric(dyUrlOrId) ? dyUrlOrId : extractVideoId(dyUrlOrId); - if (videoId!=null){ - JSONArray dyData = serverGetDy(videoId); - - if (dyData != null && dyData.size() > 0) { - JSONObject jsonData = dyData.getJSONObject(0); - return buildDouYinData(jsonData); - } - } - } - } - } - return null; - } - private static JSONObject buildDouYinData(JSONObject jsonData) { - JSONObject douYData = new JSONObject(); - douYData.put("desc", jsonData.getString("desc")); - - JSONObject author = jsonData.getJSONObject("author"); - douYData.put("nickname", author.getString("nickname")); - - JSONObject videoJson = jsonData.getJSONObject("video"); - JSONObject coverJson = videoJson.getJSONObject("cover"); - String coverUrl = coverJson.getJSONArray("url_list").getString(0); - douYData.put("coverUrl", coverUrl); - - if (jsonData.getJSONArray("images") != null) { - JSONArray images = jsonData.getJSONArray("images"); - JSONArray imageArray = new JSONArray(); - - for (int i = 0; i < images.size(); i++) { - JSONObject image = images.getJSONObject(i); - JSONArray urlList = image.getJSONArray("url_list"); - imageArray.add(urlList.get(0)); - } - - douYData.put("type", 2); - douYData.put("data", imageArray); - } else { - JSONObject playAddr = videoJson.getJSONObject("play_addr"); - String uri = playAddr.getString("uri"); - String videoUrl = "https://www.iesdouyin.com/aweme/v1/play/?video_id=" + uri + "&ratio=1080p&line=0"; - douYData.put("type", 1); - douYData.put("data", videoUrl); - } - - return douYData; - } - public static String processContent(String content) { - String douyinUrl = extractMatch(content, "v\\.douyin\\.com/[a-zA-Z0-9]+"); - if (douyinUrl != null) { - return "https://" + douyinUrl; - } - String digit = extractMatch(content, "\\d{19}"); - return digit; - } - private static String extractMatch(String content, String regex) { - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(content); - return matcher.find() ? matcher.group(0) : null; - } - public static boolean isNumeric(String str) { - return str.matches("\\d+"); - } - private static String extractUrl(String text) { - // 匹配网址的正则表达式 - String regex = "https?://\\S+"; - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(text); - - // 查找匹配的链接 - if (matcher.find()) { - return matcher.group(); - } - - return null; - } - public static String extractVideoId(String link) { - String redirectLink = getRedirectUrl(link); - Pattern patternVideo = Pattern.compile("/video/(\\d+)"); - Pattern patternNote = Pattern.compile("/note/(\\d+)"); - - Matcher matcherVideo = patternVideo.matcher(redirectLink); - Matcher matcherNote = patternNote.matcher(redirectLink); - - if (matcherVideo.find()) { - return matcherVideo.group(1); - } else if (matcherNote.find()) { - return matcherNote.group(1); - } else { - return null; - } - } - public static String getRedirectUrl(String url) { - OkHttpClient client = new OkHttpClient(); - try { - Request request = new Request.Builder() - .url(url) - .get() - .build(); - Response response = client.newCall(request).execute(); - return response.request().url().toString(); - - } catch (IOException e) { - e.printStackTrace(); - } - - return null; - } - private static JSONArray serverGetDy(String itemIds){ - OkHttpClient client = new OkHttpClient().newBuilder().build(); - Request Request = new Request.Builder() - //不知道这个a_bogus是啥 可能是个算法 随便填写或空即可 - .url("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?reflow_source=reflow_page&item_ids="+itemIds+"&a_bogus=sdfds") - .addHeader("content-type", "application/x-www-form-urlencoded") - .get() - .build(); - try { - Response response = client.newCall(Request).execute(); - JSONObject jsonObject= JSONObject.parseObject(response.body().string()); - if (jsonObject.getInteger("status_code").equals(0)){ - return jsonObject.getJSONArray("item_list"); - } - return null; - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } -} +//package cc.mrbird.febs.mall.test; +// +//import com.alibaba.fastjson.JSONArray; +//import com.alibaba.fastjson.JSONObject; +//import okhttp3.OkHttpClient; +//import okhttp3.Request; +//import okhttp3.Response; +// +//import java.io.IOException; +//import java.util.regex.Matcher; +//import java.util.regex.Pattern; +// +//public class DYDelMark { +// public static void main(String[] args) { +// String content = "https://v.douyin.com/iLwxgYHE/"; +// JSONObject douYData = extractDouYinData(content); +// if (douYData != null) { +// System.out.println(douYData); +// } else { +// System.out.println(1); +// } +// } +// private static JSONObject extractDouYinData(String content) { +// String url = extractUrl(content); +// +// if (url != null) { +// if (content.contains("douyin.com")) { +// if (content.contains("live.douyin.com")) { +// System.out.println("直播"); +// return null; +// } else { +// String dyUrlOrId = processContent(content); +// String videoId = isNumeric(dyUrlOrId) ? dyUrlOrId : extractVideoId(dyUrlOrId); +// if (videoId!=null){ +// JSONArray dyData = serverGetDy(videoId); +// +// if (dyData != null && dyData.size() > 0) { +// JSONObject jsonData = dyData.getJSONObject(0); +// return buildDouYinData(jsonData); +// } +// } +// } +// } +// } +// return null; +// } +// private static JSONObject buildDouYinData(JSONObject jsonData) { +// JSONObject douYData = new JSONObject(); +// douYData.put("desc", jsonData.getString("desc")); +// +// JSONObject author = jsonData.getJSONObject("author"); +// douYData.put("nickname", author.getString("nickname")); +// +// JSONObject videoJson = jsonData.getJSONObject("video"); +// JSONObject coverJson = videoJson.getJSONObject("cover"); +// String coverUrl = coverJson.getJSONArray("url_list").getString(0); +// douYData.put("coverUrl", coverUrl); +// +// if (jsonData.getJSONArray("images") != null) { +// JSONArray images = jsonData.getJSONArray("images"); +// JSONArray imageArray = new JSONArray(); +// +// for (int i = 0; i < images.size(); i++) { +// JSONObject image = images.getJSONObject(i); +// JSONArray urlList = image.getJSONArray("url_list"); +// imageArray.add(urlList.get(0)); +// } +// +// douYData.put("type", 2); +// douYData.put("data", imageArray); +// } else { +// JSONObject playAddr = videoJson.getJSONObject("play_addr"); +// String uri = playAddr.getString("uri"); +// String videoUrl = "https://www.iesdouyin.com/aweme/v1/play/?video_id=" + uri + "&ratio=1080p&line=0"; +// douYData.put("type", 1); +// douYData.put("data", videoUrl); +// } +// +// return douYData; +// } +// public static String processContent(String content) { +// String douyinUrl = extractMatch(content, "v\\.douyin\\.com/[a-zA-Z0-9]+"); +// if (douyinUrl != null) { +// return "https://" + douyinUrl; +// } +// String digit = extractMatch(content, "\\d{19}"); +// return digit; +// } +// private static String extractMatch(String content, String regex) { +// Pattern pattern = Pattern.compile(regex); +// Matcher matcher = pattern.matcher(content); +// return matcher.find() ? matcher.group(0) : null; +// } +// public static boolean isNumeric(String str) { +// return str.matches("\\d+"); +// } +// private static String extractUrl(String text) { +// // 匹配网址的正则表达式 +// String regex = "https?://\\S+"; +// Pattern pattern = Pattern.compile(regex); +// Matcher matcher = pattern.matcher(text); +// +// // 查找匹配的链接 +// if (matcher.find()) { +// return matcher.group(); +// } +// +// return null; +// } +// public static String extractVideoId(String link) { +// String redirectLink = getRedirectUrl(link); +// Pattern patternVideo = Pattern.compile("/video/(\\d+)"); +// Pattern patternNote = Pattern.compile("/note/(\\d+)"); +// +// Matcher matcherVideo = patternVideo.matcher(redirectLink); +// Matcher matcherNote = patternNote.matcher(redirectLink); +// +// if (matcherVideo.find()) { +// return matcherVideo.group(1); +// } else if (matcherNote.find()) { +// return matcherNote.group(1); +// } else { +// return null; +// } +// } +// public static String getRedirectUrl(String url) { +// OkHttpClient client = new OkHttpClient(); +// try { +// Request request = new Request.Builder() +// .url(url) +// .get() +// .build(); +// Response response = client.newCall(request).execute(); +// return response.request().url().toString(); +// +// } catch (IOException e) { +// e.printStackTrace(); +// } +// +// return null; +// } +// private static JSONArray serverGetDy(String itemIds){ +// OkHttpClient client = new OkHttpClient().newBuilder().build(); +// Request Request = new Request.Builder() +// //不知道这个a_bogus是啥 可能是个算法 随便填写或空即可 +// .url("https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?reflow_source=reflow_page&item_ids="+itemIds+"&a_bogus=sdfds") +// .addHeader("content-type", "application/x-www-form-urlencoded") +// .get() +// .build(); +// try { +// Response response = client.newCall(Request).execute(); +// JSONObject jsonObject= JSONObject.parseObject(response.body().string()); +// if (jsonObject.getInteger("status_code").equals(0)){ +// return jsonObject.getJSONArray("item_list"); +// } +// return null; +// } catch (IOException e) { +// e.printStackTrace(); +// return null; +// } +// } +//} -- Gitblit v1.9.1