package com.yeshi.buwan.pptv;
|
|
import com.yeshi.buwan.domain.VideoInfo;
|
import com.yeshi.buwan.domain.VideoType;
|
import com.yeshi.buwan.pptv.entity.PPTVProgram;
|
import com.yeshi.buwan.pptv.entity.PPTVSeries;
|
import com.yeshi.buwan.util.AESUtil;
|
import com.yeshi.buwan.util.StringUtil;
|
import com.yeshi.buwan.util.video.VideoConstant;
|
import com.yeshi.buwan.vo.AcceptData;
|
|
public class PPTVUtil {
|
|
public final static int RESOURCE_ID = 25;
|
|
public final static int PLAY_NONE = 0;// 不能播放
|
public final static int PLAY_HTML = 1;// 跳转移动端网页播放
|
public final static int PLAY_SDK = 2;// 内嵌SDK播放
|
|
|
private static Long getVideoType(PPTVSeries series) {
|
String type = series.getProgramType();
|
if (type.contains("VIP")) {
|
type = series.getProgramType2();
|
}
|
|
int videoType = 0;
|
switch (type) {
|
case "电影":
|
videoType = VideoConstant.VIDEO_CATEGORY_DIANYING;
|
break;
|
case "电视剧":
|
videoType = VideoConstant.VIDEO_CATEGORY_DIANSHIJU;
|
break;
|
case "综艺":
|
videoType = VideoConstant.VIDEO_CATEGORY_ZONGYI;
|
break;
|
case "动漫":
|
videoType = VideoConstant.VIDEO_CATEGORY_DONGMAN;
|
break;
|
default:
|
}
|
|
return (long) videoType;
|
}
|
|
|
/**
|
* 视频转换
|
*
|
* @param series
|
* @return
|
*/
|
public static VideoInfo convertToVideoInfo(PPTVSeries series) {
|
int year = Integer.parseInt(series.getReleaseYear());
|
int month = 1;
|
int day = 1;
|
String director = series.getDirector();
|
String mainActor = series.getActor();
|
|
String score = series.getScore();
|
|
String tag = "";
|
VideoType videoType = new VideoType(getVideoType(series));
|
|
//电影
|
if (videoType.getId() == VideoConstant.VIDEO_CATEGORY_DIANYING) {
|
tag = "评分:" + score;
|
} else if (videoType.getId() == VideoConstant.VIDEO_CATEGORY_DIANSHIJU || videoType.getId() == VideoConstant.VIDEO_CATEGORY_DONGMAN) {
|
//电视剧,动漫
|
if (series.getSeriesCount().trim().equalsIgnoreCase(series.getCurrentNum().trim())) {
|
tag = series.getSeriesCount() + "集全";
|
} else {
|
tag = "更新至" + series.getCurrentNum() + "集";
|
}
|
} else if (videoType.getId() == VideoConstant.VIDEO_CATEGORY_ZONGYI) {
|
//综艺
|
if (!StringUtil.isNullOrEmpty(series.getCurrentNum())) {
|
tag = series.getCurrentNum().replace("期", "");
|
} else {
|
tag = series.getPublishTime().split(" ")[0];
|
}
|
}
|
|
|
String latestHpicture = series.getSeries().get(series.getSeries().size() - 1).getSubHorCover();
|
|
long updateTime = System.currentTimeMillis();
|
|
VideoInfo vi = new VideoInfo();
|
vi.setVideoType(videoType);
|
vi.setArea(series.getCountry());
|
vi.setBaseurl("");
|
vi.setCanSave(false);
|
vi.setCommentCount(0);
|
vi.setContentType(1);
|
vi.setCreatetime(System.currentTimeMillis());
|
vi.setDay(day + "");
|
vi.setDirector(director);
|
vi.setFocus("");
|
vi.setHpicture(series.getHorCover());
|
vi.setIntroduction(series.getDescription());
|
vi.setLatestHpicture(latestHpicture);
|
vi.setLatestVpicture("");
|
vi.setMainActor(mainActor);
|
vi.setMonth(month + "");
|
vi.setName(series.getName());
|
vi.setNowNumber(0 + "");
|
vi.setOrderby("0");
|
vi.setPicture(series.getCover());
|
vi.setScore(score);
|
vi.setShare("0");
|
vi.setShow(1 + "");
|
vi.setTag(tag);
|
vi.setVpicture(series.getCover());
|
vi.setWatchCount(0 + "");
|
vi.setYear(year + "");
|
vi.setUpdatetime(updateTime + "");
|
vi.setVideocount(series.getSeries().size());
|
return vi;
|
}
|
|
|
public static int getPlayType(AcceptData acceptData, PPTVProgram pptvProgram) {
|
if (!pptvProgram.getStatus().equalsIgnoreCase("del")) {
|
return PLAY_SDK;
|
} else {
|
return PLAY_NONE;
|
}
|
}
|
|
/**
|
* 获取pptv的用户ID
|
*
|
* @param uid
|
* @return
|
*/
|
public static String getPPTVUid(String uid) {
|
return "buwan_" + uid;
|
}
|
|
/**
|
* 获取pptvcode
|
*
|
* @param pptvUid
|
* @return
|
*/
|
public static String getPPTVCode(String pptvUid) {
|
if (StringUtil.isNullOrEmpty(pptvUid))
|
return null;
|
return AESUtil.encrypt(pptvUid + "#" + System.currentTimeMillis());
|
}
|
|
public static String getUidFromPPTVUid(String pptvUid) {
|
return pptvUid.split("_")[1];
|
}
|
|
|
/**
|
* 解密PPTVCode
|
*
|
* @param code
|
* @return
|
*/
|
public static PPTVCodeInfo decryptPPTVCode(String code) {
|
String info = AESUtil.decrypt(code);
|
if (StringUtil.isNullOrEmpty(info)) {
|
return null;
|
} else {
|
String[] sts = info.split("#");
|
if (sts.length != 2)
|
return null;
|
PPTVCodeInfo codeInfo = new PPTVCodeInfo();
|
codeInfo.pptvUid = sts[0];
|
codeInfo.time = Long.parseLong(sts[1]);
|
return codeInfo;
|
}
|
}
|
|
|
/**
|
* 获取播放链接
|
*
|
* @param series
|
* @param program
|
* @return
|
*/
|
public static String getPlayUrl(PPTVSeries series, PPTVProgram program) {
|
//programtype 电影-3 其他-2
|
return String.format("https://acmd.api.pptv.com/2021/bwysdqmovie_thrid_h5.html?cid=%s&vid=%s&programtype=%s", series.getSeriesCode(), program.getProgramCode(), series.getProgramType().contains("电影") ? 3 : 2);
|
}
|
|
|
public static class PPTVCodeInfo {
|
public String pptvUid;
|
public long time;
|
}
|
|
}
|