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);
}
}
}