From 19533a17aa55fafc70d0a385928e785cb50e1ebc Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期五, 30 七月 2021 02:05:14 +0800 Subject: [PATCH] 爱奇艺视频更新 --- src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java | 128 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 120 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java b/src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java index d23efa9..dc23e1b 100644 --- a/src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java +++ b/src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java @@ -9,6 +9,11 @@ import com.yeshi.buwan.util.video.VideoConstant; import com.yeshi.buwan.vo.AcceptData; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + public class PPTVUtil { public final static int RESOURCE_ID = 25; @@ -38,7 +43,11 @@ case "鍔ㄦ极": videoType = VideoConstant.VIDEO_CATEGORY_DONGMAN; break; + case "灏戝効": + videoType = 312; + break; default: + return null; } return (long) videoType; @@ -51,7 +60,26 @@ * @param series * @return */ - public static VideoInfo convertToVideoInfo(PPTVSeries series) { + public static List<VideoConvertResult> convertToVideoInfo(PPTVSeries series) { + Long videoTypeId = getVideoType(series); + + if (videoTypeId == null) + return null; + + List<VideoConvertResult> list = new ArrayList<>(); + + if (videoTypeId.longValue() == VideoConstant.VIDEO_CATEGORY_DIANYING) { + //PPTV鐢靛奖涓�涓櫨绉慖D涓嬮潰鍙兘鏈夊涓棰戯紙鍥借鐗�/绮よ鐗堬級 + for (PPTVProgram program : series.getSeries()) { + list.add(new VideoConvertResult(convertToVideoInfo(series, program), program.getProgramCode())); + } + } else { + list.add(new VideoConvertResult(convertToVideoInfo(series, null), null)); + } + return list; + } + + private static VideoInfo convertToVideoInfo(PPTVSeries series, PPTVProgram program) { int year = Integer.parseInt(series.getReleaseYear()); int month = 1; int day = 1; @@ -61,14 +89,18 @@ String score = series.getScore(); String tag = ""; - VideoType videoType = new VideoType(getVideoType(series)); + Long videoTypeId = getVideoType(series); + if (videoTypeId == null) + return null; + VideoType videoType = new VideoType(videoTypeId); + //鐢靛奖 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())) { + if (series.getCurrentNum() != null && series.getSeriesCount().trim().equalsIgnoreCase(series.getCurrentNum().trim())) { tag = series.getSeriesCount() + "闆嗗叏"; } else { tag = "鏇存柊鑷�" + series.getCurrentNum() + "闆�"; @@ -80,10 +112,24 @@ } else { tag = series.getPublishTime().split(" ")[0]; } + } else { + if ("1".equalsIgnoreCase(series.getSeriesCount())) { + tag = "璇勫垎锛�" + score; + } else { + if (series.getCurrentNum() != null && series.getSeriesCount().trim().equalsIgnoreCase(series.getCurrentNum().trim())) { + tag = series.getSeriesCount() + "闆嗗叏"; + } else { + if (series.getCurrentNum() != null) + tag = "鏇存柊鑷�" + series.getCurrentNum() + "闆�"; + else { + tag = "鏇存柊鑷�" + series.getSeriesCount() + "闆�"; + } + } + } } - String latestHpicture = series.getSeries().get(series.getSeries().size() - 1).getSubHorCover(); + String latestHpicture = program != null ? program.getSubHorCover() : series.getSeries().get(series.getSeries().size() - 1).getSubHorCover(); long updateTime = System.currentTimeMillis(); @@ -104,7 +150,7 @@ vi.setLatestVpicture(""); vi.setMainActor(mainActor); vi.setMonth(month + ""); - vi.setName(series.getName()); + vi.setName(program != null ? program.getProgramSetTiltle() : series.getName()); vi.setNowNumber(0 + ""); vi.setOrderby("0"); vi.setPicture(series.getCover()); @@ -116,7 +162,7 @@ vi.setWatchCount(0 + ""); vi.setYear(year + ""); vi.setUpdatetime(updateTime + ""); - vi.setVideocount(series.getSeries().size()); + vi.setVideocount(program != null ? 1 : series.getSeries().size()); return vi; } @@ -148,7 +194,7 @@ public static String getPPTVCode(String pptvUid) { if (StringUtil.isNullOrEmpty(pptvUid)) return null; - return AESUtil.encrypt(pptvUid + "#" + System.currentTimeMillis()); + return AESUtil.encrypt(pptvUid + "#" + System.currentTimeMillis()).replace("/", "_").replace("=", "-"); } public static String getUidFromPPTVUid(String pptvUid) { @@ -163,6 +209,7 @@ * @return */ public static PPTVCodeInfo decryptPPTVCode(String code) { + code = code.replace("_", "/").replace("-", "="); String info = AESUtil.decrypt(code); if (StringUtil.isNullOrEmpty(info)) { return null; @@ -186,8 +233,14 @@ * @return */ public static String getPlayUrl(PPTVSeries series, PPTVProgram program) { + return getPlayUrl(series, program.getProgramCode()); + } + + + public static String getPlayUrl(PPTVSeries series, String programCode) { + boolean isMovie = (series.getProgramType() != null && series.getProgramType().contains("鐢靛奖")) || (series.getProgramType2() != null && series.getProgramType2().contains("鐢靛奖")); //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); + return String.format("https://acmd.api.pptv.com/2021/bwysdqmovie_thrid_h5.html?cid=%s&vid=%s&programtype=%s", isMovie ? programCode : series.getSeriesCode(), programCode, isMovie ? 3 : 2); } @@ -196,4 +249,63 @@ public long time; } + public static Set<String> getAvaiableStates() { + Set<String> stateSets = new HashSet<>(); + stateSets.add("add"); + stateSets.add("update"); + return stateSets; + } + + public static boolean isVIPVideo(String free) { + return "1".equalsIgnoreCase((free + "").trim()); + } + + + /** + * 鑾峰彇鍟嗗搧璐拱鎴愬姛鐨勭紦瀛楰ey + * + * @param uid + * @param goodsNo + * @return + */ + public static String getBuyGoodsCacheKey(String uid, String goodsNo) { + return String.format("pptvbuygoods-%s-%s", uid, goodsNo); + } + + + /** + * 鑾峰彇铏氭嫙鐨勮棰慖D + * + * @param cid + * @return + */ + public static String getVisualVideoId(String cid, String vid) { + return "pptv-" + cid + "-" + vid; + } + + /** + * 瑙f瀽infoId + * + * @param videoId + * @return + */ + public static String[] parseCidAndVidFromVisualVideoId(String videoId) { + if (videoId == null) + return null; + if (!videoId.contains("pptv-")) + return null; + return videoId.replace("pptv-", "").trim().split("-"); + } + + public static class VideoConvertResult { + public VideoInfo videoInfo; + public String programCode; + + public VideoConvertResult(VideoInfo videoInfo, String programCode) { + this.videoInfo = videoInfo; + this.programCode = programCode; + } + } + + } -- Gitblit v1.8.0