uc和quark空指针
This commit is contained in:
parent
608e1b51a1
commit
69ae330c7a
|
|
@ -44,7 +44,7 @@ public class UCApi {
|
|||
private String cookieToken = "";
|
||||
private String ckey = "";
|
||||
private Map<String, Map<String, Object>> shareTokenCache = new HashMap<>();
|
||||
private String pr = "pr=UCBrowser&fr=pc";
|
||||
private String pr = "pr=UCBrowser&fr=pc&sys=darwin&ve=1.8.6&ut=Nk27FcCv6q1eo6rXz8QHR/nIG6qLA3jh7KdL+agFgcOvww==";
|
||||
private List<String> subtitleExts = Arrays.asList(".srt", ".ass", ".scc", ".stl", ".ttml");
|
||||
private Map<String, String> saveFileIdCaches = new HashMap<>();
|
||||
private String saveDirId = null;
|
||||
|
|
@ -227,13 +227,13 @@ public class UCApi {
|
|||
header.remove("Host");
|
||||
header.remove("Content-Type");
|
||||
|
||||
//UCTV 可以直接播放,不需要代理
|
||||
/* //UCTV 可以直接播放,不需要代理
|
||||
if (testVideo(playUrl)) {
|
||||
SpiderDebug.log("UCTV 可以直接播放,不需要代理" );
|
||||
|
||||
return Result.get().url(playUrl).string();
|
||||
}
|
||||
return Result.get().url(proxyVideoUrl(playUrl, header)).octet().header(header).string();
|
||||
}*/
|
||||
return Result.get().url(ProxyServer.INSTANCE.buildProxyUrl(playUrl, header)).string();
|
||||
}
|
||||
|
||||
private boolean testVideo(String url) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.github.catvod.utils.Util;
|
|||
import com.google.gson.JsonObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
|
|
@ -20,8 +21,8 @@ import static com.github.catvod.api.TianyiApi.URL_CONTAIN;
|
|||
*/
|
||||
public class Cloud extends Spider {
|
||||
private Quark quark = null;
|
||||
/* private Ali ali = null;
|
||||
private UC uc = null;*/
|
||||
/* private Ali ali = null;*/
|
||||
private UC uc = null;
|
||||
private TianYi tianYi = null;
|
||||
private YiDongYun yiDongYun = null;
|
||||
private BaiDuPan baiDuPan = null;
|
||||
|
|
@ -31,16 +32,16 @@ public class Cloud extends Spider {
|
|||
public void init(Context context, String extend) throws Exception {
|
||||
JsonObject ext = Json.safeObject(extend);
|
||||
quark = new Quark();
|
||||
/* uc = new UC();
|
||||
ali = new Ali();*/
|
||||
uc = new UC();
|
||||
/* ali = new Ali();*/
|
||||
tianYi = new TianYi();
|
||||
yiDongYun = new YiDongYun();
|
||||
baiDuPan = new BaiDuPan();
|
||||
pan123 = new Pan123();
|
||||
boolean first = Objects.nonNull(ext);
|
||||
quark.init(context, first && ext.has("cookie") ? ext.get("cookie").getAsString() : "");
|
||||
/* uc.init(context, first && ext.has("uccookie") ? ext.get("uccookie").getAsString() : "");
|
||||
ali.init(context, first && ext.has("token") ? ext.get("token").getAsString() : "");*/
|
||||
uc.init(context, first && ext.has("uccookie") ? ext.get("uccookie").getAsString() : "");
|
||||
/* ali.init(context, first && ext.has("token") ? ext.get("token").getAsString() : "");*/
|
||||
tianYi.init(context, first && ext.has("tianyicookie") ? ext.get("tianyicookie").getAsString() : "");
|
||||
yiDongYun.init(context, "");
|
||||
baiDuPan.init(context, "");
|
||||
|
|
@ -57,9 +58,9 @@ public class Cloud extends Spider {
|
|||
} else */
|
||||
if (shareUrl.get(0).matches(Util.patternQuark)) {
|
||||
return quark.detailContent(shareUrl);
|
||||
} /*else if (shareUrl.get(0).matches(Util.patternUC)) {
|
||||
} else if (shareUrl.get(0).matches(Util.patternUC)) {
|
||||
return uc.detailContent(shareUrl);
|
||||
} */ else if (shareUrl.get(0).contains(URL_CONTAIN)) {
|
||||
} else if (shareUrl.get(0).contains(URL_CONTAIN)) {
|
||||
return tianYi.detailContent(shareUrl);
|
||||
} else if (shareUrl.get(0).contains(YiDongYun.URL_START)) {
|
||||
return yiDongYun.detailContent(shareUrl);
|
||||
|
|
@ -78,9 +79,9 @@ public class Cloud extends Spider {
|
|||
|
||||
if (flag.contains("quark")) {
|
||||
return quark.playerContent(flag, id, vipFlags);
|
||||
} /*else if (flag.contains("uc")) {
|
||||
} else if (flag.contains("uc")) {
|
||||
return uc.playerContent(flag, id, vipFlags);
|
||||
} */ else if (flag.contains("天意")) {
|
||||
} else if (flag.contains("天意")) {
|
||||
return tianYi.playerContent(flag, id, vipFlags);
|
||||
} else if (flag.contains("移动")) {
|
||||
return yiDongYun.playerContent(flag, id, vipFlags);
|
||||
|
|
@ -95,13 +96,14 @@ public class Cloud extends Spider {
|
|||
}
|
||||
|
||||
protected String detailContentVodPlayFrom(List<String> shareLinks) {
|
||||
Collections.sort(shareLinks);
|
||||
List<String> from = new ArrayList<>();
|
||||
int i = 0;
|
||||
for (String shareLink : shareLinks) {
|
||||
i++;
|
||||
/*if (shareLink.matches(Util.patternUC)) {
|
||||
if (shareLink.matches(Util.patternUC)) {
|
||||
from.add(uc.detailContentVodPlayFrom(List.of(shareLink), i));
|
||||
} else*/
|
||||
} else
|
||||
if (shareLink.matches(Util.patternQuark)) {
|
||||
from.add(quark.detailContentVodPlayFrom(List.of(shareLink), i));
|
||||
} /*else if (shareLink.matches(Util.patternAli)) {
|
||||
|
|
@ -121,11 +123,12 @@ public class Cloud extends Spider {
|
|||
}
|
||||
|
||||
protected String detailContentVodPlayUrl(List<String> shareLinks) throws Exception {
|
||||
Collections.sort(shareLinks);
|
||||
List<String> urls = new ArrayList<>();
|
||||
for (String shareLink : shareLinks) {
|
||||
/* if (shareLink.matches(Util.patternUC)) {
|
||||
if (shareLink.matches(Util.patternUC)) {
|
||||
urls.add(uc.detailContentVodPlayUrl(List.of(shareLink)));
|
||||
} else */
|
||||
} else
|
||||
if (shareLink.matches(Util.patternQuark)) {
|
||||
urls.add(quark.detailContentVodPlayUrl(List.of(shareLink)));
|
||||
}/* else if (shareLink.matches(Util.patternAli)) {
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ public class Quark extends Spider {
|
|||
for (String id : ids) {
|
||||
ShareData shareData = QuarkApi.get().getShareData(id);
|
||||
try {
|
||||
playUrl.add(QuarkApi.get().getVod(shareData).getVodPlayUrl());
|
||||
playUrl.add(QuarkApi.get().getVod(shareData)==null?"":QuarkApi.get().getVod(shareData).getVodPlayUrl());
|
||||
} catch (Exception e) {
|
||||
SpiderDebug.log("获取播放地址出错:" + e.getMessage());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -164,26 +164,61 @@ class SeedHub : Cloud() {
|
|||
val jobs = ArrayList<Job>()
|
||||
|
||||
runBlocking {
|
||||
doc.select("ul.pan-links > li > a")
|
||||
.filter { it.attr("data-link").contains("quark") || it.attr("data-link").contains("baidu") }
|
||||
.slice(IntRange(0, 10)).forEach { element ->
|
||||
val docEle = doc.select("ul.pan-links > li > a")
|
||||
docEle.filter { it.attr("data-link").contains("uc") }.take(2).forEach { element ->
|
||||
|
||||
jobs += CoroutineScope(Dispatchers.IO).launch {
|
||||
var link = siteUrl + element.attr("href")
|
||||
val movieTitle = HttpUrl.parse(link)?.queryParameter("movie_title")
|
||||
link = HttpUrl.parse(link)?.newBuilder()?.removeAllQueryParameters("movie_title")
|
||||
?.addEncodedQueryParameter(
|
||||
"movie_title", URLEncoder.encode(movieTitle)
|
||||
)?.build().toString()
|
||||
val string = OkHttp.string(link, header)
|
||||
val docEle = Jsoup.parse(string)
|
||||
docEle.select("a.direct-pan").attr("href").let {
|
||||
if (it.isNotEmpty()) {
|
||||
shareLinks.add(it)
|
||||
}
|
||||
jobs += CoroutineScope(Dispatchers.IO).launch {
|
||||
var link = siteUrl + element.attr("href")
|
||||
val movieTitle = HttpUrl.parse(link)?.queryParameter("movie_title")
|
||||
link = HttpUrl.parse(link)?.newBuilder()?.removeAllQueryParameters("movie_title")
|
||||
?.addEncodedQueryParameter(
|
||||
"movie_title", URLEncoder.encode(movieTitle)
|
||||
)?.build().toString()
|
||||
val string = OkHttp.string(link, header)
|
||||
val docEle = Jsoup.parse(string)
|
||||
docEle.select("a.direct-pan").attr("href").let {
|
||||
if (it.isNotEmpty()) {
|
||||
shareLinks.add(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
docEle.filter { it.attr("data-link").contains("baidu") }.take(2).forEach { element ->
|
||||
|
||||
jobs += CoroutineScope(Dispatchers.IO).launch {
|
||||
var link = siteUrl + element.attr("href")
|
||||
val movieTitle = HttpUrl.parse(link)?.queryParameter("movie_title")
|
||||
link = HttpUrl.parse(link)?.newBuilder()?.removeAllQueryParameters("movie_title")
|
||||
?.addEncodedQueryParameter(
|
||||
"movie_title", URLEncoder.encode(movieTitle)
|
||||
)?.build().toString()
|
||||
val string = OkHttp.string(link, header)
|
||||
val docEle = Jsoup.parse(string)
|
||||
docEle.select("a.direct-pan").attr("href").let {
|
||||
if (it.isNotEmpty()) {
|
||||
shareLinks.add(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
docEle.filter { it.attr("data-link").contains("quark") }.take(2).forEach { element ->
|
||||
|
||||
jobs += CoroutineScope(Dispatchers.IO).launch {
|
||||
var link = siteUrl + element.attr("href")
|
||||
val movieTitle = HttpUrl.parse(link)?.queryParameter("movie_title")
|
||||
link = HttpUrl.parse(link)?.newBuilder()?.removeAllQueryParameters("movie_title")
|
||||
?.addEncodedQueryParameter(
|
||||
"movie_title", URLEncoder.encode(movieTitle)
|
||||
)?.build().toString()
|
||||
val string = OkHttp.string(link, header)
|
||||
val docEle = Jsoup.parse(string)
|
||||
docEle.select("a.direct-pan").attr("href").let {
|
||||
if (it.isNotEmpty()) {
|
||||
shareLinks.add(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
jobs.joinAll()
|
||||
item.vodPlayUrl = super.detailContentVodPlayUrl(java.util.ArrayList(shareLinks))
|
||||
item.setVodPlayFrom(super.detailContentVodPlayFrom(java.util.ArrayList(shareLinks)))
|
||||
|
|
|
|||
|
|
@ -56,10 +56,10 @@ public class UC extends Spider {
|
|||
|
||||
for (int i = 1; i <= ids.size(); i++) {
|
||||
|
||||
for (String s : UCApi.get().getPlayFormatList()) {
|
||||
/* for (String s : UCApi.get().getPlayFormatList()) {
|
||||
playFrom.add(String.format(Locale.getDefault(), "uc" + s + "#%02d%02d", i, index));
|
||||
|
||||
}
|
||||
}*/
|
||||
playFrom.add("uc原画" + i + index);
|
||||
}
|
||||
return TextUtils.join("$$$", playFrom);
|
||||
|
|
@ -75,7 +75,7 @@ public class UC extends Spider {
|
|||
List<String> playUrl = new ArrayList<>();
|
||||
for (String id : ids) {
|
||||
ShareData shareData = UCApi.get().getShareData(id);
|
||||
playUrl.add(UCApi.get().getVod(shareData).getVodPlayUrl());
|
||||
playUrl.add(UCApi.get().getVod(shareData)==null?"":UCApi.get().getVod(shareData).getVodPlayUrl());
|
||||
}
|
||||
return TextUtils.join("$$$", playUrl);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue