pull/89/head
qlql765 1 year ago
parent 7cf5c75b4f
commit f9bd3047b5
  1. 15
      app/src/main/java/com/github/catvod/bean/uvod/Data.java
  2. 42
      app/src/main/java/com/github/catvod/spider/Uvod.java
  3. BIN
      jar/custom_spider.jar
  4. 2
      jar/custom_spider.jar.md5

@ -152,17 +152,12 @@ public class Data {
return TextUtils.isEmpty(symbol) ? "" : symbol;
}
public int getMaxQuality() {
List<Integer> fixedArray = Arrays.asList(4, 3, 2, 1);
int maxQuality = -1;
for (int quality : qualities) {
if (fixedArray.contains(quality)) {
if (quality > maxQuality) {
maxQuality = quality;
}
}
public List<Integer> getQualities() {
if (qualities == null || qualities.isEmpty()) {
return Collections.emptyList();
}
return maxQuality;
Collections.sort(qualities, Collections.reverseOrder());
return qualities;
}
}

@ -139,12 +139,14 @@ public class Uvod extends Spider {
Data data = Data.objectFrom(decryptData);
StringBuilder vod_play_url = new StringBuilder();
List<Data.VideoFragmentList> videoFragmentList = data.getVideoFragmentList();
List<Integer> acceptQuality = new ArrayList<>();
for (int j = 0; j < videoFragmentList.size(); j++) {
Data.VideoFragmentList videolist = videoFragmentList.get(j);
String name = videolist.getSymbol();
String nid = videolist.getId();
String quality = String.valueOf(videolist.getMaxQuality());
nid = ids.get(0) + "|" + nid + "|" + quality;
List<Integer> Qualities = videolist.getQualities();
nid = ids.get(0) + "|" + nid + "|" + Qualities;
vod_play_url.append(name).append("$").append(nid);
boolean notLastEpisode = j < videoFragmentList.size() - 1;
vod_play_url.append(notLastEpisode ? "#" : "$$$");
@ -183,14 +185,32 @@ public class Uvod extends Spider {
String[] item = id.split("\\|");
String tid = item[0];
String nid = item[1];
String quality = item[2];
String param = String.format("{\"video_id\":\"%s\",\"video_fragment_id\":%s,\"quality\":%s,\"seek\":null}", tid, nid, quality);
String encryptData = encrypt(param);
String content = OkHttp.post(play, encryptData, getHeader(play + "|" + tid + "|" + nid + "|" + quality)).getBody();
String decryptData = decrypt(content);
Data data = Data.objectFrom(decryptData);
Data.Video video = data.getVideo();
String realUrl = video.getUrl();
return Result.get().url(realUrl).header(playHeader()).string();
String[] quality = item[2].replaceAll("[\\[\\]]", "").split(",");
List<String> url = new ArrayList<>();
for (int i = 0; i < quality.length; i++) {
String qualityValue = quality[i].trim();
switch (qualityValue) {
case "4":
url.add("1080p");
break;
case "3":
url.add("720p");
break;
case "1":
url.add("360p");
break;
default:
url.add(qualityValue);
break;
}
String param = String.format("{\"video_id\":\"%s\",\"video_fragment_id\":%s,\"quality\":%s,\"seek\":null}", tid, nid, quality[i].trim());
String encryptData = encrypt(param);
String content = OkHttp.post(play, encryptData, getHeader(play + "|" + tid + "|" + nid + "|" + quality[i].trim())).getBody();
String decryptData = decrypt(content);
Data data = Data.objectFrom(decryptData);
Data.Video video = data.getVideo();
url.add(video.getUrl());
}
return Result.get().url(url).header(playHeader()).string();
}
}

Binary file not shown.

@ -1 +1 @@
9a95efb77b23f6b64d96d25948fd55fb
f07fdfd86e4a8eb8198f9b2539c015d1

Loading…
Cancel
Save