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