//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;
|
// }
|
// }
|
//}
|