package com.newvideo.util; import java.io.IOException; import java.net.URLDecoder; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import com.newvideo.dao.BaseDao; import com.newvideo.domain.YSDQVideoUrl; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class YingShiDaQuanUtil { final static String HEADER = "https://dqplayers.duapp.com/"; public static String getVideoIdFromUrl(String url) { Document doc = null; try { doc = Jsoup.connect(url).get(); } catch (IOException e) { e.printStackTrace(); } Elements els = doc.getElementsByTag("script"); for (int i = 0; i < els.size(); i++) { Element el = els.get(i); if (el.toString().contains("var ff_urls")) { String json = el.toString().replace("", "") .replace("var ff_urls='", "").replace("}';", "}"); JSONObject object = JSONObject.fromObject(json); JSONArray array = object.optJSONArray("Data"); for (int j = 0; j < array.size(); j++) { String u = array.optJSONObject(j).optJSONArray("playurls").optJSONArray(0).optString(2); if (url.contains(u)) { return array.optJSONObject(j).optJSONArray("playurls").optJSONArray(0).optString(1); } } break; } } return ""; } public static String getRequestUrl(String vid) { return HEADER + "bshare/bshare.php?v=" + vid; } // 20e0b09415ec public static String getRealUrl(String videoId) { String url = HEADER + "bshare/bshare.php?v=" + videoId; Document doc = null; try { doc = Jsoup.connect(url).get(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Elements els = doc.getElementsByTag("script"); for (int i = 0; i < els.size(); i++) { Element el = els.get(i); if (el.toString().contains("var flashvars")) { String[] sts = el.toString().split(";"); for (String st : sts) { if (st.contains("var flashvars")) { Pattern pattern = Pattern.compile("(?<=\\{)[^\\}]+"); Matcher matcher = pattern.matcher(st); while (matcher.find()) { JSONObject obj =JSONObject.fromObject("{" + matcher.group() + "}"); return URLDecoder.decode(obj.optString("a")).replace("tss=ios", "tss=android"); } break; } } break; } } return ""; } public static String parseUrl(String result) { Document doc = Jsoup.parse(result); Elements els = doc.getElementsByTag("script"); for (int i = 0; i < els.size(); i++) { Element el = els.get(i); if (el.toString().contains("var flashvars")) { String[] sts = el.toString().split(";"); for (String st : sts) { if (st.contains("var flashvars")) { Pattern pattern = Pattern.compile("(?<=\\{)[^\\}]+"); Matcher matcher = pattern.matcher(st); while (matcher.find()) { JSONObject obj = JSONObject.fromObject("{" + matcher.group() + "}"); return URLDecoder.decode(obj.optString("a")).replace("tss=ios", "tss=android"); } break; } } break; } } return ""; } public static YSDQVideoUrl getYSDQVideoUrl(String detailid) { BaseDao dao = new BaseDao(); List list = dao.list("from YSDQVideoUrl y where y.detailId=?", new String[] { detailid }); if (list != null && list.size() > 0) { return list.get(0); } return null; } public static void updateYSDQVideoUrl(String detailid, String url) { BaseDao dao = new BaseDao(); List list = dao.list("from YSDQVideoUrl y where y.detailId=?", new String[] { detailid }); if (list != null && list.size() > 0) { YSDQVideoUrl ys = list.get(0); ys.setUrl(url); ys.setUpdatetime(System.currentTimeMillis() + ""); dao.update(ys); } else { YSDQVideoUrl ys = new YSDQVideoUrl(); ys.setDetailId(detailid); ys.setUpdatetime(System.currentTimeMillis() + ""); ys.setUrl(url); dao.create(ys); } } }