cloud异步
This commit is contained in:
parent
cb27d8b6d0
commit
68b72532e8
|
|
@ -78,7 +78,7 @@ class BaiDuPan : Spider() {
|
||||||
* @param ids share_link 集合
|
* @param ids share_link 集合
|
||||||
* @return 詳情內容視頻播放地址
|
* @return 詳情內容視頻播放地址
|
||||||
*/
|
*/
|
||||||
@Throws(Exception::class)
|
|
||||||
fun detailContentVodPlayUrl(ids: List<String>): String? {
|
fun detailContentVodPlayUrl(ids: List<String>): String? {
|
||||||
val playUrl: MutableList<String?> = ArrayList<String?>()
|
val playUrl: MutableList<String?> = ArrayList<String?>()
|
||||||
for (id in ids) {
|
for (id in ids) {
|
||||||
|
|
@ -86,6 +86,7 @@ class BaiDuPan : Spider() {
|
||||||
playUrl.add(getVod(id).getVodPlayUrl())
|
playUrl.add(getVod(id).getVodPlayUrl())
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
SpiderDebug.log("获取播放地址出错:" + e.message)
|
SpiderDebug.log("获取播放地址出错:" + e.message)
|
||||||
|
playUrl.add("")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TextUtils.join("$$$", playUrl)
|
return TextUtils.join("$$$", playUrl)
|
||||||
|
|
|
||||||
|
|
@ -8,11 +8,16 @@ import com.github.catvod.crawler.SpiderDebug;
|
||||||
import com.github.catvod.utils.Json;
|
import com.github.catvod.utils.Json;
|
||||||
import com.github.catvod.utils.Util;
|
import com.github.catvod.utils.Util;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
import static com.github.catvod.api.TianyiApi.URL_CONTAIN;
|
import static com.github.catvod.api.TianyiApi.URL_CONTAIN;
|
||||||
|
|
||||||
|
|
@ -103,8 +108,7 @@ public class Cloud extends Spider {
|
||||||
i++;
|
i++;
|
||||||
if (shareLink.matches(Util.patternUC)) {
|
if (shareLink.matches(Util.patternUC)) {
|
||||||
from.add(uc.detailContentVodPlayFrom(List.of(shareLink), i));
|
from.add(uc.detailContentVodPlayFrom(List.of(shareLink), i));
|
||||||
} else
|
} else if (shareLink.matches(Util.patternQuark)) {
|
||||||
if (shareLink.matches(Util.patternQuark)) {
|
|
||||||
from.add(quark.detailContentVodPlayFrom(List.of(shareLink), i));
|
from.add(quark.detailContentVodPlayFrom(List.of(shareLink), i));
|
||||||
} /*else if (shareLink.matches(Util.patternAli)) {
|
} /*else if (shareLink.matches(Util.patternAli)) {
|
||||||
from.add(ali.detailContentVodPlayFrom(List.of(shareLink), i));
|
from.add(ali.detailContentVodPlayFrom(List.of(shareLink), i));
|
||||||
|
|
@ -122,27 +126,44 @@ public class Cloud extends Spider {
|
||||||
return TextUtils.join("$$$", from);
|
return TextUtils.join("$$$", from);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String detailContentVodPlayUrl(List<String> shareLinks) throws Exception {
|
protected String detailContentVodPlayUrl(List<String> shareLinks) {
|
||||||
Collections.sort(shareLinks, Collections.reverseOrder());
|
|
||||||
List<String> urls = new ArrayList<>();
|
List<String> urls = new CopyOnWriteArrayList<>();
|
||||||
|
ExecutorService service = Executors.newFixedThreadPool(4);
|
||||||
|
List<CompletableFuture<String>> futures = new ArrayList<>();
|
||||||
for (String shareLink : shareLinks) {
|
for (String shareLink : shareLinks) {
|
||||||
|
futures.add(CompletableFuture.supplyAsync(() -> {
|
||||||
|
|
||||||
|
String url = "";
|
||||||
if (shareLink.matches(Util.patternUC)) {
|
if (shareLink.matches(Util.patternUC)) {
|
||||||
urls.add(uc.detailContentVodPlayUrl(List.of(shareLink)));
|
url = uc.detailContentVodPlayUrl(List.of(shareLink));
|
||||||
} else
|
} else if (shareLink.matches(Util.patternQuark)) {
|
||||||
if (shareLink.matches(Util.patternQuark)) {
|
url = quark.detailContentVodPlayUrl(List.of(shareLink));
|
||||||
urls.add(quark.detailContentVodPlayUrl(List.of(shareLink)));
|
|
||||||
}/* else if (shareLink.matches(Util.patternAli)) {
|
}/* else if (shareLink.matches(Util.patternAli)) {
|
||||||
urls.add(ali.detailContentVodPlayUrl(List.of(shareLink)));
|
urls.add(ali.detailContentVodPlayUrl(List.of(shareLink)));
|
||||||
} */ else if (shareLink.contains(URL_CONTAIN)) {
|
} */ else if (shareLink.contains(URL_CONTAIN)) {
|
||||||
urls.add(tianYi.detailContentVodPlayUrl(List.of(shareLink)));
|
url = tianYi.detailContentVodPlayUrl(List.of(shareLink));
|
||||||
} else if (shareLink.contains(YiDongYun.URL_START)) {
|
} else if (shareLink.contains(YiDongYun.URL_START)) {
|
||||||
urls.add(yiDongYun.detailContentVodPlayUrl(List.of(shareLink)));
|
url = yiDongYun.detailContentVodPlayUrl(List.of(shareLink));
|
||||||
} else if (shareLink.contains(BaiDuPan.URL_START)) {
|
} else if (shareLink.contains(BaiDuPan.URL_START)) {
|
||||||
urls.add(baiDuPan.detailContentVodPlayUrl(List.of(shareLink)));
|
url = baiDuPan.detailContentVodPlayUrl(List.of(shareLink));
|
||||||
} else if (shareLink.matches(Pan123Api.regex)) {
|
} else if (shareLink.matches(Pan123Api.regex)) {
|
||||||
urls.add(pan123.detailContentVodPlayUrl(List.of(shareLink)));
|
url = pan123.detailContentVodPlayUrl(List.of(shareLink));
|
||||||
}
|
}
|
||||||
}
|
return url;
|
||||||
return TextUtils.join("$$$", urls);
|
}, service));
|
||||||
|
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
for (CompletableFuture<String> future : futures) {
|
||||||
|
urls.add(future.get());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
SpiderDebug.log("获取异步结果出错:" + e);
|
||||||
|
}
|
||||||
|
|
||||||
|
SpiderDebug.log("---urls:" + Json.toJson(urls));
|
||||||
|
service.shutdown();
|
||||||
|
return StringUtils.join(urls, "$$$");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ public class Pan123 extends Spider {
|
||||||
* @param ids share_link 集合
|
* @param ids share_link 集合
|
||||||
* @return 詳情內容視頻播放地址
|
* @return 詳情內容視頻播放地址
|
||||||
*/
|
*/
|
||||||
public String detailContentVodPlayUrl(List<String> ids) throws Exception {
|
public String detailContentVodPlayUrl(List<String> ids){
|
||||||
List<String> playUrl = new ArrayList<>();
|
List<String> playUrl = new ArrayList<>();
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
@NotNull Map<@NotNull String, @NotNull String> shareData = Pan123Api.INSTANCE.getShareData(id);
|
@NotNull Map<@NotNull String, @NotNull String> shareData = Pan123Api.INSTANCE.getShareData(id);
|
||||||
|
|
@ -80,6 +80,7 @@ public class Pan123 extends Spider {
|
||||||
playUrl.add(Pan123Api.INSTANCE.getVod(shareData.get("key"), shareData.get("sharePwd")).getVodPlayUrl());
|
playUrl.add(Pan123Api.INSTANCE.getVod(shareData.get("key"), shareData.get("sharePwd")).getVodPlayUrl());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
||||||
|
playUrl.add("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TextUtils.join("$$$", playUrl);
|
return TextUtils.join("$$$", playUrl);
|
||||||
|
|
|
||||||
|
|
@ -70,14 +70,15 @@ public class Quark extends Spider {
|
||||||
* @param ids share_link 集合
|
* @param ids share_link 集合
|
||||||
* @return 詳情內容視頻播放地址
|
* @return 詳情內容視頻播放地址
|
||||||
*/
|
*/
|
||||||
public String detailContentVodPlayUrl(List<String> ids) throws Exception {
|
public String detailContentVodPlayUrl(List<String> ids) {
|
||||||
List<String> playUrl = new ArrayList<>();
|
List<String> playUrl = new ArrayList<>();
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
ShareData shareData = QuarkApi.get().getShareData(id);
|
ShareData shareData = QuarkApi.get().getShareData(id);
|
||||||
try {
|
try {
|
||||||
playUrl.add(QuarkApi.get().getVod(shareData)==null?"":QuarkApi.get().getVod(shareData).getVodPlayUrl());
|
playUrl.add(QuarkApi.get().getVod(shareData)==null?" $$$ ":QuarkApi.get().getVod(shareData).getVodPlayUrl());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
||||||
|
playUrl.add(" $$$ ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TextUtils.join("$$$", playUrl);
|
return TextUtils.join("$$$", playUrl);
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ public class TianYi extends Spider {
|
||||||
* @param ids share_link 集合
|
* @param ids share_link 集合
|
||||||
* @return 詳情內容視頻播放地址
|
* @return 詳情內容視頻播放地址
|
||||||
*/
|
*/
|
||||||
public String detailContentVodPlayUrl(List<String> ids) throws Exception {
|
public String detailContentVodPlayUrl(List<String> ids) {
|
||||||
List<String> playUrl = new ArrayList<>();
|
List<String> playUrl = new ArrayList<>();
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
ShareData shareData = TianyiApi.get().getShareData(id, "");
|
ShareData shareData = TianyiApi.get().getShareData(id, "");
|
||||||
|
|
@ -77,6 +77,7 @@ public class TianYi extends Spider {
|
||||||
playUrl.add(TianyiApi.get().getVod(shareData).getVodPlayUrl());
|
playUrl.add(TianyiApi.get().getVod(shareData).getVodPlayUrl());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
||||||
|
playUrl.add("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return TextUtils.join("$$$", playUrl);
|
return TextUtils.join("$$$", playUrl);
|
||||||
|
|
|
||||||
|
|
@ -71,11 +71,17 @@ public class UC extends Spider {
|
||||||
* @param ids share_link 集合
|
* @param ids share_link 集合
|
||||||
* @return 詳情內容視頻播放地址
|
* @return 詳情內容視頻播放地址
|
||||||
*/
|
*/
|
||||||
public String detailContentVodPlayUrl(List<String> ids) throws Exception {
|
public String detailContentVodPlayUrl(List<String> ids) {
|
||||||
List<String> playUrl = new ArrayList<>();
|
List<String> playUrl = new ArrayList<>();
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
|
try {
|
||||||
ShareData shareData = UCApi.get().getShareData(id);
|
ShareData shareData = UCApi.get().getShareData(id);
|
||||||
playUrl.add(UCApi.get().getVod(shareData)==null?"":UCApi.get().getVod(shareData).getVodPlayUrl());
|
playUrl.add(UCApi.get().getVod(shareData)==null?"":UCApi.get().getVod(shareData).getVodPlayUrl());
|
||||||
|
}catch (Exception e){
|
||||||
|
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
||||||
|
playUrl.add("");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return TextUtils.join("$$$", playUrl);
|
return TextUtils.join("$$$", playUrl);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.github.catvod.api.YunDrive;
|
||||||
import com.github.catvod.bean.Result;
|
import com.github.catvod.bean.Result;
|
||||||
import com.github.catvod.bean.Vod;
|
import com.github.catvod.bean.Vod;
|
||||||
import com.github.catvod.crawler.Spider;
|
import com.github.catvod.crawler.Spider;
|
||||||
|
import com.github.catvod.crawler.SpiderDebug;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
@ -108,10 +109,17 @@ public class YiDongYun extends Spider {
|
||||||
* @param ids share_link 集合
|
* @param ids share_link 集合
|
||||||
* @return 詳情內容視頻播放地址
|
* @return 詳情內容視頻播放地址
|
||||||
*/
|
*/
|
||||||
public String detailContentVodPlayUrl(List<String> ids) throws Exception {
|
public String detailContentVodPlayUrl(List<String> ids) {
|
||||||
List<String> playUrl = new ArrayList<>();
|
List<String> playUrl = new ArrayList<>();
|
||||||
for (String id : ids) {
|
for (String id : ids) {
|
||||||
|
try {
|
||||||
playUrl.add(getVod(List.of(id)).getVodPlayUrl());
|
playUrl.add(getVod(List.of(id)).getVodPlayUrl());
|
||||||
|
}catch (Exception e) {
|
||||||
|
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
||||||
|
playUrl.add("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
return TextUtils.join("$$$", playUrl);
|
return TextUtils.join("$$$", playUrl);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue