From 1bb2a535116a8d4283e67cd31fc4823b47372a9c Mon Sep 17 00:00:00 2001
From: qaiu <736226400@qq.com>
Date: Fri, 21 Apr 2023 23:30:50 +0800
Subject: [PATCH] 0.0.1 done
---
README.md | 30 ++++++-
core/pom.xml | 18 ----
{web => lz-cow-api-web}/assembly.xml | 0
{web => lz-cow-api-web}/pom.xml | 2 +-
.../src/main/java/cn/qaiu/lz/AppMain.java | 0
.../main/java/cn/qaiu/lz/common/ToJson.java | 0
.../interceptorImpl/DefaultInterceptor.java | 18 +---
.../java/cn/qaiu/lz/common/model/MyData.java | 5 --
.../cn/qaiu/lz/common/model/UserInfo.java | 5 --
.../cn/qaiu/lz/common/util/ArrayUtil.java | 0
.../cn/qaiu/lz/common/util/ConnectUtil.java | 0
.../java/cn/qaiu/lz/common/util/CowTool.java | 82 +++++++++++++++++++
.../java/cn/qaiu/lz/common/util/LzTool.java | 6 +-
.../main/java/cn/qaiu/lz/package-info.java | 0
.../java/cn/qaiu/lz/web/http/ServerApi.java | 80 ++++++++++++++++++
.../java/cn/qaiu/lz/web/model/RealUser.java | 0
.../cn/qaiu/lz/web/service/DbService.java | 0
.../qaiu/lz/web/service/JdkProxyFactory.java | 0
.../qaiu/lz/web/service/ServiceJdkProxy.java | 0
.../cn/qaiu/lz/web/service/UserService.java | 0
.../lz/web/service/impl/DbServiceImpl.java | 0
.../lz/web/service/impl/UserServiceImpl.java | 0
lz-cow-api-web/src/main/resources/1.http | 31 +++++++
.../src/main/resources/2.http | 0
.../src/main/resources/app-dev.yml | 2 +-
.../src/main/resources/app.yml | 0
.../src/main/resources/conf/dictionaries.json | 0
.../src/main/resources/curl/curl.sh | 0
.../src/main/resources/server-proxy.yml | 0
.../test/java/cn/qaiu/web/test/Test01.java | 0
.../test/java/cn/qaiu/web/test/Test02.java | 0
.../test/java/cn/qaiu/web/test/TestJsoup.java | 66 +++++++++++++++
.../test/java/cn/qaiu/web/test/TestOS.java | 0
.../cn/qaiu/web/test/WebProxyExamples.java | 0
pom.xml | 4 +-
.../java/cn/qaiu/lz/web/http/ServerApi.java | 46 -----------
web/src/main/resources/1.http | 4 -
.../test/java/cn/qaiu/web/test/StompTest.java | 42 ----------
38 files changed, 296 insertions(+), 145 deletions(-)
rename {web => lz-cow-api-web}/assembly.xml (100%)
rename {web => lz-cow-api-web}/pom.xml (99%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/AppMain.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/ToJson.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java (55%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/model/MyData.java (68%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/model/UserInfo.java (75%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/util/ArrayUtil.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/util/ConnectUtil.java (100%)
create mode 100644 lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/CowTool.java
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/common/util/LzTool.java (96%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/package-info.java (100%)
create mode 100644 lz-cow-api-web/src/main/java/cn/qaiu/lz/web/http/ServerApi.java
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/model/RealUser.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/service/DbService.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/service/JdkProxyFactory.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/service/ServiceJdkProxy.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/service/UserService.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/service/impl/DbServiceImpl.java (100%)
rename {web => lz-cow-api-web}/src/main/java/cn/qaiu/lz/web/service/impl/UserServiceImpl.java (100%)
create mode 100644 lz-cow-api-web/src/main/resources/1.http
rename {web => lz-cow-api-web}/src/main/resources/2.http (100%)
rename {web => lz-cow-api-web}/src/main/resources/app-dev.yml (97%)
rename {web => lz-cow-api-web}/src/main/resources/app.yml (100%)
rename {web => lz-cow-api-web}/src/main/resources/conf/dictionaries.json (100%)
rename {web => lz-cow-api-web}/src/main/resources/curl/curl.sh (100%)
rename {web => lz-cow-api-web}/src/main/resources/server-proxy.yml (100%)
rename {web => lz-cow-api-web}/src/test/java/cn/qaiu/web/test/Test01.java (100%)
rename {web => lz-cow-api-web}/src/test/java/cn/qaiu/web/test/Test02.java (100%)
create mode 100644 lz-cow-api-web/src/test/java/cn/qaiu/web/test/TestJsoup.java
rename {web => lz-cow-api-web}/src/test/java/cn/qaiu/web/test/TestOS.java (100%)
rename {web => lz-cow-api-web}/src/test/java/cn/qaiu/web/test/WebProxyExamples.java (100%)
delete mode 100644 web/src/main/java/cn/qaiu/lz/web/http/ServerApi.java
delete mode 100644 web/src/main/resources/1.http
delete mode 100644 web/src/test/java/cn/qaiu/web/test/StompTest.java
diff --git a/README.md b/README.md
index bd74bbb..482a816 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,30 @@
# lz-cow-api
-蓝奏云-奶牛快传的直链解析的API服务
+蓝奏云-奶牛快传的直链解析的API服务
+
+示例:
+```
+// 解析并重定向到直链
+###
+# @no-redirect
+GET http://127.0.0.1:6400/parse?url=https://lanzoux.com/ia2cntg
+###
+# @no-redirect
+GET http://127.0.0.1:6400/parse?url=https://cowtransfer.com/core/api/transfer/share?uniqueUrl=9a644fe3e3a748
+
+// Rest请求(只提供共享文件Id): cow 奶牛快传; lz 蓝奏云
+###
+# @no-redirect
+GET http://127.0.0.1:6400/cow/9a644fe3e3a748
+
+// 解析返回json直链
+###
+GET http://127.0.0.1:6400/json/cow/9a644fe3e3a748
+###
+GET http://127.0.0.1:6400/json/lz/ia2cntg
+
+```
+
+TODO:
+解析蓝奏云加密链接
+
+
diff --git a/core/pom.xml b/core/pom.xml
index 0a01d68..f765612 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -66,28 +66,10 @@
io.vertx
vertx-service-proxy
-
- io.vertx
- vertx-jdbc-client
-
-
-
- io.vertx
- vertx-sql-client-templates
-
-
-
- io.vertx
- vertx-auth-jwt
-
io.vertx
vertx-web-proxy
-
- io.vertx
- vertx-stomp
-
org.reflections
reflections
diff --git a/web/assembly.xml b/lz-cow-api-web/assembly.xml
similarity index 100%
rename from web/assembly.xml
rename to lz-cow-api-web/assembly.xml
diff --git a/web/pom.xml b/lz-cow-api-web/pom.xml
similarity index 99%
rename from web/pom.xml
rename to lz-cow-api-web/pom.xml
index 360bf63..4de1019 100644
--- a/web/pom.xml
+++ b/lz-cow-api-web/pom.xml
@@ -9,7 +9,7 @@
4.0.0
0.0.1
- web
+ lz-cow-api-web
${project.basedir}/target/package
diff --git a/web/src/main/java/cn/qaiu/lz/AppMain.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/AppMain.java
similarity index 100%
rename from web/src/main/java/cn/qaiu/lz/AppMain.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/AppMain.java
diff --git a/web/src/main/java/cn/qaiu/lz/common/ToJson.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/ToJson.java
similarity index 100%
rename from web/src/main/java/cn/qaiu/lz/common/ToJson.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/ToJson.java
diff --git a/web/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java
similarity index 55%
rename from web/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java
index a0d1e9e..6065941 100644
--- a/web/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java
+++ b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/interceptorImpl/DefaultInterceptor.java
@@ -24,22 +24,6 @@ public class DefaultInterceptor implements Interceptor, BaseHttpApi {
@Override
public void handle(RoutingContext ctx) {
-
- // 判断是否忽略
- if (CommonUtil.matchRegList(ignores.getList(), ctx.request().path())) {
- ctx.next();
- return;
- }
- // 执行拦截
- val token = ctx.request().getHeader("token");
-
-
- LocalMap tokenMap = SharedDataUtil.getLocalMapWithCast("token");
- if (token != null && tokenMap != null && tokenMap.containsKey(token)) {
- VertxHolder.getVertxInstance().getOrCreateContext().put("username", tokenMap.get(token));
- ctx.next();
- } else {
- fireJsonResponse(ctx, JsonResult.error("没有权限", 401));
- }
+ ctx.next();
}
}
diff --git a/web/src/main/java/cn/qaiu/lz/common/model/MyData.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/model/MyData.java
similarity index 68%
rename from web/src/main/java/cn/qaiu/lz/common/model/MyData.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/model/MyData.java
index 2b02228..4614000 100644
--- a/web/src/main/java/cn/qaiu/lz/common/model/MyData.java
+++ b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/model/MyData.java
@@ -1,10 +1,7 @@
package cn.qaiu.lz.common.model;
import io.vertx.codegen.annotations.DataObject;
-import io.vertx.codegen.format.SnakeCase;
import io.vertx.core.json.JsonObject;
-import io.vertx.sqlclient.templates.annotations.ParametersMapped;
-import io.vertx.sqlclient.templates.annotations.RowMapped;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -16,8 +13,6 @@ import java.io.Serializable;
*
Create date 2021/7/22 3:34
*/
@DataObject
-@RowMapped(formatter = SnakeCase.class)
-@ParametersMapped(formatter = SnakeCase.class)
@Data
@NoArgsConstructor
public class MyData implements Serializable {
diff --git a/web/src/main/java/cn/qaiu/lz/common/model/UserInfo.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/model/UserInfo.java
similarity index 75%
rename from web/src/main/java/cn/qaiu/lz/common/model/UserInfo.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/model/UserInfo.java
index c295556..1bb2efd 100644
--- a/web/src/main/java/cn/qaiu/lz/common/model/UserInfo.java
+++ b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/model/UserInfo.java
@@ -2,10 +2,7 @@ package cn.qaiu.lz.common.model;
import cn.qaiu.lz.common.ToJson;
import io.vertx.codegen.annotations.DataObject;
-import io.vertx.codegen.format.SnakeCase;
import io.vertx.core.json.JsonObject;
-import io.vertx.sqlclient.templates.annotations.ParametersMapped;
-import io.vertx.sqlclient.templates.annotations.RowMapped;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -20,8 +17,6 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@DataObject
-@RowMapped(formatter = SnakeCase.class)
-@ParametersMapped(formatter = SnakeCase.class)
public class UserInfo implements ToJson {
private String username;
diff --git a/web/src/main/java/cn/qaiu/lz/common/util/ArrayUtil.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/ArrayUtil.java
similarity index 100%
rename from web/src/main/java/cn/qaiu/lz/common/util/ArrayUtil.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/ArrayUtil.java
diff --git a/web/src/main/java/cn/qaiu/lz/common/util/ConnectUtil.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/ConnectUtil.java
similarity index 100%
rename from web/src/main/java/cn/qaiu/lz/common/util/ConnectUtil.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/ConnectUtil.java
diff --git a/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/CowTool.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/CowTool.java
new file mode 100644
index 0000000..10234fa
--- /dev/null
+++ b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/CowTool.java
@@ -0,0 +1,82 @@
+package cn.qaiu.lz.common.util;
+
+import cn.qaiu.vx.core.util.CastUtil;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.vertx.core.http.HttpClient;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.jsoup.Jsoup;
+
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * @author QAIU
+ * @date 2023/4/21 21:19
+ */
+@Slf4j
+public class CowTool {
+ /*
+ First request:
+ {
+ "code": "0000",
+ "message": "success",
+ "data": {
+ "guid": "e4f41b51-b5da-4f60-9312-37aa10c0aad7",
+ "firstFile": {
+ "id": "23861191276513345",
+ }
+ }
+ }
+
+ Then request:
+ {
+ "code": "0000",
+ "message": "success",
+ "tn": "TN:DE0E092E8A464521983780FBA21D0CD3",
+ "data": {
+ "downloadUrl": "https://download.cowcs.com..."
+ }
+ }
+ */
+ public static String parse(String fullUrl) throws IOException {
+ String uniqueUrl = fullUrl.substring(fullUrl.lastIndexOf('=') + 1);
+ String baseUrl = "https://cowtransfer.com/core/api/transfer/share";
+ String result = Jsoup
+ .connect(baseUrl + "?uniqueUrl=" + uniqueUrl).ignoreContentType(true)
+ .get()
+ .text();
+ ObjectMapper objectMapper = new ObjectMapper();
+ Map map = objectMapper.readValue(result, new TypeReference<>() {
+ });
+
+ if ("success".equals(map.get("message")) && map.containsKey("data")) {
+ Map data = CastUtil.cast(map.get("data"));
+ String guid = data.get("guid").toString();
+ Map firstFile = CastUtil.cast(data.get("firstFile"));
+ String fileId = firstFile.get("id").toString();
+ String result2 = Jsoup
+ .connect(baseUrl + "/download?transferGuid=" + guid + "&fileId=" + fileId)
+ .ignoreContentType(true)
+ .get()
+ .text();
+ Map map2 = objectMapper.readValue(result2, new TypeReference<>() {
+ });
+
+ if ("success".equals(map2.get("message")) && map2.containsKey("data")) {
+ Map data2 = CastUtil.cast(map2.get("data"));
+ String downloadUrl = data2.get("downloadUrl").toString();
+ if (StringUtils.isNotEmpty(downloadUrl)) {
+ log.info("cow parse success: {}", downloadUrl);
+ return downloadUrl;
+ }
+ }
+
+ }
+ log.info("Cow parse field------------->end");
+ return null;
+ }
+
+
+}
diff --git a/web/src/main/java/cn/qaiu/lz/common/util/LzTool.java b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/LzTool.java
similarity index 96%
rename from web/src/main/java/cn/qaiu/lz/common/util/LzTool.java
rename to lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/LzTool.java
index 9178b56..668f3b4 100644
--- a/web/src/main/java/cn/qaiu/lz/common/util/LzTool.java
+++ b/lz-cow-api-web/src/main/java/cn/qaiu/lz/common/util/LzTool.java
@@ -52,7 +52,7 @@ public class LzTool {
.userAgent(userAgent)
.get()
.html();
- System.out.println(result);
+// System.out.println(result);
Matcher matcher = Pattern.compile("'[\\w]+_c_c'").matcher(result);
Map params = new LinkedHashMap<>();
if (matcher.find()) {
@@ -60,7 +60,7 @@ public class LzTool {
params.put("action", "downprocess");
params.put("sign", sn);
params.put("ves", "1");
- System.out.println(sn);
+// System.out.println(sn);
} else {
throw new IOException();
@@ -76,7 +76,7 @@ public class LzTool {
.replace("\\", "");
//json转为map
params = new ObjectMapper().readValue(result, new TypeReference