From 7f147c32f1a9578968900ee2161f52f940bfe1d6 Mon Sep 17 00:00:00 2001 From: gzlinz2 <107169210+gzlinz2@users.noreply.github.com> Date: Sun, 9 Oct 2022 21:47:13 +0800 Subject: [PATCH] Add files via upload --- .../com/github/catvod/spider/Upyunso.java | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 app/src/main/java/com/github/catvod/spider/Upyunso.java diff --git a/app/src/main/java/com/github/catvod/spider/Upyunso.java b/app/src/main/java/com/github/catvod/spider/Upyunso.java new file mode 100644 index 0000000..1229f0b --- /dev/null +++ b/app/src/main/java/com/github/catvod/spider/Upyunso.java @@ -0,0 +1,118 @@ +package com.github.catvod.spider; + +import android.content.Context; +import android.util.Base64; + +import com.github.catvod.crawler.Spider; +import com.github.catvod.utils.okhttp.OkHttpUtil; + +import java.net.URLEncoder; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.jsoup.select.Elements; + + +public class Upyunso extends Spider { + private PushAgent pushAgent; + private static String siteUrl = "https://www.upyunso.com/"; + private static String apiUrl = "https://api.upyunso.com/"; + private static Pattern aliyun = Pattern.compile("(https:\\/\\/www.aliyundrive.com\\/s\\/[^\\\"]+)"); + + @Override + public void init(Context context, String extend) { + super.init(context, extend); + pushAgent = new PushAgent(); + pushAgent.init(context, extend); + } + + @Override + public String detailContent(List list) { + try { + Pattern pattern = aliyun; + if (pattern.matcher(list.get(0)).find()) { + return pushAgent.detailContent(list); + } + String jqurl=(apiUrl+list.get(0)).replace(".html",""); + String jxUrl=new String(Base64.decode(OkHttpUtil.string(jqurl, sHeaders()), Base64.DEFAULT)); + String realUrl= new JSONObject(jxUrl).getJSONObject("result").getString("res_url"); + Matcher matcher = pattern.matcher(realUrl); + if (!matcher.find()) { + return ""; + } + list.set(0, matcher.group(1).replaceAll("\\\\", "")); + return pushAgent.detailContent(list); + } catch (Exception e) { + e.printStackTrace(); + return ""; + } + } + + @Override + public String playerContent(String str, String str2, List list) { + return pushAgent.playerContent(str, str2, list); + } + +// protected static HashMap Headers() { +// HashMap headers = new HashMap<>(); +// headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.62 Safari/537.36"); +// headers.put("origin", "https://www.upyunso.com"); +// return headers; +// } + + protected static HashMap sHeaders() { + HashMap headers = new HashMap<>(); + headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.62 Safari/537.36"); + return headers; + } + + + @Override + public String searchContent(String key, boolean quick) { + try { + JSONObject result = new JSONObject(); + JSONArray videos = new JSONArray(); + String cover = "https://inews.gtimg.com/newsapp_bt/0/13263837859/1000"; + + String searchurl = apiUrl + "search?keyword=" + URLEncoder.encode(key) + "&page=1&s_type=2"; + String content = new String(Base64.decode(OkHttpUtil.string(searchurl, sHeaders()), Base64.DEFAULT)); + JSONArray playList = new JSONObject(content).getJSONObject("result").getJSONArray("items"); + + + for (int i = 0; i < playList.length(); i++) { + JSONArray source = playList.getJSONObject(i).getJSONArray("content"); + for (int j = 0; j < source.length(); j++) { + JSONObject vid = source.getJSONObject(j); + String sourceName = vid.getString("title"); + String sourceUrl = vid.getString("size"); + if (sourceUrl.contains("download.html")) { + JSONObject v = new JSONObject(); + v.put("vod_name", sourceName); + v.put("vod_id", sourceUrl); + v.put("vod_pic", cover); + videos.put(v); + } else + continue; + + } + + } + result.put("list", videos); + return result.toString(); + + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } +} \ No newline at end of file