1个文件已删除
85 文件已重命名
141个文件已修改
8个文件已添加
| | |
| | | package com.yeshi.buwan.controller; |
| | | |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.util.AESUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.util.log.LoggerUtil; |
| | | import org.json.JSONObject; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | |
| | | @Controller |
| | | @RequestMapping("pptv") |
| | |
| | | package com.yeshi.buwan.controller; |
| | | |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.vip.OrderRecord; |
| | | import com.yeshi.buwan.exception.PPTVException; |
| | | import com.yeshi.buwan.exception.vip.VIPException; |
| | | import com.yeshi.buwan.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.service.imp.DetailSystemConfigService; |
| | | import com.yeshi.buwan.service.imp.SearchService; |
| | | import com.yeshi.buwan.service.inter.order.OrderService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPService; |
| | | import com.yeshi.buwan.util.JsonUtilV2; |
| | | import net.sf.json.JSONObject; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Controller; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.PrintWriter; |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | | @Controller |
| | |
| | | |
| | | @RequestMapping("searchAlbum") |
| | | public void searchAlbum(String key, PrintWriter out) { |
| | | SearchService.SearchResult result = searchService.searchAlbum(0, key, 1, 20); |
| | | SearchService.SearchResult result = searchService.searchAlbum(0, key, null,1, 20); |
| | | out.print(JsonUtil.loadTrueResult(result)); |
| | | } |
| | | |
| | |
| | | |
| | | import com.yeshi.buwan.service.inter.recommend.HomeVideoService; |
| | | import com.yeshi.buwan.util.*; |
| | | import com.yeshi.buwan.util.video.VideoUtil; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | |
| | |
| | | hv.setPicture(pictureStr[i]); |
| | | hv.setType(new HomeType(hometypeid + "")); |
| | | hv.setVideoId(videoStr[i]); |
| | | hv.setFromType(0); |
| | | hv.setFromType(VideoUtil.getVideoFromType(hv.getVideoId())); |
| | | hv.setBigPicture(false); |
| | | } |
| | | |
| | |
| | | import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial; |
| | | import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService; |
| | | import com.yeshi.buwan.service.inter.recommend.HomeVideoService; |
| | | import com.yeshi.buwan.util.NumberUtil; |
| | | import com.yeshi.buwan.util.SystemUtil; |
| | | import com.yeshi.buwan.util.video.VideoUtil; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | |
| | |
| | | hv.setType(new HomeType(ht)); |
| | | hv.setVideoId(vid); |
| | | hv.setBigPicture(false); |
| | | hv.setFromType(VideoUtil.getVideoFromType(hv.getVideoId())); |
| | | list.add(hv); |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | @RequestMapping(value = "/updatehomevideo", method = RequestMethod.POST) |
| | | public void updateHomeVideo(long id, String tag, String picture, String orderby,Boolean bigPicture, PrintWriter out) { |
| | | public void updateHomeVideo(long id, String tag, String picture, String orderby, Boolean bigPicture, PrintWriter out) { |
| | | HomeVideo hv = homeTypeService.getHomeVideoById(id + ""); |
| | | if (hv == null) { |
| | | JSONObject object = new JSONObject(); |
| | |
| | | private SystemService systemService; |
| | | |
| | | @RequestMapping(value = "/getspeciallist", method = RequestMethod.POST) |
| | | public void getSpecialList(PrintWriter out) { |
| | | List<Special> list = specialService.getSpecialList(); |
| | | public void getSpecialList(HttpSession session, PrintWriter out) { |
| | | List<Special> list = specialService.getSpecialListBySystem(SystemUtil.getAdminSelectedSystemId(session)); |
| | | JSONArray array = new JSONArray(); |
| | | if (list != null) |
| | | for (Special special : list) { |
| | |
| | | import com.google.common.base.Function; |
| | | import com.google.common.collect.Maps; |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.buwan.domain.HomeVideo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.solr.SolrAlbumVideo; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.domain.video.VideoInfoExtra; |
| | | import com.yeshi.buwan.dto.search.SolrResultDTO; |
| | | import com.yeshi.buwan.dto.search.SolrShortVideoSearchFilter; |
| | | import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.exception.video.IqiyiVideoSolrException; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.service.imp.VideoResourceService; |
| | | import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service; |
| | | import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; |
| | | import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; |
| | | import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.util.Constant; |
| | | import com.yeshi.buwan.vo.video.VideoAdminInfoVO; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | | |
| | | import com.google.gson.GsonBuilder; |
| | | import com.yeshi.buwan.acFun.AcFunUtil; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.service.imp.ClassService; |
| | | import com.yeshi.buwan.service.imp.ResourceVideoService; |
| | | import com.yeshi.buwan.service.imp.VideoManager; |
| | | import com.yeshi.buwan.util.JsonUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | |
| | | @Resource |
| | | private ClassService classService; |
| | | |
| | | @Resource |
| | | private ResourceVideoService resourceVideoService; |
| | | |
| | | @Resource |
| | | private VideoResourceService videoResourceService; |
| | |
| | | @Resource |
| | | private IqiyiUtil iqiyiUtil; |
| | | |
| | | @Resource |
| | | private AcFunUtil acFunUtil; |
| | | |
| | | @Resource |
| | | private ThreadPoolTaskExecutor taskExecutor; |
| | |
| | | private SolrAlbumVideoDataManager solrAlbumDataManager; |
| | | |
| | | @Resource |
| | | private SolrInternetSearchVideoDataManager solrInternetSearchVideoDataManager; |
| | | |
| | | @Resource |
| | | private SolrShortVideoDataManager solrShortVideoDataManager; |
| | | |
| | | |
| | | @Resource |
| | | private VideoInfoExtraService videoInfoExtraService; |
| | | |
| | | @Resource |
| | | private Iqiyi2Service iqiyi2Service; |
| | | |
| | | @Resource |
| | | private IqiyiUtil2 iqiyiUtil2; |
| | | |
| | | @RequestMapping(value = "/changevideoshow", method = RequestMethod.POST) |
| | | public void changeVideoShow(String id, int show, PrintWriter out) { |
| | |
| | | } |
| | | |
| | | @RequestMapping(value = "/videolist", method = RequestMethod.POST) |
| | | public void videoList(int videotype, int page, String key, String type, String resourceIds, int contenttype, String freeType, String area, PrintWriter out) { |
| | | public void videoList(int videotype, int page, String key, String type, String resourceIds, int fromtype, int contenttype, String freeType, String area, PrintWriter out) { |
| | | |
| | | if (StringUtil.isNullOrEmpty(type)) { |
| | | type = "name"; |
| | |
| | | for (VideoResource vr : resourceList) { |
| | | resourceMap.put(Long.parseLong(vr.getId()), vr.getName()); |
| | | } |
| | | if (fromtype == HomeVideo.FROM_TYPE_LOCAL) { |
| | | SolrResultDTO dto = solrAlbumDataManager.find(filter, page, Constant.pageCount); |
| | | if (dto.getVideoList() != null) |
| | | for (SolrAlbumVideo videoInfo : (List<SolrAlbumVideo>) dto.getVideoList()) |
| | | voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap)); |
| | | count = dto.getTotalCount(); |
| | | } else if (fromtype == HomeVideo.FROM_TYPE_INTERNET) { |
| | | SolrResultDTO dto = solrInternetSearchVideoDataManager.find(filter, page, Constant.pageCount); |
| | | if (dto.getVideoList() != null) |
| | | for (InternetSearchVideo videoInfo : (List<InternetSearchVideo>) dto.getVideoList()) |
| | | voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap)); |
| | | count = dto.getTotalCount(); |
| | | } else if (fromtype == HomeVideo.FROM_TYPE_SHORT) { |
| | | SolrShortVideoSearchFilter shortFilter = new SolrShortVideoSearchFilter(); |
| | | shortFilter.setRootVideoType(filter.getVideoType()); |
| | | if (!StringUtil.isNullOrEmpty(key)) { |
| | | String[] keys = key.split(" "); |
| | | if (!StringUtil.isNullOrEmpty(keys[0])) |
| | | shortFilter.setTag(keys[0].trim()); |
| | | if (keys.length > 1) { |
| | | shortFilter.setKey(key.substring(key.indexOf(keys[0])).trim()); |
| | | } |
| | | } |
| | | |
| | | SolrResultDTO dto = solrAlbumDataManager.find(filter, page, Constant.pageCount); |
| | | if (dto.getVideoList() != null) |
| | | for (SolrAlbumVideo videoInfo : (List<SolrAlbumVideo>) dto.getVideoList()) |
| | | voList.add(VideoAdminInfoVO.create(videoInfo,resourceMap)); |
| | | count = dto.getTotalCount(); |
| | | |
| | | if (!StringUtil.isNullOrEmpty(filter.getArea())) { |
| | | shortFilter.setAreas(Arrays.asList(new String[]{filter.getArea()})); |
| | | //某些短视频分类为日韩 |
| | | if (filter.getArea().equalsIgnoreCase("韩国")) { |
| | | shortFilter.getAreas().add("日韩"); |
| | | } |
| | | } |
| | | shortFilter.setFuzzy(true); |
| | | SolrResultDTO dto = solrShortVideoDataManager.find(shortFilter, page, Constant.pageCount); |
| | | if (dto.getVideoList() != null) |
| | | for (SolrShortVideo videoInfo : (List<SolrShortVideo>) dto.getVideoList()) |
| | | voList.add(VideoAdminInfoVO.create(videoInfo, resourceMap)); |
| | | count = dto.getTotalCount(); |
| | | } |
| | | } else { |
| | | list = classService.getTypeVideoListAdmin(videotype == 0 ? "" : videotype + "", page, key, |
| | | contenttype); |
| | |
| | | if (StringUtil.isNullOrEmpty(aid)) { |
| | | out.print(JsonUtil.loadFalseAdmin("未能获取到专辑")); |
| | | } else { |
| | | iqiyiUtil.updateAlbum(aid); |
| | | try { |
| | | iqiyi2Service.validAlbumSolrState(Long.parseLong(aid)); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid),false); |
| | | } catch (IqiyiVideoSolrException e) { |
| | | if (e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_SAVE || |
| | | e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_EXIST || e.getCode() == IqiyiVideoSolrException.CODE_ALBUM_NOT_ADD_TO_VIDEO) { |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid),false); |
| | | } else { |
| | | out.print(JsonUtil.loadFalseAdmin(e.getMsg())); |
| | | return; |
| | | } |
| | | } |
| | | out.print(JsonUtil.loadTrueAdmin("专辑更新成功")); |
| | | } |
| | | } |
| | |
| | | import com.yeshi.buwan.exception.order.PayException; |
| | | import com.yeshi.buwan.exception.vip.VIPException; |
| | | import com.yeshi.buwan.exception.vip.VideoBuyRecordException; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.inter.LoginUserService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.service.inter.order.OrderService; |
| | |
| | | import com.yeshi.buwan.service.inter.vip.VIPPriceService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPService; |
| | | import com.yeshi.buwan.util.*; |
| | | import com.yeshi.buwan.util.user.VipUtil; |
| | | import com.yeshi.buwan.util.vip.VIPOrderUtil; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import com.yeshi.buwan.vo.client.user.UserInfoVO; |
| | | import com.yeshi.buwan.vo.order.OrderInfoVO; |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.UUID; |
| | | |
| | | @Controller |
| | | @RequestMapping("api/v2/vip") |
| | |
| | | import com.yeshi.buwan.domain.vip.OrderRecord; |
| | | import com.yeshi.buwan.domain.vip.OrderType; |
| | | import com.yeshi.buwan.dto.order.PPTVVideoPrice; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.service.inter.LoginUserService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.service.inter.order.OrderService; |
| | |
| | | import com.yeshi.buwan.service.inter.vip.VIPService; |
| | | import com.yeshi.buwan.service.manager.GoldCornManager; |
| | | import com.yeshi.buwan.util.JsonUtilV2; |
| | | import com.yeshi.buwan.util.ThreadUtil; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import net.sf.json.JSONObject; |
| | | import org.slf4j.Logger; |
| | |
| | | package com.yeshi.buwan.controller.api; |
| | | |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.sohu.SoHuUtil; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestMethod; |
| | |
| | | import com.yeshi.buwan.domain.video.VideoWatchHistory; |
| | | import com.yeshi.buwan.domain.vip.VideoBuyRecord; |
| | | import com.yeshi.buwan.exception.ParamsException; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeriesProgramMap; |
| | | import com.yeshi.buwan.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.inter.LoginUserService; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap; |
| | | import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVPlayProcessRecordService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.service.inter.push.PushDeviceTokenService; |
| | | import com.yeshi.buwan.service.inter.system.SystemConfigService; |
| | | import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPService; |
| | |
| | | import com.yeshi.buwan.domain.system.DetailSystemConfig; |
| | | import com.yeshi.buwan.dto.search.SolrResultDTO; |
| | | import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.imp.recommend.CategoryRecommendVideoService; |
| | | import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService; |
| | |
| | | import com.yeshi.buwan.domain.system.DetailSystemConfig; |
| | | import com.yeshi.buwan.dto.search.SolrResultDTO; |
| | | import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; |
| | | import com.yeshi.buwan.util.Constant; |
| | |
| | | package com.yeshi.buwan.controller.parser; |
| | | |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.buwan.domain.*; |
| | | import com.yeshi.buwan.domain.jump.JumpDetail; |
| | | import com.yeshi.buwan.domain.jump.JumpTypeEnum; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.domain.recommend.HomeRecommendSpecial; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.domain.special.SearchSpecialPositionMap; |
| | | import com.yeshi.buwan.domain.system.DetailSystemConfig; |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.system.DetailSystemConfig; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.domain.video.VideoWatchHistory; |
| | | import com.yeshi.buwan.dto.log.BaseLog; |
| | | import com.yeshi.buwan.dto.statistic.video.VideoDetailStatisticData; |
| | | import com.yeshi.buwan.mogotv.MogoTVUtil; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.videos.mogotv.MogoTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.inter.ad.DeviceAdStrategyService; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.service.inter.juhe.YouKuService; |
| | | import com.yeshi.buwan.service.inter.recommend.HomeRecommendSpecialService; |
| | | import com.yeshi.buwan.service.inter.recommend.HomeVideoService; |
| | | import com.yeshi.buwan.service.inter.search.SearchSpecialPositionMapService; |
| | | import com.yeshi.buwan.service.inter.video.VideoWatchHistoryService; |
| | | import com.yeshi.buwan.service.manager.VideoPlayStatisticManager; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.videos.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.util.*; |
| | | import com.yeshi.buwan.util.JuHe.VideoResourceUtil; |
| | | import com.yeshi.buwan.util.annotation.RequireUid; |
| | | import com.yeshi.buwan.util.factory.VideoInfoFactory; |
| | | import com.yeshi.buwan.util.log.LoggerUtil; |
| | | import com.yeshi.buwan.util.log.UserActiveLogFactory; |
| | | import com.yeshi.buwan.util.log.VideoLogFactory; |
| | | import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import com.yeshi.buwan.util.video.VideoDetailUtil; |
| | | import com.yeshi.buwan.util.video.VideoUtil; |
| | | import com.yeshi.buwan.util.zhibo.MeiNvZhiBoUtil; |
| | | import com.yeshi.buwan.videos.bilibili.BilibiliUtil; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import com.yeshi.buwan.vo.video.VideoDetailVO; |
| | | import com.yeshi.buwan.youku.YouKuUtil; |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.YouKuUtil; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | import org.apache.commons.httpclient.HttpClient; |
| | | import org.apache.commons.httpclient.HttpException; |
| | | import org.apache.commons.httpclient.methods.GetMethod; |
| | |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Controller; |
| | | |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.util.JuHe.VideoResourceUtil; |
| | | import com.yeshi.buwan.util.video.VideoDetailUtil; |
| | | import com.yeshi.buwan.util.zhibo.MeiNvZhiBoUtil; |
| | | |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.IOException; |
| | | import java.io.PrintWriter; |
| | | import java.util.*; |
| | | |
| | | @Controller |
| | | public class HomeParser { |
| | |
| | | homeType.setCount((int) videoCount); |
| | | List<HomeVideo> tempHomeVideoList = new ArrayList<>(); |
| | | tempHomeVideoList.addAll(homeVideoList); |
| | | while (tempHomeVideoList != null && tempHomeVideoList.size() > 0 && (tempHomeVideoList.size() - bigPictureCount) % homeType.getColumns() != 0) |
| | | while (tempHomeVideoList != null && tempHomeVideoList.size() > 0 && (tempHomeVideoList.size() - bigPictureCount) % homeType.getColumns() != 0 && homeType.getColumns() < 4) |
| | | tempHomeVideoList.remove(tempHomeVideoList.size() - 1); |
| | | |
| | | homeType.setHomeVideoList(tempHomeVideoList); |
| | |
| | | JSONObject obj = new JSONObject(); |
| | | |
| | | if (VersionUtil.isGraterThan390(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), loginUid), null, createVideoDetailSessionId(acceptData, loginUid, info.getName(), videoId, resourceId))), array.toString(), |
| | | out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), acceptData.getVersion(), acceptData.getChannel(), loginUid), null, createVideoDetailSessionId(acceptData, loginUid, info.getName(), videoId, resourceId))), array.toString(), |
| | | obj.toString())); |
| | | } else { |
| | | out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(Utils.convertVideo(info)), array.toString(), |
| | |
| | | if (!NumberUtil.isNumeric(videoId)) { |
| | | String[] cidVid = PPTVUtil.parseCidAndVidFromVisualVideoId(videoId); |
| | | if (cidVid == null) { |
| | | int fromType = VideoUtil.getVideoFromType(videoId); |
| | | //短视频 |
| | | if (ShortVideoUtil.isShortVideoId(videoId)) { |
| | | if (fromType == HomeVideo.FROM_TYPE_SHORT) { |
| | | getVideoDetailForShortVideo(acceptData, videoId, request, out); |
| | | return; |
| | | } else if (fromType == HomeVideo.FROM_TYPE_INTERNET) { |
| | | getVideoDetailForInternetSearch(acceptData, videoId, request, out); |
| | | return; |
| | | } |
| | | getVideoDetailForInternetSearch(acceptData, videoId, request, out); |
| | | return; |
| | | } |
| | | String cid = cidVid[0]; |
| | | String vid = cidVid[1]; |
| | |
| | | if (defaultVideoResource != null) { |
| | | resourceId = defaultVideoResource.getId(); |
| | | } |
| | | //视频没有来源 |
| | | if (StringUtil.isNullOrEmpty(resourceId)) { |
| | | CMQManager.getInstance().addVideoResourceDeleteMsg(videoId); |
| | | out.print(JsonUtil.loadFalseJson("视频已下线")); |
| | | return; |
| | | } |
| | | } |
| | | |
| | | ThreadUtil.run(new Runnable() { |
| | |
| | | |
| | | |
| | | //PPTV网页播放 |
| | | if (resourceId != null && Integer.parseInt(resourceId) == PPTVUtil.RESOURCE_ID) { |
| | | if (!StringUtil.isNullOrEmpty(resourceId) && Integer.parseInt(resourceId) == PPTVUtil.RESOURCE_ID) { |
| | | JSONObject data = new JSONObject(); |
| | | VideoPPTVMap map = pptvService.getVideoPPTVMapByVideoId(videoId); |
| | | int p = 0; |
| | |
| | | if (VersionUtil.isGraterThan390(acceptData.getPlatform(), acceptData.getVersion())) { |
| | | String sessionId = createVideoDetailSessionId(acceptData, loginUid, info.getName(), videoId, resourceId); |
| | | |
| | | out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), loginUid, videoId, from), attention, sessionId)), array.toString(), |
| | | out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(new VideoDetailVO(Utils.convertVideo(info), deviceAdStrategyService.getVideoDetailAdStrategy(acceptData.getUtdId(), acceptData.getDetailSystem().getId(), acceptData.getVersion(), acceptData.getChannel(), loginUid, videoId, from), attention, sessionId)), array.toString(), |
| | | obj.toString())); |
| | | } else { |
| | | out.print(JsonUtil.loadTrueJson(StringUtil.outPutResultJson(Utils.convertVideo(info)), array.toString(), |
| | |
| | | import com.yeshi.buwan.domain.recommend.AdRecommendRight; |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.system.SystemInfo; |
| | | import com.yeshi.buwan.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.videos.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.imp.recommend.AdRecommendRightService; |
| | | import com.yeshi.buwan.service.inter.jump.JumpDetailService; |
| | |
| | | out.print(JsonUtil.loadFalseJson("页码错误")); |
| | | return; |
| | | } |
| | | int pageIndex = Integer.parseInt(page); |
| | | switch (key) { |
| | | case "3#hanju-bagua": |
| | | pageIndex++; |
| | | break; |
| | | case "3#hanju-news": |
| | | pageIndex += 2; |
| | | break; |
| | | case "3#hanju-stars": |
| | | pageIndex += 3; |
| | | break; |
| | | case "3#hanju-hots": |
| | | pageIndex += 4; |
| | | |
| | | case "3#hanju-music": |
| | | pageIndex += 5; |
| | | break; |
| | | } |
| | | |
| | | List<VideoInfo> videoInfoList = new ArrayList<>(); |
| | | |
| | | int pageSize = Constant.pageCount; |
| | | boolean hasNextPage = false; |
| | | if (searchSpecial.getAlbumQuery() != null) { |
| | | SolrResultDTO solrResultDTO = solrAlbumVideoDataManager.find(searchSpecial.getAlbumQuery(), Integer.parseInt(page), pageSize); |
| | | SolrResultDTO solrResultDTO = solrAlbumVideoDataManager.find(searchSpecial.getAlbumQuery(), pageIndex, pageSize); |
| | | if (solrResultDTO != null) { |
| | | List<SolrAlbumVideo> list = solrResultDTO.getVideoList(); |
| | | if (list != null) { |
| | |
| | | } |
| | | |
| | | if (searchSpecial.getInternetQuery() != null) { |
| | | SolrResultDTO solrResultDTO = solrInternetSearchVideoDataManager.find(searchSpecial.getInternetQuery(), Integer.parseInt(page), pageSize); |
| | | SolrResultDTO solrResultDTO = solrInternetSearchVideoDataManager.find(searchSpecial.getInternetQuery(), pageIndex, pageSize); |
| | | if (solrResultDTO != null) { |
| | | List<InternetSearchVideo> list = solrResultDTO.getVideoList(); |
| | | if (list != null) { |
| | |
| | | } |
| | | |
| | | if (searchSpecial.getShortQuery() != null) { |
| | | SolrResultDTO solrResultDTO = solrShortVideoDataManager.find(searchSpecial.getShortQuery(), Integer.parseInt(page), pageSize); |
| | | SolrResultDTO solrResultDTO = solrShortVideoDataManager.find(searchSpecial.getShortQuery(), pageIndex, pageSize); |
| | | if (solrResultDTO != null) { |
| | | List<SolrShortVideo> list = solrResultDTO.getVideoList(); |
| | | if (list != null) { |
| | |
| | | import com.yeshi.buwan.dto.user.LoginInfoDto; |
| | | import com.yeshi.buwan.exception.user.LoginUserException; |
| | | import com.yeshi.buwan.exception.user.RegisterUserException; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.system.SystemConfigService; |
| | |
| | | import com.yeshi.buwan.util.log.UserActiveLogFactory; |
| | | import com.yeshi.buwan.util.video.VideoCategoryConstant; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil; |
| | | import com.yeshi.buwan.util.video.VideoUtil; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import com.yeshi.buwan.vo.video.VideoListResultVO; |
| | | import net.sf.json.JSONArray; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | vt = new VideoType(); |
| | | vt.setId(Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION); |
| | | vt.setName("高清"); |
| | | typeList.add(vt); |
| | | //韩剧不返回高清 |
| | | if (!acceptData.getDetailSystem().getId().equalsIgnoreCase("48")) { |
| | | vt = new VideoType(); |
| | | vt.setId(Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION); |
| | | vt.setName("高清"); |
| | | typeList.add(vt); |
| | | } |
| | | |
| | | |
| | | JSONArray array1 = new JSONArray(); |
| | |
| | | public void guessLike(AcceptData acceptData, HttpServletRequest request, PrintWriter out) { |
| | | |
| | | String videoId = request.getParameter("VideoId"); |
| | | if (!NumberUtil.isNumeric(videoId)) { |
| | | if (ShortVideoUtil.isShortVideoId(videoId)) { |
| | | int fromtype = VideoUtil.getVideoFromType(videoId); |
| | | switch (fromtype) { |
| | | case HomeVideo.FROM_TYPE_INTERNET: |
| | | guessLikeForInternetSearch(acceptData, videoId, out); |
| | | return; |
| | | case HomeVideo.FROM_TYPE_SHORT: |
| | | guessLikeForShortVideo(acceptData, videoId, out); |
| | | return; |
| | | } |
| | | |
| | | guessLikeForInternetSearch(acceptData, videoId, out); |
| | | return; |
| | | } |
| | | |
| | | DetailSystem ds = systemService.getDetailSystemByPackage(acceptData.getPackageName()); |
| | |
| | | return; |
| | | } |
| | | |
| | | if (!NumberUtil.isNumeric(videoId)) { |
| | | if (ShortVideoUtil.isShortVideoId(videoId)) { |
| | | int fromtype = VideoUtil.getVideoFromType(videoId); |
| | | switch (fromtype) { |
| | | case HomeVideo.FROM_TYPE_INTERNET: |
| | | getRelativeVideosForInternetSearch(acceptData, videoId, out); |
| | | return; |
| | | case HomeVideo.FROM_TYPE_SHORT: |
| | | getRelativeVideosForShortVideo(acceptData, videoId, out); |
| | | return; |
| | | } |
| | | |
| | | |
| | | getRelativeVideosForInternetSearch(acceptData, videoId, out); |
| | | return; |
| | | } |
| | | |
| | | List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(acceptData.getDetailSystem(), acceptData.getVersion(), acceptData.getChannel()); |
| | |
| | | |
| | | // 注册 --用户名,昵称,密码 |
| | | LoginUser user = userService.getLoginUser(loginUid); |
| | | if (user.getState() != null && user.getState() == LoginUser.STATE_UNREGISTER) { |
| | | out.print(JsonUtil.loadFalseJson("账户已注销")); |
| | | return; |
| | | } |
| | | //隐藏user中的email |
| | | user.setEmail(UserInfoVOFactory.getHiddenEmail(user.getEmail())); |
| | | if (user.getPortrait() != null && !user.getPortrait().startsWith("http")) |
| | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunType; |
| | | import com.yeshi.buwan.videos.acFun.AcFunType; |
| | | @Repository |
| | | public class AcFunTypeDao extends BaseDao<AcFunType> { |
| | | |
| | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunVideo; |
| | | import com.yeshi.buwan.videos.acFun.AcFunVideo; |
| | | |
| | | @Repository |
| | | public class AcFunVideoDao extends BaseDao<AcFunVideo> { |
| | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.acFun.AcTypeEqVideoType; |
| | | import com.yeshi.buwan.videos.acFun.AcTypeEqVideoType; |
| | | |
| | | @Repository |
| | | public class AcTypeEqVideoTypeDao extends BaseDao<AcTypeEqVideoType> { |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum; |
| | | |
| | | @Repository |
| | | public class FunTVAlbumDao extends MongodbBaseDao<FunTVAlbum> { |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbumVideoMap; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbumVideoMap; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Repository |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Repository |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV2; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | package com.yeshi.buwan.dao.juhe.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Repository |
| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.mongodb.BasicDBList; |
| | | import com.mongodb.BasicDBObject; |
| | | import com.mongodb.DBCursor; |
| | | import com.mongodb.DBObject; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.query.Iqiyi2AlbumQuery; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | @Repository |
| | |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue; |
| | | |
| | | @Repository |
| | | public class IqiyiUpdateQueueDao extends BaseDao<IqiyiUpdateQueue> { |
| | |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo; |
| | | |
| | | @Repository |
| | | public class IqiyiVideoInfoDao extends BaseDao<IqiyiVideoInfo> { |
| | |
| | | package com.yeshi.buwan.dao.juhe.iqiyi; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | |
| | | return findList(query); |
| | | } |
| | | |
| | | public void deleteById(Long id) { |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria.where("_id").is(id)); |
| | | delete(query); |
| | | } |
| | | |
| | | } |
| | |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | package com.yeshi.buwan.dao.juhe.iqiyi; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | @Repository |
| | |
| | | package com.yeshi.buwan.dao.juhe.mogotv; |
| | | |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.mogotv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.data.mongodb.core.query.Update; |
| | |
| | | package com.yeshi.buwan.dao.juhe.mogotv; |
| | | |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.pptv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVProgram; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | |
| | | package com.yeshi.buwan.dao.juhe.pptv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | |
| | | package com.yeshi.buwan.dao.juhe.pptv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.pptv.PPTVQuery; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeriesProgramMap; |
| | | import com.yeshi.buwan.videos.pptv.PPTVQuery; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.pptv; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.stereotype.Repository; |
| | |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum; |
| | | @Repository |
| | | public class SoHuAlbumDao extends BaseDao<SoHuAlbum> { |
| | | |
| | |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import com.yeshi.buwan.dao.base.BaseDao; |
| | | import com.yeshi.buwan.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuVideo; |
| | | @Repository |
| | | public class SoHuVideoDao extends BaseDao<SoHuVideo> { |
| | | |
| | |
| | | package com.yeshi.buwan.dao.juhe.tencent; |
| | | |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.tencent; |
| | | |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.data.mongodb.core.query.Update; |
| | |
| | | package com.yeshi.buwan.dao.juhe.tencent; |
| | | |
| | | import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.youku; |
| | | |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.youku; |
| | | |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | package com.yeshi.buwan.dao.juhe.youku; |
| | | |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.dao.base.MongodbBaseDao; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | andList.add(Criteria.where("version").lte(version)); |
| | | if (channel != null) { |
| | | Query childQuery = new Query(); |
| | | childQuery.addCriteria(new Criteria().andOperator(Criteria.where("detailSystemId").is(detailSystemId), Criteria.where("channel").is(channel.toLowerCase()))); |
| | | childQuery.addCriteria(new Criteria().andOperator(Criteria.where("detailSystemId").is(detailSystemId),Criteria.where("version").lte(version), Criteria.where("channel").is(channel.toLowerCase()))); |
| | | if (count(childQuery) > 0) { |
| | | andList.add(Criteria.where("channel").is(channel)); |
| | | } else { |
| | |
| | | @Entity |
| | | public class HomeVideo implements Serializable { |
| | | |
| | | //本地视频 |
| | | public final static int FROM_TYPE_LOCAL = 0; |
| | | //全网搜 |
| | | public final static int FROM_TYPE_INTERNET = 1; |
| | | //短视频 |
| | | public final static int FROM_TYPE_SHORT = 2; |
| | | |
| | | |
| | | public HomeVideo(String id) { |
| | |
| | | /** |
| | | * 搜索引擎中保存的专辑对象 |
| | | */ |
| | | |
| | | public class SolrAlbumVideo implements Serializable { |
| | | public final static int FREE_TYPE_FREE = 0; |
| | | //VIP |
| | |
| | | public final static int FREE_TYPE_COUPON = 2; |
| | | |
| | | |
| | | @Field |
| | | @Field(value="id") |
| | | private String id; |
| | | @Field |
| | | private String mainactor; |
| | |
| | | package com.yeshi.buwan.domain.vip; |
| | | |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import org.hibernate.validator.constraints.NotEmpty; |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
New file |
| | |
| | | package com.yeshi.buwan.exception.video; |
| | | |
| | | /** |
| | | * 爱奇艺搜索引擎异常 |
| | | */ |
| | | public class IqiyiVideoSolrException extends Exception { |
| | | |
| | | |
| | | //专辑没保存 |
| | | public final static int CODE_ALBUM_NOT_SAVE = 1; |
| | | |
| | | //专辑不存在 |
| | | public final static int CODE_ALBUM_NOT_EXIST = 2; |
| | | |
| | | //专辑未添加到视频 |
| | | public final static int CODE_ALBUM_NOT_ADD_TO_VIDEO = 10; |
| | | |
| | | //视频未添加到专辑搜索映射 |
| | | public final static int CODE_VIDEO_NOT_ADD_TO_SOLR_ALBUM = 20; |
| | | |
| | | //视频尚未同步到搜索引擎 |
| | | public final static int CODE_VIDEO_NOT_SYNC_TO_SOLR = 30; |
| | | |
| | | |
| | | private int code; |
| | | private String msg; |
| | | |
| | | public IqiyiVideoSolrException(int code, String msg) { |
| | | this.code = code; |
| | | this.msg = msg; |
| | | } |
| | | |
| | | |
| | | public IqiyiVideoSolrException(String msg) { |
| | | this.msg = msg; |
| | | } |
| | | |
| | | public String getMsg() { |
| | | return msg; |
| | | } |
| | | |
| | | public int getCode() { |
| | | return code; |
| | | } |
| | | |
| | | @Override |
| | | public String getMessage() { |
| | | return msg; |
| | | } |
| | | } |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunUtil; |
| | | import com.yeshi.buwan.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.acFun.AcfunVideoResult; |
| | | import com.yeshi.buwan.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.log.LogHelper; |
| | | import com.yeshi.buwan.service.imp.juhe.AcfunVideoNewService; |
| | | import com.yeshi.buwan.service.imp.juhe.IqiyiQueueService; |
| | | import com.yeshi.buwan.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.util.Constant; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.video.AcfunApiUtil; |
| | | |
| | | /** |
| | | * @author Administrator |
| | |
| | | import com.yeshi.buwan.service.inter.system.SystemConfigService; |
| | | import com.yeshi.buwan.util.EHCacheManager; |
| | | import com.yeshi.buwan.util.rank.IqiyiRankUtil; |
| | | import com.yeshi.buwan.util.rank.TencentRankUtil; |
| | | import net.sf.json.JSONObject; |
| | | import org.springframework.stereotype.Component; |
| | | import org.yeshi.utils.AppMarketUtil; |
| | |
| | | private SystemConfigService systemConfigService; |
| | | |
| | | |
| | | //打开华为应用市场的广告 |
| | | //爱奇艺排行 |
| | | @XxlJob("rank-iqiyi-update") |
| | | public ReturnT<String> updateRank(String params) throws Exception { |
| | | public ReturnT<String> updateIqiyiRank(String params) throws Exception { |
| | | Map<String, List<String>> map = IqiyiRankUtil.getRank(10); |
| | | Map<String, List<String>> tencentMap = TencentRankUtil.getRank(10); |
| | | map.put("热搜", tencentMap.get("总榜单")); |
| | | map.put("动漫", tencentMap.get("动漫")); |
| | | if (map != null && map.size() > 0) { |
| | | String json = new Gson().toJson(map); |
| | | systemConfigService.setValue("searchRank", json); |
| | | } |
| | | return ReturnT.SUCCESS; |
| | | } |
| | | |
| | | |
| | | //爱奇艺排行 |
| | | @XxlJob("rank-tencent-update") |
| | | public ReturnT<String> updateTencentRank(String params) throws Exception { |
| | | Map<String, List<String>> map = TencentRankUtil.getRank(10); |
| | | if (map != null && map.size() > 0) { |
| | | String json = new Gson().toJson(map); |
| | | systemConfigService.setValue("searchRank", json); |
| | | } |
| | | return ReturnT.SUCCESS; |
| | | } |
| | |
| | | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.acFun.AcFunUtil; |
| | | import com.yeshi.buwan.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.acFun.AcfunVideoResult; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.acFun.AcFunUtil; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoResult; |
| | | import com.yeshi.buwan.service.imp.juhe.AcfunVideoNewService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.util.video.AcfunApiUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | |
| | | @Component |
| | | public class AcfunVideoUpdate { |
| | |
| | | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.videos.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.service.inter.juhe.FunTV2Service; |
| | | import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import com.yeshi.buwan.vo.video.funtv.Funtv2ResultVO; |
| | |
| | | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Component |
| | |
| | | List<String> urlList = IqiyiUtil2.getAlbumUrlsFromUrl(param); |
| | | for (String url : urlList) { |
| | | String aid = IqiYiNewAPI.getAidByUrl(url); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid)); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid),false); |
| | | logger.info("更新专辑:" + aid); |
| | | } |
| | | return ReturnT.SUCCESS; |
| | |
| | | @XxlJob("video-update-iqiyi-updateVideoByPlayerUrl") |
| | | public ReturnT<String> updateVideoByPlayerUrl(String param) throws Exception { |
| | | String aid = IqiYiNewAPI.getAidByUrl(param); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid)); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid),false); |
| | | logger.info("更新专辑:" + aid); |
| | | return ReturnT.SUCCESS; |
| | | } |
| | |
| | | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.mogotv.MogoTVApiUtil; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.videos.mogotv.MogoTVApiUtil; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.service.inter.juhe.MogoTVService; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import org.slf4j.Logger; |
| | |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao; |
| | | import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao; |
| | | import com.yeshi.buwan.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.inter.juhe.FunTV2Service; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import com.yeshi.buwan.vo.video.funtv.Funtv2ResultVO; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.Serializable; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | @Component |
| | |
| | | import com.google.gson.Gson; |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.factory.SolrShortVideoFactory; |
| | | import com.yeshi.buwan.util.video.shortvideo.IqiyiWebUtil; |
| | | import com.yeshi.buwan.util.video.shortvideo.TencentWebUtil; |
| | | import net.sf.json.JSONObject; |
| | | import com.yeshi.buwan.util.video.web.IqiyiWebUtil; |
| | | import com.yeshi.buwan.util.video.web.TencentWebUtil; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | public ReturnT<String> updateIqiyiShortVideo(String param) throws Exception { |
| | | URLParams urlParams = getParams(param); |
| | | |
| | | for (int i = 0; i < 20; i++) { |
| | | for (int i = 19; i >= 0; i--) { |
| | | try { |
| | | List<Long> idList = IqiyiWebUtil.getVideoTvidList(IqiyiWebUtil.parseParams(urlParams.getUrl()), i + 1); |
| | | if (idList.size() == 0) { |
| | | break; |
| | | continue; |
| | | } |
| | | Collections.reverse(idList); |
| | | //保存 |
| | | for (Long id : idList) { |
| | | IqiyiAlbum2 album = IqiYiNewAPI.getAlbumOrVideoDetail(id); |
| | |
| | | throw new Exception("area不能为空"); |
| | | } |
| | | |
| | | for (int i = 0; i < 20; i++) { |
| | | for (int i = 19; i >= 0; i--) { |
| | | try { |
| | | List<TencentWebUtil.TencentWebVideoInfo> list = TencentWebUtil.getVideoList(TencentWebUtil.parseParams(urlParams.getUrl()), i + 1); |
| | | if (list.size() == 0) |
| | | break; |
| | | continue; |
| | | Collections.reverse(list); |
| | | for (TencentWebUtil.TencentWebVideoInfo videoInfo : list) { |
| | | solrShortVideoDataManager.saveOrUpdate(SolrShortVideoFactory.create(videoInfo, urlParams.getArea(), urlParams.getVideoType())); |
| | | } |
| | |
| | | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.mogotv.MogoTVApiUtil; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.service.inter.juhe.MogoTVService; |
| | | import com.yeshi.buwan.service.inter.juhe.TencentVideoService; |
| | | import com.yeshi.buwan.tencent.TencentVideoApiUtil; |
| | | import com.yeshi.buwan.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.TencentVideoApiUtil; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.video.web.TencentWebUtil; |
| | | import net.sf.json.JSONObject; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | int totalPage = 50; |
| | | for (int i = 0; i < totalPage; i++) { |
| | | List<TencentCoverInfo> coverInfoList = TencentVideoApiUtil.getVideoListByCategory(channel, i + 1); |
| | | save(coverInfoList); |
| | | } |
| | | } |
| | | |
| | | private void save(List<TencentCoverInfo> coverInfoList) { |
| | | if (coverInfoList != null) |
| | | for (TencentCoverInfo coverInfo : coverInfoList) { |
| | | System.out.println(coverInfo.getTitle()+":"+coverInfo.getCover_id()); |
| | | System.out.println(coverInfo.getTitle() + ":" + coverInfo.getCover_id()); |
| | | try { |
| | | tencentVideoService.addToInternetSearch(coverInfo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private String getChannel(String cate) throws Exception { |
| | |
| | | } |
| | | |
| | | |
| | | @XxlJob("video-update-tencent-updateVideo-byweburl") |
| | | public ReturnT<String> updateLatestVideoByWebUrl(String param) throws Exception { |
| | | JSONObject json = JSONObject.fromObject(param); |
| | | int page = json.optInt("page"); |
| | | String url = json.optString("url"); |
| | | List<TencentCoverInfo> list = TencentVideoApiUtil.getVideoList(TencentWebUtil.getApiUrl(url, page)); |
| | | save(list); |
| | | return ReturnT.SUCCESS; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 更新单个视频 |
| | | * |
| | |
| | | |
| | | import com.xxl.job.core.biz.model.ReturnT; |
| | | import com.xxl.job.core.handler.annotation.XxlJob; |
| | | import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao; |
| | | import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.service.inter.juhe.YouKuService; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.youku.YouKuApiUtil; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowSimple; |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.util.video.web.YouKuWebUtil; |
| | | import com.yeshi.buwan.videos.youku.YouKuApiUtil; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowSimple; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuVideo; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | return ReturnT.SUCCESS; |
| | | } |
| | | |
| | | |
| | | //更新专辑列表 |
| | | @XxlJob("video-update-youku-updateVideo-byCategoryUrl") |
| | | public ReturnT<String> updatebyCategoryUrl(String param) throws Exception { |
| | | String[] urlList = param.split(","); |
| | | for (String url : urlList) { |
| | | List<YouKuWebUtil.YouKuCoverInfo> list = YouKuWebUtil.parseCategoryList(url); |
| | | if (list != null) { |
| | | for (YouKuWebUtil.YouKuCoverInfo info : list) { |
| | | try { |
| | | YouKuShowDetail detail = getShowDetail(info.getShowId()); |
| | | youKuService.addToInternetSearch(detail); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | return ReturnT.SUCCESS; |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunType; |
| | | import com.yeshi.buwan.videos.acFun.AcFunType; |
| | | import com.yeshi.buwan.dao.AcFunTypeDao; |
| | | |
| | | @Service |
| | |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunVideo; |
| | | import com.yeshi.buwan.videos.acFun.AcFunVideo; |
| | | import com.yeshi.buwan.dao.AcFunVideoDao; |
| | | |
| | | @Service |
| | |
| | | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunType; |
| | | import com.yeshi.buwan.acFun.AcTypeEqVideoType; |
| | | import com.yeshi.buwan.videos.acFun.AcFunType; |
| | | import com.yeshi.buwan.videos.acFun.AcTypeEqVideoType; |
| | | import com.yeshi.buwan.dao.AcTypeEqVideoTypeDao; |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | |
| | |
| | | return configDao.selectByKey(key, Long.parseLong(system.getId()), version); |
| | | } |
| | | |
| | | @Cacheable(value = "configCache", key = "'getConfigValueByKey-'+#key+'-'+#detailSystemId+'-'+#version") |
| | | public String getConfigValueByKey(String key, String detailSystemId, int version) { |
| | | DetailSystemConfig detailSystemConfig = configDao.selectByKey(key, Long.parseLong(detailSystemId), version); |
| | | if (detailSystemConfig == null) |
| | | return null; |
| | | return detailSystemConfig.getValue(); |
| | | } |
| | | |
| | | // 更新某个配置文件 |
| | | public void updateConfig(final DetailSystemConfig cg) { |
| | | configDao.excute(new HibernateCallback() { |
| | |
| | | import com.yeshi.buwan.domain.user.LoginUserExtra; |
| | | import com.yeshi.buwan.exception.user.LoginUserException; |
| | | import com.yeshi.buwan.exception.PPTVException; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.service.inter.LoginUserService; |
| | | import org.springframework.stereotype.Service; |
| | | import org.yeshi.utils.StringUtil; |
| | |
| | | import java.util.*; |
| | | |
| | | import com.yeshi.buwan.dao.VideoResourceMapExtraInfoDao; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyiDao; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.VideoResourceMapExtraInfo; |
| | | import com.yeshi.buwan.dto.mq.VideoExtraInfoChangeMQMsg; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Query; |
| | |
| | | import com.yeshi.buwan.domain.web.HotSearchAdmin; |
| | | import com.yeshi.buwan.dto.search.SolrResultDTO; |
| | | import com.yeshi.buwan.dto.search.SolrVideoSearchFilter; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; |
| | | import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; |
| | | import com.yeshi.buwan.service.manager.search.SolrInternetSearchVideoDataManager; |
| | |
| | | @Service |
| | | public class SearchService { |
| | | private Logger logger = LoggerFactory.getLogger(SearchService.class); |
| | | |
| | | private final String ALBUM_SEARCH_FUZZY_KEYS = "《,》,。"; |
| | | |
| | | |
| | | @Resource |
| | |
| | | } |
| | | |
| | | |
| | | public SearchResult searchAlbum(int videoType, String key, int page, int pageSize) { |
| | | public SearchResult searchAlbum(int videoType, String key, List<Long> resourceIds, int page, int pageSize) { |
| | | List<VideoInfo> localList = new ArrayList<>(); |
| | | //专辑视频集合 |
| | | Set<String> solrAlbumVids = new HashSet<>(); |
| | |
| | | if (videoType == Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) { |
| | | filter.setResourceIds(Arrays.asList(new String[]{PPTVUtil.RESOURCE_ID + ""})); |
| | | logger.info("高清搜索# key:{}", key); |
| | | } else |
| | | } else { |
| | | |
| | | List<String> rids = new ArrayList<>(); |
| | | for (Long rid : resourceIds) { |
| | | rids.add(rid + ""); |
| | | } |
| | | filter.setResourceIds(rids); |
| | | filter.setVideoType(videoType == 0 ? null : videoType); |
| | | } |
| | | filter.setContentType(1); |
| | | |
| | | SolrResultDTO solrResultDTO = solrAlbumDataManager.find(filter, page, pageSize); |
| | |
| | | } |
| | | } |
| | | |
| | | //第一页,不为高清,主搜索引擎无法搜索到内容时搜索 |
| | | //第一页,不为高清时搜索 |
| | | if (page == 1 && videoType != Constant.SEARCH_RESULT_TYPE_HIGH_DEFINITION) { |
| | | //page为1时 全网搜 |
| | | SolrResultDTO internetSearchResultDTO = solrInternetSearchVideoDataManager.find(filter, 1, 20); |
| | |
| | | isvList.addAll(iList); |
| | | //删除前面有的数据,根据rootType与名称筛选 |
| | | for (int i = 0; i < isvList.size(); i++) { |
| | | String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType(); |
| | | String uniqueId = isvList.get(i).getName() + "#" + isvList.get(i).getRootType() + "#" + isvList.get(i).getYear(); |
| | | if (albumSet.contains(uniqueId)) { |
| | | isvList.remove(i); |
| | | i--; |
| | |
| | | float s1 = CompareStrSimUtil.getSimilarityRatio(o1.getName(), key, true); |
| | | float s2 = CompareStrSimUtil.getSimilarityRatio(o2.getName(), key, true); |
| | | // if (s1 != s2)//相似度越高越靠前 |
| | | return s2 > s1 ? 1 : -1; |
| | | try { |
| | | return s1 != s2 ? (s2 > s1 ? 1 : -1) : (Integer.parseInt(o2.getYear()) - Integer.parseInt(o1.getYear())); |
| | | } catch (Exception e) { |
| | | return s2 > s1 ? 1 : -1; |
| | | } |
| | | // else |
| | | // return o1.getDefinition() - o2.getDefinition();//高清排在前 |
| | | } else { |
| | |
| | | if (!StringUtil.isNullOrEmpty(key) && key.length() > 30) |
| | | key = key.substring(0, 30); |
| | | sh.setKey(key); |
| | | if(uid!=null) { |
| | | if (uid != null) { |
| | | UserInfo user = new UserInfo(); |
| | | user.setId(uid); |
| | | sh.setUser(user); |
| | |
| | | localList = new ArrayList<>(); |
| | | //先搜索专辑 |
| | | int pageSize = 20; |
| | | SearchResult searchResult = searchAlbum(videoType, key, page, pageSize); |
| | | SearchResult searchResult = searchAlbum(videoType, key, resourceList, page, pageSize); |
| | | if (searchResult != null && searchResult.videoInfoList != null) { |
| | | localList.addAll(searchResult.videoInfoList); |
| | | } |
| | |
| | | new String[]{detailSystemId}); |
| | | } |
| | | |
| | | public List<Special> getSpecialList() { |
| | | return specialDao.list("from Special"); |
| | | public List<Special> getSpecialListBySystem(String systemId) { |
| | | return specialDao.list("from Special s where s.system.id=?",systemId); |
| | | } |
| | | |
| | | @Cacheable(value = "classCache", key = "'getSpecialCount'+'-'+#detailSystemId") |
| | |
| | | import com.yeshi.buwan.dao.ad.DeviceAdStrategyDao; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.ad.DeviceAdStrategy; |
| | | import com.yeshi.buwan.service.imp.DetailSystemConfigService; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | | import com.yeshi.buwan.service.inter.ad.DeviceAdStrategyService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPService; |
| | | import com.yeshi.buwan.util.RedisManager; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import com.yeshi.buwan.vo.video.VideoDetailVO; |
| | | import net.sf.json.JSONObject; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Resource |
| | | private RedisManager redisManager; |
| | | |
| | | @Resource |
| | | private DetailSystemConfigService detailSystemConfigService; |
| | | |
| | | private DeviceAdStrategy init(String id, String deviceId, String detailSystemId) { |
| | | DeviceAdStrategy strategy = new DeviceAdStrategy(); |
| | | strategy.setId(id); |
| | |
| | | return strategy; |
| | | } |
| | | |
| | | /** |
| | | * 加载广告权重 |
| | | * |
| | | * @param videoAdInfo |
| | | * @param detailSystemId |
| | | * @param version |
| | | * @param channel |
| | | */ |
| | | private VideoDetailVO.VideoAdInfo loadAdWeight(VideoDetailVO.VideoAdInfo videoAdInfo, String detailSystemId, int version, String channel) { |
| | | String value = detailSystemConfigService.getConfigValueByKey("video_detail_full_video_version_channel_type", detailSystemId, version); |
| | | if (StringUtil.isNullOrEmpty(value)) { |
| | | return videoAdInfo; |
| | | } |
| | | |
| | | JSONObject json = JSONObject.fromObject(value); |
| | | if (json.optJSONObject(channel) == null) { |
| | | json = json.optJSONObject("qq"); |
| | | } else { |
| | | json = json.optJSONObject(channel); |
| | | } |
| | | if (json != null) { |
| | | videoAdInfo.setFullVideoWeight(json.optInt("fullvideo")); |
| | | videoAdInfo.setInterstitialWeight(json.optInt("interstitial")); |
| | | } |
| | | return videoAdInfo; |
| | | } |
| | | |
| | | @Override |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid) { |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid) { |
| | | |
| | | if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) { |
| | | return new VideoDetailVO.VideoAdInfo(true, true); |
| | | return loadAdWeight(new VideoDetailVO.VideoAdInfo(true, true), detailSystemId, version, channel); |
| | | } |
| | | //走VIP判定逻辑 |
| | | if (!StringUtil.isNullOrEmpty(loginUid)) { |
| | | if (vipService.isVIP(loginUid)) { |
| | | //VIP不展示视频前贴和全屏 |
| | | return new VideoDetailVO.VideoAdInfo(false, false); |
| | | return loadAdWeight(new VideoDetailVO.VideoAdInfo(false, false), detailSystemId, version, channel); |
| | | } |
| | | } |
| | | |
| | |
| | | strategy = init(id, deviceId, detailSystemId); |
| | | } |
| | | long now = System.currentTimeMillis(); |
| | | return new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now); |
| | | return loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailPVAExpireTime() < now, strategy.getDetailFSAExpireTime() < now), detailSystemId, version, channel); |
| | | } |
| | | |
| | | |
| | |
| | | * @param detailSystemId |
| | | * @return |
| | | */ |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId) { |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailShortVideoAdStrategy(String deviceId, String detailSystemId, int version, String channel) { |
| | | |
| | | if (StringUtil.isNullOrEmpty(deviceId) || StringUtil.isNullOrEmpty(detailSystemId)) { |
| | | return new VideoDetailVO.VideoAdInfo(true, true); |
| | | return loadAdWeight(new VideoDetailVO.VideoAdInfo(true, true), detailSystemId, version, channel); |
| | | } |
| | | String id = DeviceAdStrategy.createId(deviceId, detailSystemId); |
| | | DeviceAdStrategy strategy = deviceAdStrategyDao.get(id); |
| | |
| | | } |
| | | |
| | | long now = System.currentTimeMillis(); |
| | | return new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now); |
| | | return loadAdWeight(new VideoDetailVO.VideoAdInfo(strategy.getDetailShortVideoPVAExpireTime() < now, strategy.getDetailShortVideoFSAExpireTime() < now), detailSystemId, version, channel); |
| | | } |
| | | |
| | | @Override |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid, String videoId, String from) { |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid, String videoId, String from) { |
| | | |
| | | VideoDetailVO.VideoAdInfo videoAdInfo = getVideoDetailAdStrategy(deviceId, detailSystemId, loginUid); |
| | | VideoDetailVO.VideoAdInfo videoAdInfo = getVideoDetailAdStrategy(deviceId, detailSystemId, version, channel, loginUid); |
| | | //从APP首页推荐而来,并且有全屏視頻廣告 |
| | | if (videoAdInfo.isFullVideo() && "recommend".equalsIgnoreCase(from)) { |
| | | //是否为4大分类 |
| | | VideoInfo videoInfo = videoInfoService.getVideoInfoCache(videoId); |
| | | //除正片外不展示全屏视频广告 |
| | | if (videoInfo != null && videoInfo.getContentType() != null && videoInfo.getContentType() != 1) { |
| | | VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId); |
| | | VideoDetailVO.VideoAdInfo shortVideo = getVideoDetailShortVideoAdStrategy(deviceId, detailSystemId, version, channel); |
| | | videoAdInfo.setFullVideo(videoAdInfo.isFullVideo() && shortVideo.isFullVideo()); |
| | | } |
| | | } |
| | |
| | | //记录当前看PP的次数 |
| | | String id = DeviceAdStrategy.createId(deviceId, detailSystemId); |
| | | String ppDayCount = "pptv-watch-count-" + id; |
| | | int timeS = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd")-System.currentTimeMillis()) / 1000); |
| | | int timeS = (int) ((TimeUtil.convertGernalTime(TimeUtil.getGernalTime(System.currentTimeMillis() + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd") - System.currentTimeMillis()) / 1000); |
| | | redisManager.increase(ppDayCount, 1); |
| | | redisManager.expire(ppDayCount, timeS); |
| | | String countStr = redisManager.getCommonString(ppDayCount); |
| | |
| | | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.buwan.acFun.AcfunVideoMap; |
| | | import com.yeshi.buwan.acFun.AcfunVideoMapDao; |
| | | import com.yeshi.buwan.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.acFun.AcfunVideoNewDao; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoMap; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoMapDao; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoNewDao; |
| | | import com.yeshi.buwan.util.video.AcfunApiUtil; |
| | | |
| | | @Service |
| | |
| | | package com.yeshi.buwan.service.imp.juhe; |
| | | |
| | | import com.yeshi.buwan.dao.video.AlbumVideoMapDao; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.video.AlbumVideoMap; |
| | | import com.yeshi.buwan.service.inter.juhe.AlbumVideoMapService; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Service |
| | |
| | | public void deleteByVideoId(String videoId) { |
| | | albumVideoMapDao.deleteByPrimaryKey(videoId); |
| | | } |
| | | |
| | | @Override |
| | | public void add(VideoInfo videoInfo) { |
| | | //加入专辑视频映射 |
| | | AlbumVideoMap map = new AlbumVideoMap(); |
| | | map.setId(videoInfo.getId()); |
| | | map.setCreateTime(new Date()); |
| | | map.setVideoId(videoInfo.getId()); |
| | | map.setRootVideoType(videoInfo.getVideoType().getId()); |
| | | map.setVideoCount(videoInfo.getVideocount()); |
| | | albumVideoMapDao.save(map); |
| | | } |
| | | } |
| | |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.service.inter.juhe.BilibiliVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | | import com.yeshi.buwan.videos.bilibili.BilibiliUtil; |
| | | import com.yeshi.buwan.videos.bilibili.entity.BilibiliEpInfo; |
| | |
| | | import com.yeshi.buwan.dao.juhe.funtv.FunTVVideo2Dao; |
| | | import com.yeshi.buwan.dao.juhe.funtv.VideoFunTV2Dao; |
| | | import com.yeshi.buwan.dao.video.AlbumVideoMapDao; |
| | | import com.yeshi.buwan.domain.ResourceVideo; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.domain.system.DetailSystemConfig; |
| | | import com.yeshi.buwan.domain.video.AlbumVideoMap; |
| | | import com.yeshi.buwan.funtv.FunTVUtil2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV2; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.inter.juhe.FunTV2Service; |
| | | import com.yeshi.buwan.service.inter.system.SystemConfigService; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | |
| | | import com.yeshi.buwan.domain.*; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.domain.push.VideoPushHistory; |
| | | import com.yeshi.buwan.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbumVideoMap; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbumVideoMap; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.imp.push.PushService; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | |
| | | import com.yeshi.buwan.dao.video.AlbumVideoMapDao; |
| | | import com.yeshi.buwan.domain.*; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.domain.solr.SolrAlbumVideo; |
| | | import com.yeshi.buwan.domain.system.SystemConfig; |
| | | import com.yeshi.buwan.domain.video.AlbumVideoMap; |
| | | import com.yeshi.buwan.dto.mq.UpdateResourceVideoMQMsg; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.exception.video.IqiyiVideoSolrException; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.query.Iqiyi2AlbumQuery; |
| | | import com.yeshi.buwan.service.imp.CategoryVideoService; |
| | | import com.yeshi.buwan.service.imp.ResourceVideoService; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | | import com.yeshi.buwan.service.imp.VideoResourceService; |
| | | import com.yeshi.buwan.service.inter.juhe.AlbumVideoMapService; |
| | | import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service; |
| | | import com.yeshi.buwan.service.inter.system.SystemConfigService; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.service.manager.search.SolrAlbumVideoDataManager; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.ThreadUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.log.VideoLogFactory; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | |
| | | private SystemConfigService systemConfigService; |
| | | |
| | | @Resource |
| | | private SolrShortVideoDataManager solrShortVideoDataManager; |
| | | private AlbumVideoMapService albumVideoMapService; |
| | | |
| | | @Resource |
| | | private SolrAlbumVideoDataManager solrAlbumVideoDataManager; |
| | | |
| | | public List<VideoDetailInfo> getVideoDetailList(String videoId, int page, int pageSize) { |
| | | //查询专辑 |
| | |
| | | } else if (t == IqiyiUtil2.PLAY_HTML) { |
| | | pu.setUrl(album.getH5Url()); |
| | | } |
| | | |
| | | //韩剧 |
| | | if ("48".equalsIgnoreCase(detailSystemId)) { |
| | | pu.setUrl(pu.getUrl().replace("_bwap", "_hjvap")); |
| | | } |
| | | |
| | | return pu; |
| | | } |
| | | |
| | |
| | | } |
| | | VideoIqiyi2 bean = videoIqiyi2Dao.selectByIqiyiId(id); |
| | | if (bean != null) { |
| | | videoIqiyi2Dao.delete(bean.getVideoId()); |
| | | videoIqiyi2Dao.deleteById(bean.getVideoId()); |
| | | //删除资源 |
| | | resourceVideoService.delete(bean.getVideoId() + "", IqiyiUtil2.RESOURCE_ID + ""); |
| | | resourceVideoService.delete(bean.getVideoId() + "", IqiyiUtil.RESOURCE_ID + ""); |
| | | } |
| | | |
| | | } |
| | |
| | | public List<IqiyiAlbum2> listByIds(List<Long> idsList) { |
| | | return iqiyiAlbum2Dao.listByIds(idsList); |
| | | } |
| | | |
| | | @Override |
| | | public void validAlbumSolrState(Long albumId) throws IqiyiVideoSolrException { |
| | | long count = iqiyiAlbum2Dao.countById(albumId); |
| | | if (count <= 0L) { |
| | | throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_ALBUM_NOT_SAVE, "专辑尚未缓存"); |
| | | } |
| | | VideoIqiyi2 videoIqiyi2 = videoIqiyi2Dao.selectByIqiyiId(albumId); |
| | | if (videoIqiyi2 == null) { |
| | | throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_ALBUM_NOT_ADD_TO_VIDEO, "专辑尚未添加到视频总览"); |
| | | } |
| | | |
| | | |
| | | AlbumVideoMap albumVideoMap = albumVideoMapService.selectByVideoId(videoIqiyi2.getVideoId() + ""); |
| | | if (albumVideoMap == null) { |
| | | throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_VIDEO_NOT_ADD_TO_SOLR_ALBUM, "视频未添加到专辑搜索映射"); |
| | | } |
| | | |
| | | SolrAlbumVideo solrAlbumVideo = solrAlbumVideoDataManager.findOne(videoIqiyi2.getVideoId()); |
| | | if (solrAlbumVideo == null) { |
| | | throw new IqiyiVideoSolrException(IqiyiVideoSolrException.CODE_VIDEO_NOT_SYNC_TO_SOLR, "视频尚未同步到搜索引擎"); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiUpdateQueueDao; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.util.Constant; |
| | | |
| | | @Service |
| | |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.domain.push.VideoPushHistory; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.log.LogHelper; |
| | | import com.yeshi.buwan.service.imp.StatisticsService; |
| | | import com.yeshi.buwan.service.imp.push.PushService; |
| | |
| | | import com.yeshi.buwan.dao.juhe.mogotv.MogoTVVideoDao; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.mogotv.MogoTVUtil; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.videos.mogotv.MogoTVUtil; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.MogoTVService; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | |
| | | |
| | | import com.yeshi.buwan.dao.VideoInfoDao; |
| | | import com.yeshi.buwan.dao.VideoResourceMapExtraInfoDao; |
| | | import com.yeshi.buwan.dao.VideoTypeDao; |
| | | import com.yeshi.buwan.dao.juhe.pptv.PPTVProgramDao; |
| | | import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesDao; |
| | | import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesProgramMapDao; |
| | |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.domain.video.AlbumVideoMap; |
| | | import com.yeshi.buwan.dto.mq.PPTVMQMsg; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVQuery; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.pptv.entity.*; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVQuery; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.entity.*; |
| | | import com.yeshi.buwan.service.imp.CategoryVideoService; |
| | | import com.yeshi.buwan.service.imp.ResourceVideoService; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | | import com.yeshi.buwan.service.imp.VideoTypeService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | import org.springframework.data.mongodb.core.query.Update; |
| | |
| | | import com.yeshi.buwan.domain.push.VideoPushHistory; |
| | | import com.yeshi.buwan.service.imp.StatisticsService; |
| | | import com.yeshi.buwan.service.imp.push.PushService; |
| | | import com.yeshi.buwan.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.sohu.entity.VideoSoHu; |
| | | import com.yeshi.buwan.videos.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.videos.sohu.entity.VideoSoHu; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | |
| | | @Service |
| | |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.TencentVideoService; |
| | | import com.yeshi.buwan.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.videos.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.YouKuService; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | | import com.yeshi.buwan.youku.YouKuUtil; |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.videos.youku.YouKuUtil; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuVideo; |
| | | import org.springframework.data.domain.Sort; |
| | | import org.springframework.data.mongodb.core.query.Criteria; |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | |
| | | import com.yeshi.buwan.exception.order.PayException; |
| | | import com.yeshi.buwan.exception.vip.VIPException; |
| | | import com.yeshi.buwan.exception.vip.VideoBuyRecordException; |
| | | import com.yeshi.buwan.pptv.PPTVVipManager; |
| | | import com.yeshi.buwan.videos.pptv.PPTVVipManager; |
| | | import com.yeshi.buwan.service.inter.order.OrderService; |
| | | import com.yeshi.buwan.service.manager.GoldCornManager; |
| | | import com.yeshi.buwan.util.Constant; |
| | |
| | | import com.yeshi.buwan.dao.HomeVideoDao; |
| | | import com.yeshi.buwan.domain.HomeVideo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.recommend.HomeVideoService; |
| | | import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.util.Constant; |
| | | import com.yeshi.buwan.util.NumberUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.factory.VideoInfoFactory; |
| | | import com.yeshi.buwan.util.video.VideoUtil; |
| | | import org.hibernate.Session; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | @Resource |
| | | private InternetSearchVideoService internetSearchVideoService; |
| | | |
| | | @Resource |
| | | private SolrShortVideoDataManager solrShortVideoDataManager; |
| | | |
| | | @Resource |
| | | private VideoInfoService videoInfoService; |
| | |
| | | if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) { |
| | | continue; |
| | | } |
| | | if (NumberUtil.isNumeric(hv.getVideoId())) { |
| | | if (VideoUtil.getVideoFromType(hv.getVideoId()) != HomeVideo.FROM_TYPE_INTERNET) { |
| | | continue; |
| | | } |
| | | InternetSearchVideo internetSearchVideo = internetSearchVideoService.selectByPrimaryKeyCache(hv.getVideoId()); |
| | | if (internetSearchVideo != null) { |
| | | hv.setVideo(VideoInfoFactory.create(internetSearchVideo)); |
| | | } |
| | | } |
| | | |
| | | return homeVideoList; |
| | | } |
| | | |
| | | private List<HomeVideo> betchShortVideos(List<HomeVideo> homeVideoList) { |
| | | for (HomeVideo hv : homeVideoList) { |
| | | if (hv == null || hv.getVideo() != null || StringUtil.isNullOrEmpty(hv.getVideoId())) { |
| | | continue; |
| | | } |
| | | if (VideoUtil.getVideoFromType(hv.getVideoId()) != HomeVideo.FROM_TYPE_SHORT) { |
| | | continue; |
| | | } |
| | | |
| | | SolrShortVideo shortVideo = solrShortVideoDataManager.findOne(hv.getVideoId()); |
| | | if (shortVideo != null) { |
| | | hv.setVideo(VideoInfoFactory.create(shortVideo)); |
| | | } |
| | | } |
| | | |
| | |
| | | rids.add("rv.`resourceid`=" + rid); |
| | | } |
| | | |
| | | String sql = String.format("SELECT hv.* FROM wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" :"AND ("+ org.yeshi.utils.StringUtil.concat(rids, " or ")+")"); |
| | | String sql = String.format("SELECT hv.* FROM wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" : "AND (" + org.yeshi.utils.StringUtil.concat(rids, " or ") + ")"); |
| | | |
| | | sql += " GROUP BY hv.id ORDER BY hv.`orderby` DESC,hv.`createtime` DESC"; |
| | | |
| | |
| | | |
| | | List<VideoInfo> videoInfoList = new ArrayList<>(); |
| | | homeVideos = betchInternetVideos(homeVideos); |
| | | homeVideos = betchShortVideos(homeVideos); |
| | | for (int i = 0; i < homeVideos.size(); i++) { |
| | | if (homeVideos.get(i).getVideo() == null) { |
| | | homeVideos.remove(i); |
| | |
| | | rids.add("rv.`resourceid`=" + rid); |
| | | } |
| | | |
| | | String sql = String.format("SELECT count(distinct(hv.id)) from wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" :"AND ("+ org.yeshi.utils.StringUtil.concat(rids, " or ")+")"); |
| | | String sql = String.format("SELECT count(distinct(hv.id)) from wk_video_homevideo hv LEFT JOIN wk_resource_video rv ON rv.`videoid`=hv.`videoid` LEFT JOIN wk_video_video v ON v.`id`=hv.`videoid` WHERE hv.`hometype`=%s AND ( (v.show=1 AND hv.from_type=0 %s) OR hv.from_type>0 ) ", homeId, rids.size() == 0 ? "" : "AND (" + org.yeshi.utils.StringUtil.concat(rids, " or ") + ")"); |
| | | |
| | | return Long.parseLong(session.createSQLQuery(sql).uniqueResult() + "") + (hasBigPicture != null && hasBigPicture ? 1 : 0); |
| | | }); |
| | |
| | | * @param detailSystemId |
| | | * @return |
| | | */ |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid); |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid); |
| | | |
| | | /** |
| | | * 获取视频详情页的广告展示策略(含单视频策略) |
| | |
| | | * @param from |
| | | * @return |
| | | */ |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, String loginUid, String videoId, String from); |
| | | public VideoDetailVO.VideoAdInfo getVideoDetailAdStrategy(String deviceId, String detailSystemId, int version, String channel, String loginUid, String videoId, String from); |
| | | |
| | | |
| | | /** |
| | |
| | | package com.yeshi.buwan.service.inter.juhe; |
| | | |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.video.AlbumVideoMap; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | public AlbumVideoMap selectByVideoId(String videoId); |
| | | |
| | | |
| | | @Resource |
| | | public void deleteByVideoId(String videoId); |
| | | |
| | | |
| | | public void add(VideoInfo videoInfo); |
| | | |
| | | } |
| | |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | |
| | | import java.util.List; |
| | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.exception.video.IqiyiVideoSolrException; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | /** |
| | | * 专辑下线 |
| | | * |
| | | * @param id |
| | | */ |
| | | public void offlineIqiyiAlbum(Long id); |
| | |
| | | |
| | | /** |
| | | * 根据专辑ID删除 |
| | | * |
| | | * @param id |
| | | */ |
| | | public void deleteByAid(long id); |
| | |
| | | |
| | | /** |
| | | * 根据ID查询 |
| | | * |
| | | * @param idsList |
| | | * @return |
| | | */ |
| | | public List<IqiyiAlbum2> listByIds(List<Long> idsList); |
| | | |
| | | |
| | | /** |
| | | * 验证专辑的搜素引擎状态 |
| | | * |
| | | * @param albumId |
| | | */ |
| | | public void validAlbumSolrState(Long albumId) throws IqiyiVideoSolrException; |
| | | } |
| | |
| | | package com.yeshi.buwan.service.inter.juhe; |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | package com.yeshi.buwan.service.inter.juhe; |
| | | |
| | | import com.yeshi.buwan.pptv.entity.*; |
| | | import com.yeshi.buwan.videos.pptv.entity.*; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | package com.yeshi.buwan.service.inter.juhe; |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | package com.yeshi.buwan.service.inter.juhe; |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuVideo; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.Serializable; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | } |
| | | } |
| | | |
| | | public SolrAlbumVideo findOne(String id) { |
| | | public SolrAlbumVideo findOne(Serializable id) { |
| | | SolrAlbumVideo solrVideo = solrTemplate.getById(CORE_NAME, id, SolrAlbumVideo.class); |
| | | return solrVideo; |
| | | } |
| | |
| | | try { |
| | | query = new SimpleQuery(new Criteria("nameStr").startsWith(filter.getKey()).or("mainactor").expression("\"" + filter.getKey() + "\"")); |
| | | } catch (InvalidDataAccessApiUsageException e) { |
| | | query = new SimpleQuery(new Criteria("nameStr").expression("\""+filter.getKey()+"\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); |
| | | query = new SimpleQuery(new Criteria("nameStr").expression("\"" + filter.getKey() + "\"").or("mainactor").expression("\"" + filter.getKey() + "\"")); |
| | | } |
| | | } |
| | | } else if (!StringUtil.isNullOrEmpty(filter.getActor())) { |
| | |
| | | } |
| | | |
| | | if (filter.getResourceIds() != null && filter.getResourceIds().size() > 0) { |
| | | query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds()))); |
| | | Criteria ors = null; |
| | | for (String rid : filter.getResourceIds()) { |
| | | if (ors == null) |
| | | ors = Criteria.where("resourceIds").contains(rid); |
| | | else |
| | | ors = ors.or("resourceIds").contains(rid); |
| | | } |
| | | query.addFilterQuery(new SimpleFilterQuery(ors)); |
| | | } |
| | | if (filter.getFreeType() != null) { |
| | | query.addFilterQuery(new SimpleFilterQuery(Criteria.where("free_type").is(filter.getFreeType()))); |
| | |
| | | } |
| | | |
| | | public List<String> getSuggestKeyList(String key) { |
| | | Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*")); |
| | | Query query = new SimpleQuery(new Criteria("nameStr").expression(key + "*")); |
| | | /** 设置分页开始记录数(第一页) 默认0 */ |
| | | query.setOffset(0); |
| | | /** 设置每页显示记录数,默认10 */ |
| | |
| | | try { |
| | | query = new SimpleQuery(new Criteria("nameStr").startsWith(key).or("actors").expression("\"" + key + "\"")); |
| | | } catch (InvalidDataAccessApiUsageException e) { |
| | | query = new SimpleQuery(new Criteria("name").expression("\""+key+"\"")); |
| | | query = new SimpleQuery(new Criteria("name").expression("\"" + key + "\"")); |
| | | } |
| | | |
| | | } else if (!StringUtil.isNullOrEmpty(filter.getActor())) { |
| | |
| | | } |
| | | |
| | | if (filter.getResourceIds() != null && filter.getResourceIds().size() > 0) { |
| | | // String[] rids=new String[filter.getResourceIds().size()]; |
| | | // filter.getResourceIds().toArray(rids); |
| | | query.addFilterQuery(new SimpleFilterQuery(Criteria.where("resourceIds").contains(filter.getResourceIds()))); |
| | | Criteria ors = null; |
| | | for (String rid : filter.getResourceIds()) { |
| | | if (ors == null) |
| | | ors = Criteria.where("resourceIds").contains(rid); |
| | | else |
| | | ors = ors.or("resourceIds").contains(rid); |
| | | } |
| | | query.addFilterQuery(new SimpleFilterQuery(ors)); |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | public List<String> getSuggestKeyList(String key) { |
| | | Query query = new SimpleQuery(new Criteria("nameStr").expression(key+"*")); |
| | | Query query = new SimpleQuery(new Criteria("nameStr").expression(key + "*")); |
| | | /** 设置分页开始记录数(第一页) 默认0 */ |
| | | query.setOffset(0); |
| | | /** 设置每页显示记录数,默认10 */ |
| | |
| | | package com.yeshi.buwan.service.manager.search; |
| | | |
| | | import com.yeshi.buwan.domain.HomeVideo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | |
| | | import com.yeshi.buwan.dto.search.SolrShortVideoSearchFilter; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil; |
| | | import com.yeshi.buwan.util.video.VideoUtil; |
| | | import org.apache.solr.client.solrj.response.UpdateResponse; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | |
| | | solrTemplate.rollback(); |
| | | } |
| | | } |
| | | |
| | | public void deleteById(String id) { |
| | | UpdateResponse updateResponse = solrTemplate.deleteById(CORE_NAME, id); |
| | | if (updateResponse.getStatus() == 0) { |
| | |
| | | |
| | | public PlayUrl getPlayUrl(String id, VideoResource videoResource) { |
| | | //短视频 |
| | | if (ShortVideoUtil.isShortVideoId(id)) { |
| | | if (VideoUtil.getVideoFromType(id) == HomeVideo.FROM_TYPE_SHORT) { |
| | | SolrShortVideo solrShortVideo = findOne(id); |
| | | if (solrShortVideo == null) |
| | | return null; |
| | |
| | | */ |
| | | public void saveVideoList(String key, VideoListResultVO videoData) { |
| | | Gson gson = new Gson(); |
| | | cacheCommonString(key, gson.toJson(videoData), 60 * 60 * 24); |
| | | cacheCommonString(key, gson.toJson(videoData), 60 * 60 * 8); |
| | | } |
| | | |
| | | /** |
| | |
| | | package com.yeshi.buwan.util; |
| | | |
| | | import com.alibaba.druid.pool.DruidDataSource; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiAlbum2Dao; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyi2Dao; |
| | | import com.yeshi.buwan.domain.ResourceVideo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.dto.mq.*; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi2; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi2; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.service.imp.JobThreadExecutorServiceImpl; |
| | | import com.yeshi.buwan.service.imp.ResourceVideoService; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | |
| | | iqiyi2Service.offlineIqiyiAlbum(Long.parseLong(videoMQMsg.getId())); |
| | | } else { |
| | | //保存 |
| | | iqiyiUtil2.syncByAid(iqiyiAlbum2.getId()); |
| | | iqiyiUtil2.syncByAid(iqiyiAlbum2.getId(),false); |
| | | } |
| | | break; |
| | | } |
| | |
| | | package com.yeshi.buwan.util.factory; |
| | | |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import com.yeshi.buwan.videos.bilibili.entity.BilibiliMediaInfo; |
| | | import com.yeshi.buwan.videos.bilibili.BilibiliUtil; |
| | | import com.yeshi.buwan.videos.bilibili.entity.BilibiliVideo; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import org.yeshi.utils.StringUtil; |
| | | |
| | | import java.math.BigDecimal; |
| | |
| | | package com.yeshi.buwan.util.factory; |
| | | |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.videos.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.video.shortvideo.TencentWebUtil; |
| | | import com.yeshi.buwan.util.video.web.TencentWebUtil; |
| | | |
| | | public class SolrShortVideoFactory { |
| | | |
| | |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | video.setVpicture(""); |
| | | video.setLatestVpicture(""); |
| | | video.setId(solrVideo.getId()); |
| | | video.setTag(solrVideo.getTag()); |
| | | // video.setTag(solrVideo.getTag()); |
| | | video.setHpicture(solrVideo.getPicture()); |
| | | video.setArea(solrVideo.getArea()); |
| | | video.setCreatetime(0L); |
| | |
| | | import com.yeshi.buwan.domain.user.LoginUser; |
| | | import com.yeshi.buwan.domain.user.LoginUserExtra; |
| | | import com.yeshi.buwan.domain.vip.UserVIPInfo; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.videos.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.vo.client.user.UserInfoVO; |
| | | |
| | |
| | | package com.yeshi.buwan.util.log; |
| | | |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | |
| | | /** |
| | | * 视频日志 |
| | |
| | | return map; |
| | | } |
| | | |
| | | public static void main(String[] args) throws IOException { |
| | | Map<String, List<String>> map = getRank(10); |
| | | System.out.println(map); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.yeshi.buwan.util.rank; |
| | | |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.jsoup.nodes.Element; |
| | | import org.jsoup.select.Elements; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class TencentRankUtil { |
| | | |
| | | public static Map<String, List<String>> getRank(int count) throws IOException { |
| | | Document doc = Jsoup.connect("https://v.qq.com/biu/ranks/?t=hotsearch").timeout(20000).get(); |
| | | Element root = doc.getElementsByClass("mod_row_box").get(0); |
| | | Elements items = root.getElementsByClass("mod_rank_figure"); |
| | | Map<String, List<String>> map = new HashMap<>(); |
| | | for (int i = 0; i < items.size(); i++) { |
| | | Element item = items.get(i); |
| | | String title = item.getElementsByClass("title").get(0).text(); |
| | | List<String> list = new ArrayList<>(); |
| | | Elements names = item.getElementsByClass("item"); |
| | | for (int j = 0; j < names.size(); j++) { |
| | | Element name = names.get(j); |
| | | String itemTitle = name.getElementsByTag("a").attr("title"); |
| | | list.add(itemTitle); |
| | | if (list.size() >= count) |
| | | break; |
| | | } |
| | | map.put(title, list); |
| | | |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | public static void main(String[] args) throws IOException { |
| | | Map<String, List<String>> map = getRank(10); |
| | | System.out.println(map); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.yeshi.buwan.util.rank; |
| | | |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.jsoup.nodes.Element; |
| | | import org.jsoup.select.Elements; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class YoukuRankUtil { |
| | | |
| | | public static Map<String, List<String>> getRank(int count) throws IOException { |
| | | Document doc = Jsoup.connect("https://v.qq.com/biu/ranks/?t=hotsearch").timeout(20000).get(); |
| | | Element root = doc.getElementsByClass("mod_row_box").get(0); |
| | | Elements items = root.getElementsByClass("mod_rank_figure"); |
| | | Map<String, List<String>> map = new HashMap<>(); |
| | | for (int i = 0; i < items.size(); i++) { |
| | | Element item = items.get(i); |
| | | String title = item.getElementsByClass("title").get(0).text(); |
| | | List<String> list = new ArrayList<>(); |
| | | Elements names = item.getElementsByClass("item"); |
| | | for (int j = 0; j < names.size(); j++) { |
| | | Element name = names.get(j); |
| | | String itemTitle = name.getElementsByTag("a").attr("title"); |
| | | list.add(itemTitle); |
| | | if (list.size() >= count) |
| | | break; |
| | | } |
| | | map.put(title, list); |
| | | |
| | | } |
| | | return map; |
| | | } |
| | | |
| | | public static void main(String[] args) throws IOException { |
| | | Map<String, List<String>> map = getRank(10); |
| | | System.out.println(map); |
| | | } |
| | | |
| | | } |
| | |
| | | import java.util.Map; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.buwan.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.acFun.AcfunVideoResult; |
| | | import com.yeshi.buwan.service.imp.juhe.AcfunVideoNewService; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoNew; |
| | | import com.yeshi.buwan.videos.acFun.AcfunVideoResult; |
| | | import com.yeshi.buwan.util.HttpUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | |
| | |
| | | package com.yeshi.buwan.util.video; |
| | | |
| | | import com.yeshi.buwan.acFun.AcFunUtil; |
| | | import com.yeshi.buwan.videos.acFun.AcFunUtil; |
| | | import com.yeshi.buwan.dao.VideoInfoDao; |
| | | import com.yeshi.buwan.domain.ResourceVideo; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.*; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.funtv.FunTVUtil2; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.mogotv.MogoTVUtil; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil2; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.videos.mogotv.MogoTVUtil; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | | import com.yeshi.buwan.service.imp.VideoResourceService; |
| | | import com.yeshi.buwan.service.imp.juhe.FunTVService; |
| | |
| | | import com.yeshi.buwan.service.imp.juhe.SoHuService; |
| | | import com.yeshi.buwan.service.inter.juhe.*; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.videos.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.videos.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.log.VideoLogFactory; |
| | | import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil; |
| | | import com.yeshi.buwan.videos.bilibili.BilibiliUtil; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import com.yeshi.buwan.youku.YouKuUtil; |
| | | import com.yeshi.buwan.videos.youku.YouKuUtil; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Session; |
| | | import org.slf4j.Logger; |
| | |
| | | @Cacheable(value = "homeCache", key = "'getPlayUrl'+'-'+#detailSystemId+'-'+#id+'-'+#type+'-'+#resourceid") |
| | | public PlayUrl getPlayUrl(AcceptData acceptData, String detailSystemId, String id, String type, int resourceid, String videoid) { |
| | | playLogger.info(VideoLogFactory.createPlayUrlLog(detailSystemId, id, type, resourceid, videoid)); |
| | | if (ShortVideoUtil.isShortVideoId(id)) { |
| | | if (VideoUtil.getVideoFromType(id) == HomeVideo.FROM_TYPE_SHORT) { |
| | | VideoResource vr = videoResourceService.getResource(resourceid + ""); |
| | | return solrShortVideoDataManager.getPlayUrl(id, vr); |
| | | } |
New file |
| | |
| | | package com.yeshi.buwan.util.video; |
| | | |
| | | import com.yeshi.buwan.domain.HomeVideo; |
| | | import com.yeshi.buwan.util.NumberUtil; |
| | | |
| | | public class VideoUtil { |
| | | |
| | | /** |
| | | * 根据视频ID获取视频来源的类型 |
| | | * |
| | | * @param id |
| | | * @return |
| | | */ |
| | | public static int getVideoFromType(String id) { |
| | | |
| | | if (NumberUtil.isNumeric(id)) { |
| | | return HomeVideo.FROM_TYPE_LOCAL; |
| | | } else { |
| | | if (id.startsWith("s-")) { |
| | | return HomeVideo.FROM_TYPE_SHORT; |
| | | } else { |
| | | return HomeVideo.FROM_TYPE_INTERNET; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
File was renamed from src/main/java/com/yeshi/buwan/util/video/shortvideo/IqiyiWebUtil.java |
| | |
| | | package com.yeshi.buwan.util.video.shortvideo; |
| | | package com.yeshi.buwan.util.video.web; |
| | | |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import net.sf.json.JSONArray; |
File was renamed from src/main/java/com/yeshi/buwan/util/video/shortvideo/TencentWebUtil.java |
| | |
| | | package com.yeshi.buwan.util.video.shortvideo; |
| | | package com.yeshi.buwan.util.video.web; |
| | | |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.jsoup.nodes.Element; |
| | | import org.jsoup.select.Elements; |
| | | import org.yeshi.utils.HttpUtil; |
| | | import org.yeshi.utils.StringUtil; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.net.URLDecoder; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | public class TencentWebUtil { |
| | | |
| | |
| | | String result = HttpUtil.get(url, params, headers); |
| | | Document document = Jsoup.parse(result); |
| | | Elements els = document.getElementsByClass("list_item"); |
| | | return parseVideoList(els); |
| | | } |
| | | |
| | | |
| | | public static List<TencentWebVideoInfo> getVideoList(String url) throws Exception { |
| | | Map<String, String> headers = new HashMap<>(); |
| | | headers.put("referer", "https://v.qq.com/channel/ent"); |
| | | headers.put("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36"); |
| | | String result = HttpUtil.get(url, new HashMap<>(), headers); |
| | | Document document = Jsoup.parse(result); |
| | | Elements els = document.getElementsByClass("list_item"); |
| | | return parseVideoList(els); |
| | | } |
| | | |
| | | private static List<TencentWebVideoInfo> parseVideoList(Elements els) throws UnsupportedEncodingException { |
| | | List<TencentWebVideoInfo> list = new ArrayList<>(); |
| | | for (int i = 0; i < els.size(); i++) { |
| | | Element ele = els.get(i); |
| | |
| | | title = new String(title.getBytes("ISO-8859-1"), "UTF-8"); |
| | | String picture = ele.getElementsByTag("img").get(0).attr("src"); |
| | | picture = picture.startsWith("http") ? picture : "https:" + picture; |
| | | String duration = ele.getElementsByClass("figure_caption").get(0).ownText(); |
| | | System.out.println(duration); |
| | | |
| | | String duration = null; |
| | | try { |
| | | duration = ele.getElementsByClass("figure_caption").get(0).ownText(); |
| | | duration = duration.trim(); |
| | | for (int j = 0; j < duration.length(); j++) { |
| | | char ca = duration.charAt(j); |
| | | if (!(ca >= 48 && ca < 59)) { |
| | | duration = null; |
| | | break; |
| | | } |
| | | } |
| | | System.out.println(duration); |
| | | } catch (Exception e) { |
| | | } |
| | | TencentWebVideoInfo videoInfo = new TencentWebVideoInfo(); |
| | | videoInfo.setDuration(duration); |
| | | videoInfo.setId(id); |
| | |
| | | return list; |
| | | } |
| | | |
| | | public static String getApiUrl(String webUrl, int page) { |
| | | Map<String, String> params = parseParams(webUrl); |
| | | int pageSize = 30; |
| | | params.put("append", "1"); |
| | | params.put("listpage", page + ""); |
| | | params.put("offset", (page - 1) * pageSize + ""); |
| | | params.put("pagesize", pageSize + ""); |
| | | String url = "https://v.qq.com/x/bu/pagesheet/list"; |
| | | List<String> paramsList = new ArrayList<>(); |
| | | for (Iterator<String> its = params.keySet().iterator(); its.hasNext(); ) { |
| | | String key = its.next(); |
| | | String value = params.get(key); |
| | | try { |
| | | paramsList.add(key + "=" + URLDecoder.decode(value, "UTF-8")); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return url + "?" + StringUtil.concat(paramsList, "&"); |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | List<TencentWebVideoInfo> videoInfos = getVideoList(parseParams("https://v.qq.com/channel/ent?_all=1&channel=ent&iarea=2&itype=-1&listpage=1&sort=40"), 1); |
New file |
| | |
| | | package com.yeshi.buwan.util.video.web; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.jsoup.select.Elements; |
| | | |
| | | import javax.script.Invocable; |
| | | import javax.script.ScriptEngine; |
| | | import javax.script.ScriptEngineManager; |
| | | import javax.script.ScriptException; |
| | | import java.lang.reflect.Type; |
| | | import java.util.List; |
| | | |
| | | public class YouKuWebUtil { |
| | | |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | |
| | | List<YouKuCoverInfo> list = parseCategoryList("https://www.youku.com/category/show/c_97_s_6.html?theme=dark"); |
| | | System.out.println(list); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 解析专辑列表 |
| | | * |
| | | * @param url |
| | | */ |
| | | public static List<YouKuCoverInfo> parseCategoryList(String url) throws Exception { |
| | | |
| | | Document document = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36").timeout(60000).get(); |
| | | Elements els = document.getElementsByTag("script"); |
| | | for (int i = 0; i < els.size(); i++) { |
| | | String value = els.get(i).html(); |
| | | if (value.contains("window.__INITIAL_DATA__")) { |
| | | System.out.println(value); |
| | | return parseVideoList(value); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | private static List<YouKuCoverInfo> parseVideoList(String dtaa) throws ScriptException, NoSuchMethodException { |
| | | String script = "var _window={};" + dtaa.replace("window.", "_window.").replace("document.", "_document."); |
| | | script += ";function getData(){return JSON.stringify(_window.__INITIAL_DATA__.categoryVideos);}"; |
| | | ScriptEngineManager manager = new ScriptEngineManager(); |
| | | ScriptEngine jsEngine = manager.getEngineByName("javascript"); |
| | | try { |
| | | jsEngine.eval(script); |
| | | } catch (ScriptException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | Gson gson = new Gson(); |
| | | if (jsEngine instanceof Invocable) { |
| | | Invocable in = (Invocable) jsEngine; |
| | | Object data = in.invokeFunction("getData"); |
| | | Type type = new TypeToken<List<YouKuCoverInfo>>() { |
| | | }.getType(); |
| | | List<YouKuCoverInfo> list = gson.fromJson(data.toString(), type); |
| | | if (list != null) { |
| | | for (YouKuCoverInfo info : list) { |
| | | info.setShowId(parseShowIdFromVideoLink(info.getVideoLink())); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | private static String parseShowIdFromVideoLink(String videoLink) { |
| | | if (videoLink.indexOf("/id_") > -1) { |
| | | return videoLink.substring(videoLink.indexOf("/id_"), videoLink.indexOf(".htm")).replace("/id_", "").trim(); |
| | | } |
| | | |
| | | return null; |
| | | |
| | | } |
| | | |
| | | public static class YouKuCoverInfo { |
| | | private String summaryType; |
| | | private String access; |
| | | private String type; |
| | | private String showThumb; |
| | | private String img; |
| | | private String summary; |
| | | private String title; |
| | | private String subTitle; |
| | | private String rightTagText; |
| | | private String videoId; |
| | | private String videoLink; |
| | | |
| | | private String showId; |
| | | |
| | | public String getShowId() { |
| | | return showId; |
| | | } |
| | | |
| | | public void setShowId(String showId) { |
| | | this.showId = showId; |
| | | } |
| | | |
| | | public String getSummaryType() { |
| | | return summaryType; |
| | | } |
| | | |
| | | public void setSummaryType(String summaryType) { |
| | | this.summaryType = summaryType; |
| | | } |
| | | |
| | | public String getAccess() { |
| | | return access; |
| | | } |
| | | |
| | | public void setAccess(String access) { |
| | | this.access = access; |
| | | } |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public String getShowThumb() { |
| | | return showThumb; |
| | | } |
| | | |
| | | public void setShowThumb(String showThumb) { |
| | | this.showThumb = showThumb; |
| | | } |
| | | |
| | | public String getImg() { |
| | | return img; |
| | | } |
| | | |
| | | public void setImg(String img) { |
| | | this.img = img; |
| | | } |
| | | |
| | | public String getSummary() { |
| | | return summary; |
| | | } |
| | | |
| | | public void setSummary(String summary) { |
| | | this.summary = summary; |
| | | } |
| | | |
| | | public String getTitle() { |
| | | return title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | |
| | | public String getSubTitle() { |
| | | return subTitle; |
| | | } |
| | | |
| | | public void setSubTitle(String subTitle) { |
| | | this.subTitle = subTitle; |
| | | } |
| | | |
| | | public String getRightTagText() { |
| | | return rightTagText; |
| | | } |
| | | |
| | | public void setRightTagText(String rightTagText) { |
| | | this.rightTagText = rightTagText; |
| | | } |
| | | |
| | | public String getVideoId() { |
| | | return videoId; |
| | | } |
| | | |
| | | public void setVideoId(String videoId) { |
| | | this.videoId = videoId; |
| | | } |
| | | |
| | | public String getVideoLink() { |
| | | return videoLink; |
| | | } |
| | | |
| | | public void setVideoLink(String videoLink) { |
| | | this.videoLink = videoLink; |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunAdpater.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import java.lang.reflect.Type; |
| | | import java.util.ArrayList; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunType.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import javax.persistence.Column; |
| | | import javax.persistence.Entity; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunUtil.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcFunVideo.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import javax.persistence.Entity; |
| | | import javax.persistence.Id; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcTypeEqVideoType.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import javax.persistence.Entity; |
| | | import javax.persistence.GeneratedValue; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoMap.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoMapDao.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import org.springframework.stereotype.Repository; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoNew.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoNewDao.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import java.util.Date; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/acFun/AcfunVideoResult.java |
| | |
| | | package com.yeshi.buwan.acFun; |
| | | package com.yeshi.buwan.videos.acFun; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | import com.yeshi.buwan.videos.bilibili.entity.BilibiliMediaInfo; |
| | | import com.yeshi.buwan.videos.bilibili.entity.BilibiliSearchVideoMap; |
| | | import com.yeshi.buwan.videos.bilibili.entity.BilibiliVideo; |
| | | import com.yeshi.buwan.youku.YouKuUtil; |
| | | import com.yeshi.buwan.videos.youku.YouKuUtil; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVAlbumFactory.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.funtv.vo.*; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.*; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVApi.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.util.List; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.FunTVCartoonAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVMovieVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShortVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShowAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVMovieVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShortVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShowAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.util.HttpUtil; |
| | | |
| | | public class FunTVApi { |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVDataParseUtil.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import java.io.StringReader; |
| | | import java.util.ArrayList; |
| | |
| | | import org.w3c.dom.NodeList; |
| | | import org.xml.sax.InputSource; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.FunTVCartoonAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVCartoonVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVMovieVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShortVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShowAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShowVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVTVVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVMovieVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShortVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShowAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShowVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVTVVideo; |
| | | |
| | | /** |
| | | * 解析FunTV的数 |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVNewApi.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.util.HttpUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVUtil.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum; |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Session; |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
| | |
| | | import com.yeshi.buwan.domain.CategoryVideo; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVCartoonAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVCartoonVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVMovieVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShortVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShowAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVShowVideo; |
| | | import com.yeshi.buwan.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.funtv.vo.FunTVTVVideo; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.service.imp.VideoResourceService; |
| | | import com.yeshi.buwan.service.imp.VideoService; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVCartoonVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVMovieVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShortVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShowAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVShowVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVTVVideo; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.service.imp.juhe.FunTVService; |
| | | import com.yeshi.buwan.util.JuheVideoUtil; |
| | | import com.yeshi.buwan.util.NumberUtil; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVUtil2.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import com.yeshi.buwan.dao.CategoryVideoDao; |
| | | import com.yeshi.buwan.domain.CategoryVideo; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.funtv.entity.*; |
| | | import com.yeshi.buwan.funtv.vo.*; |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum; |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.entity.*; |
| | | import com.yeshi.buwan.service.imp.juhe.FunTVService; |
| | | import com.yeshi.buwan.util.JuheVideoUtil; |
| | | import com.yeshi.buwan.util.NumberUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import com.yeshi.buwan.vo.AcceptData; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Session; |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/FunTVVideoFactory.java |
| | |
| | | package com.yeshi.buwan.funtv; |
| | | package com.yeshi.buwan.videos.funtv; |
| | | |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.funtv.vo.*; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.*; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVAlbum.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVAlbum2.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | import com.google.gson.annotations.SerializedName; |
| | | import org.springframework.data.annotation.Id; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVAlbumVideoMap.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVShortVideo2.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | import com.google.gson.annotations.SerializedName; |
| | | import org.springframework.data.annotation.Id; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/FunTVVideo2.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | import com.google.gson.annotations.SerializedName; |
| | | import org.springframework.data.annotation.Id; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/VideoFunTV.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | |
| | | import org.springframework.data.annotation.Id; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/entity/VideoFunTV2.java |
| | |
| | | package com.yeshi.buwan.funtv.entity; |
| | | package com.yeshi.buwan.videos.funtv.entity; |
| | | |
| | | |
| | | import org.springframework.data.annotation.Id; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVCartoonAlbum.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVCartoonVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo; |
| | | |
| | | public class FunTVCartoonVideo extends FunTVBaseVideo { |
| | | private String num;// 视频集数(分集必须提供,预告片花为空) |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVMovieVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo; |
| | | |
| | | public class FunTVMovieVideo extends FunTVBaseVideo { |
| | | private String aid;// 媒体ID |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVShortVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo; |
| | | |
| | | public class FunTVShortVideo extends FunTVBaseVideo { |
| | | private String title; |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVShowAlbum.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVShowVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo; |
| | | |
| | | public class FunTVShowVideo extends FunTVBaseVideo { |
| | | private String issue;// 期号如2011-07-23期/issue// |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVTVAlbum.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseAlbum; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseAlbum; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/FunTVTVVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.vo; |
| | | package com.yeshi.buwan.videos.funtv.vo; |
| | | |
| | | import com.yeshi.buwan.funtv.vo.base.FunTVBaseVideo; |
| | | import com.yeshi.buwan.videos.funtv.vo.base.FunTVBaseVideo; |
| | | |
| | | public class FunTVTVVideo extends FunTVBaseVideo { |
| | | private String num;// 视频集数(分集必须提供,如是片花则为空) |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/base/FunTVBaseAlbum.java |
| | |
| | | package com.yeshi.buwan.funtv.vo.base; |
| | | package com.yeshi.buwan.videos.funtv.vo.base; |
| | | |
| | | /** |
| | | * 风行专辑 |
File was renamed from src/main/java/com/yeshi/buwan/funtv/vo/base/FunTVBaseVideo.java |
| | |
| | | package com.yeshi.buwan.funtv.vo.base; |
| | | package com.yeshi.buwan.videos.funtv.vo.base; |
| | | |
| | | public class FunTVBaseVideo { |
| | | private String vid;// 视频ID/vid// |
New file |
| | |
| | | package com.yeshi.buwan.videos.hanmi; |
| | | |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.videos.hanmi.entity.HanmiShow; |
| | | import com.yeshi.buwan.videos.hanmi.entity.HanmiShowEpisode; |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | | import org.jsoup.nodes.Element; |
| | | import org.jsoup.select.Elements; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class HanmiApiUtil { |
| | | |
| | | public static HanmiShow parseShowDetail(String url) throws Exception { |
| | | HanmiShow show = new HanmiShow(); |
| | | show.setUrl(url); |
| | | return parseShowDetail(show); |
| | | } |
| | | |
| | | public static HanmiShow parseShowDetail(HanmiShow show) throws Exception { |
| | | if (show.getUrl() == null || !show.getUrl().startsWith("https://www.hmtv.me/show/")) { |
| | | throw new Exception("链接不合法"); |
| | | } |
| | | Document doc = Jsoup.connect(show.getUrl()).timeout(60000).referrer("https://www.hmtv.me/hanju").userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36").get(); |
| | | |
| | | Element root = doc.getElementsByClass("video-content").get(0); |
| | | Element titleItem = root.getElementsByClass("article-title").get(0); |
| | | |
| | | //标题 |
| | | String title = titleItem.getElementsByClass("item-title").get(0).ownText(); |
| | | |
| | | String year = titleItem.getElementsByClass("item-year").get(0).ownText(); |
| | | |
| | | |
| | | //节目信息 |
| | | Element videoBox = root.getElementsByClass("video_box").get(0); |
| | | |
| | | String picture = videoBox.getElementsByClass("video_img").get(0).getElementsByTag("img").attr("src"); |
| | | |
| | | Element videoInfo = videoBox.getElementsByClass("video_info").get(0); |
| | | String videoInfoStr = videoInfo.html(); |
| | | String[] sts = videoInfoStr.split("<br>"); |
| | | Map<String, String> infos = new HashMap<>(); |
| | | for (String st : sts) { |
| | | Document d = Jsoup.parse(st); |
| | | String value = d.text(); |
| | | if (value.indexOf(":") > -1) |
| | | infos.put(value.substring(0, value.indexOf(":")).trim(), value.substring(value.indexOf(":") + 1).trim()); |
| | | } |
| | | |
| | | //剧集列表 |
| | | Element eposide = root.getElementsByClass("video_list_li").get(0); |
| | | Elements eposides = eposide.getElementsByTag("a"); |
| | | List<HanmiShowEpisode> episodeList = new ArrayList<>(); |
| | | for (int i = 0; i < eposides.size(); i++) { |
| | | String href = eposides.get(i).attr("href"); |
| | | String tag = eposides.get(i).ownText(); |
| | | HanmiShowEpisode ep = new HanmiShowEpisode(); |
| | | ep.setOrderBy(i + 1); |
| | | ep.setPlayUrl("https://www.hmtv.me" + href); |
| | | ep.setTag(tag); |
| | | episodeList.add(ep); |
| | | } |
| | | |
| | | //简介 |
| | | String desc = root.getElementsByClass("jianjie").get(0).text(); |
| | | |
| | | |
| | | if (show.getTitle() == null) |
| | | show.setTitle(title.split(" ")[0]); |
| | | show.setYear(year.replace("(", "").replace(")", "")); |
| | | show.setPicture(picture); |
| | | if (infos.get("主演") != null) |
| | | show.setActors(infos.get("主演").replace("/", ",")); |
| | | if (infos.get("导演") != null) |
| | | show.setDirector(infos.get("导演")); |
| | | if (infos.get("类型") != null) |
| | | show.setCategorys(infos.get("类型")); |
| | | if (infos.get("国家/地区") != null) |
| | | show.setArea(infos.get("国家/地区")); |
| | | if (infos.get("首播") != null) |
| | | show.setRelaseDate(infos.get("首播").substring(0, infos.get("首播").indexOf("(") > -1 ? infos.get("首播").indexOf("(") : infos.get("首播").length())); |
| | | |
| | | show.setId(show.getUrl().replace("https://www.hmtv.me/show/", "").trim()); |
| | | show.setEpisodeList(episodeList); |
| | | show.setUrl(show.getUrl()); |
| | | show.setDesc(desc.trim()); |
| | | return show; |
| | | } |
| | | |
| | | |
| | | public static List<HanmiShow> parseList(String listUrl) throws IOException { |
| | | List<HanmiShow> list = new ArrayList<>(); |
| | | Document doc = Jsoup.connect(listUrl).timeout(60000).referrer("https://www.hmtv.me/hanju").userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36").get(); |
| | | Element root = doc.getElementsByClass("m-movies").get(0); |
| | | Elements items = root.getElementsByClass("u-movie"); |
| | | for (int i = 0; i < items.size(); i++) { |
| | | Element item = items.get(i); |
| | | HanmiShow show = new HanmiShow(); |
| | | show.setUrl(item.getElementsByTag("a").get(0).attr("href")); |
| | | show.setTag(item.getElementsByClass("zhuangtai").get(0).text()); |
| | | String score = item.getElementsByClass("pingfen").get(0).text(); |
| | | if (score != null) { |
| | | score = score.replace("分", ""); |
| | | show.setScore(score); |
| | | } |
| | | show.setTitle(item.getElementsByTag("h2").get(0).getElementsByTag("a").get(0).ownText()); |
| | | list.add(show); |
| | | } |
| | | |
| | | return list; |
| | | } |
| | | |
| | | public static List<HanmiShow> parseDetailList(List<HanmiShow> showList) throws Exception { |
| | | List<HanmiShow> list = new ArrayList<>(); |
| | | for (HanmiShow show : showList) { |
| | | try { |
| | | list.add(parseShowDetail(show)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | parseDetailList(parseList("https://www.hmtv.me/hanju")); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.yeshi.buwan.videos.hanmi.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
| | | import org.springframework.data.mongodb.core.mapping.Document; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Document(collection = "hanmiShow") |
| | | public class HanmiShow { |
| | | |
| | | @Id |
| | | private String id; |
| | | private String title; |
| | | private String url; |
| | | private String tag; |
| | | private String desc; |
| | | private String score; |
| | | private String picture; |
| | | private String director; |
| | | private String actors; |
| | | private String type; |
| | | private String categorys; |
| | | private String area; |
| | | private String year; |
| | | private String relaseDate; |
| | | private Date createTime; |
| | | private Date updateTime; |
| | | |
| | | |
| | | |
| | | @Transient |
| | | private List<HanmiShowEpisode> episodeList; |
| | | |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | public Date getUpdateTime() { |
| | | return updateTime; |
| | | } |
| | | |
| | | public void setUpdateTime(Date updateTime) { |
| | | this.updateTime = updateTime; |
| | | } |
| | | |
| | | public String getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(String id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getTitle() { |
| | | return title; |
| | | } |
| | | |
| | | public void setTitle(String title) { |
| | | this.title = title; |
| | | } |
| | | |
| | | public String getDirector() { |
| | | return director; |
| | | } |
| | | |
| | | public void setDirector(String director) { |
| | | this.director = director; |
| | | } |
| | | |
| | | public String getActors() { |
| | | return actors; |
| | | } |
| | | |
| | | public void setActors(String actors) { |
| | | this.actors = actors; |
| | | } |
| | | |
| | | public String getCategorys() { |
| | | return categorys; |
| | | } |
| | | |
| | | public void setCategorys(String categorys) { |
| | | this.categorys = categorys; |
| | | } |
| | | |
| | | public String getArea() { |
| | | return area; |
| | | } |
| | | |
| | | public void setArea(String area) { |
| | | this.area = area; |
| | | } |
| | | |
| | | public String getRelaseDate() { |
| | | return relaseDate; |
| | | } |
| | | |
| | | public void setRelaseDate(String relaseDate) { |
| | | this.relaseDate = relaseDate; |
| | | } |
| | | |
| | | |
| | | public String getType() { |
| | | return type; |
| | | } |
| | | |
| | | public void setType(String type) { |
| | | this.type = type; |
| | | } |
| | | |
| | | public List<HanmiShowEpisode> getEpisodeList() { |
| | | return episodeList; |
| | | } |
| | | |
| | | public void setEpisodeList(List<HanmiShowEpisode> episodeList) { |
| | | this.episodeList = episodeList; |
| | | } |
| | | |
| | | public String getYear() { |
| | | return year; |
| | | } |
| | | |
| | | public void setYear(String year) { |
| | | this.year = year; |
| | | } |
| | | |
| | | public String getPicture() { |
| | | return picture; |
| | | } |
| | | |
| | | public void setPicture(String picture) { |
| | | this.picture = picture; |
| | | } |
| | | |
| | | public String getUrl() { |
| | | return url; |
| | | } |
| | | |
| | | public void setUrl(String url) { |
| | | this.url = url; |
| | | } |
| | | |
| | | public String getTag() { |
| | | return tag; |
| | | } |
| | | |
| | | public void setTag(String tag) { |
| | | this.tag = tag; |
| | | } |
| | | |
| | | public String getDesc() { |
| | | return desc; |
| | | } |
| | | |
| | | public void setDesc(String desc) { |
| | | this.desc = desc; |
| | | } |
| | | |
| | | public String getScore() { |
| | | return score; |
| | | } |
| | | |
| | | public void setScore(String score) { |
| | | this.score = score; |
| | | } |
| | | } |
New file |
| | |
| | | package com.yeshi.buwan.videos.hanmi.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.mapping.Document; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Document(collection = "hanmiShowEpisode") |
| | | public class HanmiShowEpisode { |
| | | |
| | | @Id |
| | | private String id; |
| | | private String showId; |
| | | private int orderBy; |
| | | private String tag; |
| | | private String playUrl; |
| | | private Date createTime; |
| | | private Date updateTime; |
| | | |
| | | |
| | | public static String createId(String showId, String tag) { |
| | | return showId + "#" + tag; |
| | | } |
| | | |
| | | |
| | | public String getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(String id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getShowId() { |
| | | return showId; |
| | | } |
| | | |
| | | public void setShowId(String showId) { |
| | | this.showId = showId; |
| | | } |
| | | |
| | | public int getOrderBy() { |
| | | return orderBy; |
| | | } |
| | | |
| | | public void setOrderBy(int orderBy) { |
| | | this.orderBy = orderBy; |
| | | } |
| | | |
| | | public String getTag() { |
| | | return tag; |
| | | } |
| | | |
| | | public void setTag(String tag) { |
| | | this.tag = tag; |
| | | } |
| | | |
| | | public String getPlayUrl() { |
| | | return playUrl; |
| | | } |
| | | |
| | | public void setPlayUrl(String playUrl) { |
| | | this.playUrl = playUrl; |
| | | } |
| | | |
| | | public Date getCreateTime() { |
| | | return createTime; |
| | | } |
| | | |
| | | public void setCreateTime(Date createTime) { |
| | | this.createTime = createTime; |
| | | } |
| | | |
| | | public Date getUpdateTime() { |
| | | return updateTime; |
| | | } |
| | | |
| | | public void setUpdateTime(Date updateTime) { |
| | | this.updateTime = updateTime; |
| | | } |
| | | } |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/IqiYiAPI.java |
| | |
| | | package com.yeshi.buwan.iqiyi; |
| | | package com.yeshi.buwan.videos.iqiyi; |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.lang.reflect.Type; |
| | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiChannel; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.iqiyi.entity.PlayControls; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiChannel; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.PlayControls; |
| | | import com.yeshi.buwan.util.HttpUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/IqiYiNewAPI.java |
| | |
| | | package com.yeshi.buwan.iqiyi; |
| | | package com.yeshi.buwan.videos.iqiyi; |
| | | |
| | | import com.google.gson.*; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.util.HttpUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiAlbum.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | import com.google.gson.annotations.SerializedName; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiAlbum2.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiChannel.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | public class IqiyiChannel { |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiUpdateQueue.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | public class IqiyiUpdateQueue { |
| | | private Long id;//主键ID |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/IqiyiVideoInfo.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/PlayControls.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | public class PlayControls { |
| | | private int platformId; |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/ThreeCategory.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | import com.google.gson.annotations.Expose; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/VideoIqiyi.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/entity/VideoIqiyi2.java |
| | |
| | | package com.yeshi.buwan.iqiyi.entity; |
| | | package com.yeshi.buwan.videos.iqiyi.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/util/IqiyiUtil.java |
| | |
| | | package com.yeshi.buwan.iqiyi.util; |
| | | package com.yeshi.buwan.videos.iqiyi.util; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.iqiyi.IqiYiAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.*; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.*; |
| | | import com.yeshi.buwan.log.LogHelper; |
| | | import com.yeshi.buwan.service.imp.juhe.IqiyiService; |
| | | import com.yeshi.buwan.util.JuheVideoUtil; |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/util/IqiyiUtil2.java |
| | |
| | | package com.yeshi.buwan.iqiyi.util; |
| | | package com.yeshi.buwan.videos.iqiyi.util; |
| | | |
| | | import com.yeshi.buwan.domain.AdminInfo; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.log.VideoLogFactory; |
| | | import com.yeshi.buwan.util.mq.CMQManager; |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 强制保存 |
| | | * |
| | | * @param list |
| | | */ |
| | | private void forceSaveAlbumAndVideo(List<IqiyiAlbum2> list) { |
| | | if (list == null) |
| | | return; |
| | | for (IqiyiAlbum2 album : list) { |
| | | if (album.getContentType() != 1) |
| | | continue; |
| | | if (!albumIsValid(album)) {//如果是无效的专辑就需要删除 |
| | | iqiyi2Service.deleteByAid(album.getId()); |
| | | continue; |
| | | } |
| | | |
| | | |
| | | logger.info(VideoLogFactory.createAddAlbumLog(album)); |
| | | |
| | | int validCount = 0; |
| | | if (album.getTvQipuIds() != null && album.getTvQipuIds().size() > 0) { |
| | | int pageSize = 10; |
| | | int page = album.getTvQipuIds().size() % pageSize == 0 ? album.getTvQipuIds().size() / pageSize : album.getTvQipuIds().size() / pageSize + 1; |
| | | for (int p = 0; p < page; p++) { |
| | | int startIndex = p * pageSize; |
| | | int toIndex = (startIndex + pageSize) > album.getTvQipuIds().size() ? album.getTvQipuIds().size() : (startIndex + pageSize); |
| | | List<Long> tvQipuIds = new ArrayList<>(); |
| | | tvQipuIds.addAll(album.getTvQipuIds().subList(startIndex, toIndex)); |
| | | if (tvQipuIds.size() > 0) { |
| | | List<IqiyiAlbum2> detailList = IqiYiNewAPI.getAlbumOrVideoDetail(tvQipuIds); |
| | | if (detailList != null) |
| | | for (IqiyiAlbum2 video : detailList) |
| | | if (canPlay(video.getPlayControls())) { |
| | | iqiyi2Service.saveIqiyiAlbum(video); |
| | | validCount++; |
| | | } else |
| | | iqiyi2Service.deleteByAid(video.getId()); |
| | | } |
| | | } |
| | | } |
| | | if(validCount==0){ |
| | | iqiyi2Service.deleteByAid(album.getId()); |
| | | }else { |
| | | iqiyi2Service.saveIqiyiAlbum(album); |
| | | CMQManager.getInstance().addIqiyiAlbumUpdateMsg(album.getId()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 同步所有的专辑与视频 |
| | | * |
| | |
| | | * |
| | | * @param aid |
| | | */ |
| | | public void syncByAid(Long aid) { |
| | | public void syncByAid(Long aid, boolean force) { |
| | | List<Long> aidList = new ArrayList<>(); |
| | | aidList.add(aid); |
| | | List<IqiyiAlbum2> album2List = IqiYiNewAPI.getAlbumOrVideoDetail(aidList); |
| | | saveAlbumAndVideo(album2List); |
| | | if (force) { |
| | | forceSaveAlbumAndVideo(album2List); |
| | | } else { |
| | | saveAlbumAndVideo(album2List); |
| | | } |
| | | } |
| | | |
| | | //拉取所有的电影 |
| | |
| | | return false; |
| | | |
| | | List<IqiyiAlbum2.PlayControlsBean> playControls = album2.getPlayControls(); |
| | | if (playControls == null) |
| | | return canPlay(playControls); |
| | | } |
| | | |
| | | public static boolean canPlay(List<IqiyiAlbum2.PlayControlsBean> playControlsBeans) { |
| | | if (playControlsBeans == null) |
| | | return false; |
| | | for (IqiyiAlbum2.PlayControlsBean bean : playControls) { |
| | | for (IqiyiAlbum2.PlayControlsBean bean : playControlsBeans) { |
| | | if (bean.getPlatformId() == 15 && bean.getAvailableStatus() == 1) |
| | | return true; |
| | | } |
File was renamed from src/main/java/com/yeshi/buwan/iqiyi/vo/IqiyiAlbumListResult.java |
| | |
| | | package com.yeshi.buwan.iqiyi.vo; |
| | | package com.yeshi.buwan.videos.iqiyi.vo; |
| | | |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/mogotv/MogoTVApiUtil.java |
| | |
| | | package com.yeshi.buwan.mogotv; |
| | | package com.yeshi.buwan.videos.mogotv; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo; |
| | | import net.sf.json.JSONArray; |
| | | import net.sf.json.JSONObject; |
| | | import org.yeshi.utils.HttpUtil; |
File was renamed from src/main/java/com/yeshi/buwan/mogotv/MogoTVUtil.java |
| | |
| | | package com.yeshi.buwan.mogotv; |
| | | package com.yeshi.buwan.videos.mogotv; |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVSearchVideoMap; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVVideo; |
| | | import com.yeshi.buwan.service.imp.VideoResourceService; |
| | | import com.yeshi.buwan.service.imp.VideoTypeService; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
File was renamed from src/main/java/com/yeshi/buwan/mogotv/entity/MogoTVClipInfo.java |
| | |
| | | package com.yeshi.buwan.mogotv.entity; |
| | | package com.yeshi.buwan.videos.mogotv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
File was renamed from src/main/java/com/yeshi/buwan/mogotv/entity/MogoTVSearchVideoMap.java |
| | |
| | | package com.yeshi.buwan.mogotv.entity; |
| | | package com.yeshi.buwan.videos.mogotv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/mogotv/entity/MogoTVVideo.java |
| | |
| | | package com.yeshi.buwan.mogotv.entity; |
| | | package com.yeshi.buwan.videos.mogotv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVApiUtil.java |
| | |
| | | package com.yeshi.buwan.pptv; |
| | | package com.yeshi.buwan.videos.pptv; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.buwan.pptv.entity.PPTVGoodsInfo; |
| | | import com.yeshi.buwan.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVGoodsInfo; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.log.LoggerUtil; |
| | |
| | | import org.slf4j.LoggerFactory; |
| | | import org.yeshi.utils.HttpUtil; |
| | | |
| | | import java.lang.reflect.Field; |
| | | import java.net.URLEncoder; |
| | | import java.util.*; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVQuery.java |
| | |
| | | package com.yeshi.buwan.pptv; |
| | | package com.yeshi.buwan.videos.pptv; |
| | | |
| | | public class PPTVQuery { |
| | | public String seriesCode; |
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVUtil.java |
| | |
| | | package com.yeshi.buwan.pptv; |
| | | package com.yeshi.buwan.videos.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.videos.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.util.AESUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
File was renamed from src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java |
| | |
| | | package com.yeshi.buwan.pptv; |
| | | package com.yeshi.buwan.videos.pptv; |
| | | |
| | | import com.yeshi.buwan.domain.user.LoginUserExtra; |
| | | import com.yeshi.buwan.domain.vip.OrderRecord; |
| | |
| | | import com.yeshi.buwan.exception.order.OrderException; |
| | | import com.yeshi.buwan.exception.vip.VIPException; |
| | | import com.yeshi.buwan.exception.vip.VideoBuyRecordException; |
| | | import com.yeshi.buwan.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVProgram; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.service.inter.LoginUserService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPPriceService; |
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVGoodsInfo.java |
| | |
| | | package com.yeshi.buwan.pptv.entity; |
| | | package com.yeshi.buwan.videos.pptv.entity; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVProgram.java |
| | |
| | | package com.yeshi.buwan.pptv.entity; |
| | | package com.yeshi.buwan.videos.pptv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.mapping.Document; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Document(collection = "pptvProgram") |
| | | public class PPTVProgram { |
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVSeries.java |
| | |
| | | package com.yeshi.buwan.pptv.entity; |
| | | package com.yeshi.buwan.videos.pptv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/PPTVSeriesProgramMap.java |
| | |
| | | package com.yeshi.buwan.pptv.entity; |
| | | package com.yeshi.buwan.videos.pptv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/pptv/entity/VideoPPTVMap.java |
| | |
| | | package com.yeshi.buwan.pptv.entity; |
| | | package com.yeshi.buwan.videos.pptv.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/sohu/SoHuApi.java |
| | |
| | | package com.yeshi.buwan.sohu; |
| | | package com.yeshi.buwan.videos.sohu; |
| | | |
| | | import java.lang.reflect.Type; |
| | | import java.util.HashMap; |
| | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.sohu.entity.RootCategory; |
| | | import com.yeshi.buwan.sohu.entity.SecondCategory; |
| | | import com.yeshi.buwan.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.sohu.entity.SohuVideoContent; |
| | | import com.yeshi.buwan.videos.sohu.entity.RootCategory; |
| | | import com.yeshi.buwan.videos.sohu.entity.SecondCategory; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.videos.sohu.entity.SohuVideoContent; |
| | | import com.yeshi.buwan.util.HttpUtil; |
| | | |
| | | import net.sf.json.JSONObject; |
File was renamed from src/main/java/com/yeshi/buwan/sohu/SoHuUtil.java |
| | |
| | | package com.yeshi.buwan.sohu; |
| | | package com.yeshi.buwan.videos.sohu; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | |
| | | import com.yeshi.buwan.domain.VideoType; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.service.imp.juhe.SoHuService; |
| | | import com.yeshi.buwan.sohu.entity.RootCategory; |
| | | import com.yeshi.buwan.sohu.entity.SecondCategory; |
| | | import com.yeshi.buwan.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.sohu.entity.SohuVideoContent; |
| | | import com.yeshi.buwan.videos.sohu.entity.RootCategory; |
| | | import com.yeshi.buwan.videos.sohu.entity.SecondCategory; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuAlbum; |
| | | import com.yeshi.buwan.videos.sohu.entity.SoHuVideo; |
| | | import com.yeshi.buwan.videos.sohu.entity.SohuVideoContent; |
| | | import com.yeshi.buwan.util.JuheVideoUtil; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/RootCategory.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SecondCategory.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | import com.google.gson.annotations.SerializedName; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SoHuAlbum.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | import java.util.List; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SoHuPlay.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | public class SoHuPlay { |
| | | private String aid; |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SoHuVideo.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | /** |
| | | * 搜狐视频详情 |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/SohuVideoContent.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | public class SohuVideoContent { |
| | | private String id; |
File was renamed from src/main/java/com/yeshi/buwan/sohu/entity/VideoSoHu.java |
| | |
| | | package com.yeshi.buwan.sohu.entity; |
| | | package com.yeshi.buwan.videos.sohu.entity; |
| | | |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/tencent/TencentVideoApiUtil.java |
| | |
| | | package com.yeshi.buwan.tencent; |
| | | package com.yeshi.buwan.videos.tencent; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.util.video.web.TencentWebUtil; |
| | | import net.sf.json.JSONObject; |
| | | import org.jsoup.Jsoup; |
| | | import org.jsoup.nodes.Document; |
| | |
| | | import javax.script.ScriptEngine; |
| | | import javax.script.ScriptEngineManager; |
| | | import javax.script.ScriptException; |
| | | import java.io.IOException; |
| | | import java.lang.reflect.Type; |
| | | import java.util.ArrayList; |
| | | import java.util.Iterator; |
| | |
| | | } |
| | | |
| | | |
| | | private static List<TencentCoverInfo> parseList(String url) { |
| | | public static List<TencentCoverInfo> getVideoList(String url) throws Exception { |
| | | List<TencentCoverInfo> coverInfoList = new ArrayList<>(); |
| | | try { |
| | | Document document = Jsoup.connect(url).timeout(5000).get(); |
| | | Elements els = document.getElementsByAttributeValue("class", "list_item"); |
| | | for (int i = 0; i < els.size(); i++) { |
| | | String href = els.get(i).getElementsByTag("a").get(0).attr("href"); |
| | | String img = els.get(i).getElementsByTag("img").get(0).attr("src"); |
| | | img = img.startsWith("http") ? img : "http:" + img; |
| | | try { |
| | | TencentCoverInfo coverInfo = getCoverInfo(href); |
| | | coverInfo.setVertical_pic_url(img); |
| | | coverInfoList.add(coverInfo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | List<TencentWebUtil.TencentWebVideoInfo> list = TencentWebUtil.getVideoList(url); |
| | | for (TencentWebUtil.TencentWebVideoInfo info : list) { |
| | | try { |
| | | TencentCoverInfo coverInfo = getCoverInfo(info.getPlayUrl()); |
| | | coverInfo.setVertical_pic_url(info.getPicture()); |
| | | coverInfoList.add(coverInfo); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } catch (IOException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return coverInfoList; |
| | | } |
| | | |
| | | public static List<TencentCoverInfo> getVideoListByCategory(String channel, int page) { |
| | | return parseList(String.format("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=%s&ipay=2&listpage=%s&offset=%s&pagesize=30&sort=18", channel, page, (page - 1) * 30)); |
| | | |
| | | |
| | | String url = String.format("https://v.qq.com/x/bu/pagesheet/list?_all=1&append=1&channel=%s&ipay=2&listpage=%s&offset=%s&pagesize=30&sort=18", channel, page, (page - 1) * 30); |
| | | try { |
| | | return getVideoList(url); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | |
| | | public static void main(String[] args) throws Exception { |
| | | List<TencentCoverInfo> list1 = getVideoList(TencentWebUtil.getApiUrl("https://v.qq.com/channel/tv?_all=1&channel=tv&iarea=818&listpage=1&sort=18", 1)); |
| | | System.out.println(list1); |
| | | |
| | | if (1 > 0) |
| | | return; |
| | | |
| | | // try { |
| | | TencentCoverInfo info = getCoverInfo("https://v.qq.com/x/cover/7q544xyrava3vxf.html"); |
| | | System.out.println(info); |
File was renamed from src/main/java/com/yeshi/buwan/tencent/TencentVideoUtil.java |
| | |
| | | package com.yeshi.buwan.tencent; |
| | | package com.yeshi.buwan.videos.tencent; |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.TencentVideoService; |
| | | import com.yeshi.buwan.service.manager.search.SolrShortVideoDataManager; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.util.factory.VideoInfoFactory; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import com.yeshi.buwan.util.video.shortvideo.ShortVideoUtil; |
| | | import com.yeshi.buwan.youku.YouKuUtil; |
| | | import com.yeshi.buwan.videos.youku.YouKuUtil; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
File was renamed from src/main/java/com/yeshi/buwan/tencent/entity/TencentCoverInfo.java |
| | |
| | | package com.yeshi.buwan.tencent.entity; |
| | | package com.yeshi.buwan.videos.tencent.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
File was renamed from src/main/java/com/yeshi/buwan/tencent/entity/TencentCoverVideo.java |
| | |
| | | package com.yeshi.buwan.tencent.entity; |
| | | package com.yeshi.buwan.videos.tencent.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
| | | import org.springframework.data.mongodb.core.mapping.Document; |
| | | |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Document(collection = "tencentCoverVideo") |
| | | public class TencentCoverVideo { |
File was renamed from src/main/java/com/yeshi/buwan/tencent/entity/TencentSearchVideoMap.java |
| | |
| | | package com.yeshi.buwan.tencent.entity; |
| | | package com.yeshi.buwan.videos.tencent.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/youku/YouKuApiUtil.java |
| | |
| | | package com.yeshi.buwan.youku; |
| | | package com.yeshi.buwan.videos.youku; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowSimple; |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowSimple; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuVideo; |
| | | import org.json.JSONObject; |
| | | import org.yeshi.utils.HttpUtil; |
| | | import org.yeshi.utils.StringUtil; |
| | |
| | | ps.put("opensysparams", new JSONObject(params).toString()); |
| | | |
| | | return HttpUtil.get("https://openapi.youku.com/router/rest.json", ps, new HashMap<>()); |
| | | } |
| | | |
| | | public static void getSearchRank(String channel, int count) { |
| | | Map<String, String> params = new HashMap<>(); |
| | | params.put("limit", count + ""); |
| | | if (channel != null) { |
| | | params.put("channel", channel); |
| | | } |
| | | System.out.println(request("youku.search.keyword.rankinglist", params)); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | getSearchRank(null,10); |
| | | |
| | | // YouKuShowDetail detail = getShowDetail("1e61efbfbdefbfbd04ef"); |
| | | // System.out.println(detail); |
| | | getVideoList("0a17e614d7e311e68ce4", 1, 20); |
| | | // getVideoList("0a17e614d7e311e68ce4", 1, 20); |
| | | |
| | | // ListResultDTO resultDTO = getShowListByCategory("电视剧", 1); |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/youku/YouKuUtil.java |
| | |
| | | package com.yeshi.buwan.youku; |
| | | package com.yeshi.buwan.videos.youku; |
| | | |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | |
| | | import com.yeshi.buwan.service.imp.VideoTypeService; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.YouKuService; |
| | | import com.yeshi.buwan.util.JsonUtil; |
| | | import com.yeshi.buwan.util.factory.VideoInfoFactory; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | | import com.yeshi.buwan.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuVideo; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuSearchVideoMap.java |
| | |
| | | package com.yeshi.buwan.youku.entity; |
| | | package com.yeshi.buwan.videos.youku.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuShowDetail.java |
| | |
| | | package com.yeshi.buwan.youku.entity; |
| | | package com.yeshi.buwan.videos.youku.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.annotation.Transient; |
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuShowSimple.java |
| | |
| | | package com.yeshi.buwan.youku.entity; |
| | | package com.yeshi.buwan.videos.youku.entity; |
| | | |
| | | public class YouKuShowSimple { |
| | | |
File was renamed from src/main/java/com/yeshi/buwan/youku/entity/YouKuVideo.java |
| | |
| | | package com.yeshi.buwan.youku.entity; |
| | | package com.yeshi.buwan.videos.youku.entity; |
| | | |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.data.mongodb.core.index.Indexed; |
| | |
| | | |
| | | import com.yeshi.buwan.domain.solr.SolrAlbumVideo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.solr.SolrShortVideo; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import com.yeshi.buwan.util.video.VideoConstant; |
| | |
| | | return vo; |
| | | } |
| | | |
| | | |
| | | public static VideoAdminInfoVO create(InternetSearchVideo solrVideo, Map<Long, String> resourceNameMap) { |
| | | VideoAdminInfoVO vo = new VideoAdminInfoVO(); |
| | | vo.setId(solrVideo.getId()); |
| | | vo.setName(solrVideo.getName()); |
| | | vo.setVpicture(solrVideo.getVpicture()); |
| | | vo.setShow(true + ""); |
| | | vo.setUpdatetime(TimeUtil.getGernalTime( |
| | | Long.parseLong( |
| | | StringUtil.isNullOrEmpty(solrVideo.getUpdateTime().getTime() + "") ? "0" : solrVideo.getUpdateTime().getTime() + ""), |
| | | "yyyy-MM-dd")); |
| | | vo.setTag(solrVideo.getTag()); |
| | | vo.setFreeType(0); |
| | | vo.setArea(solrVideo.getArea()); |
| | | vo.setHpicture(solrVideo.getHpicture()); |
| | | List<String> resources = new ArrayList<>(); |
| | | if (solrVideo.getResourceIds() != null) { |
| | | String[] rids = solrVideo.getResourceIds().split(","); |
| | | for (String rid : rids) { |
| | | resources.add(resourceNameMap.get(Long.parseLong(rid))); |
| | | } |
| | | } |
| | | vo.setResourceList(resources); |
| | | if (solrVideo.getCreateTime() != null) |
| | | vo.setCreateTime(TimeUtil.getGernalTime(solrVideo.getCreateTime().getTime(), "yyyy-MM-dd")); |
| | | else |
| | | vo.setCreateTime(TimeUtil.getGernalTime(solrVideo.getUpdateTime().getTime(), "yyyy-MM-dd")); |
| | | return vo; |
| | | } |
| | | |
| | | |
| | | public static VideoAdminInfoVO create(SolrShortVideo solrVideo, Map<Long, String> resourceNameMap) { |
| | | VideoAdminInfoVO vo = new VideoAdminInfoVO(); |
| | | vo.setId(solrVideo.getId()); |
| | | vo.setName(solrVideo.getName()); |
| | | vo.setShow(true + ""); |
| | | vo.setUpdatetime(TimeUtil.getGernalTime(solrVideo.getLocalUpdateTime(), |
| | | "yyyy-MM-dd")); |
| | | vo.setTag(solrVideo.getTag()); |
| | | vo.setFreeType(0); |
| | | vo.setArea(solrVideo.getArea()); |
| | | vo.setHpicture(solrVideo.getPicture()); |
| | | List<String> resources = new ArrayList<>(); |
| | | if (solrVideo.getResourceId() != null) { |
| | | resources.add(resourceNameMap.get(Long.parseLong(solrVideo.getResourceId() + ""))); |
| | | } |
| | | vo.setResourceList(resources); |
| | | vo.setCreateTime(TimeUtil.getGernalTime(solrVideo.getThirdUpdateTime(), "yyyy-MM-dd")); |
| | | return vo; |
| | | } |
| | | |
| | | |
| | | public String getId() { |
| | | return id; |
| | | } |
| | |
| | | //全屏视频广告 |
| | | @Expose |
| | | private boolean fullVideo; |
| | | //全屏视频广告比例 |
| | | @Expose |
| | | private int fullVideoWeight; |
| | | //插屏广告比例 |
| | | @Expose |
| | | private int interstitialWeight; |
| | | |
| | | |
| | | public VideoAdInfo(boolean playVideo, boolean fullVideo) { |
| | | this.playVideo = playVideo; |
| | | this.fullVideo = fullVideo; |
| | | } |
| | | |
| | | public int getFullVideoWeight() { |
| | | return fullVideoWeight; |
| | | } |
| | | |
| | | public void setFullVideoWeight(int fullVideoWeight) { |
| | | this.fullVideoWeight = fullVideoWeight; |
| | | } |
| | | |
| | | public int getInterstitialWeight() { |
| | | return interstitialWeight; |
| | | } |
| | | |
| | | public void setInterstitialWeight(int interstitialWeight) { |
| | | this.interstitialWeight = interstitialWeight; |
| | | } |
| | | |
| | | public boolean isPlayVideo() { |
| | | return playVideo; |
| | | } |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.funtv.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.funtv.entity"> |
| | | <class name="VideoFunTV" table="wk_video_funtv"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.iqiyi.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity"> |
| | | <class name="IqiyiAlbum" table="wk_iqiyi_album"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.iqiyi.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity"> |
| | | <class name="IqiyiUpdateQueue" table="wk_iqiyi_update_queue"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.iqiyi.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity"> |
| | | <class name="IqiyiVideoInfo" table="wk_iqiyi_album_tvid"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.iqiyi.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.iqiyi.entity"> |
| | | <class name="VideoIqiyi" table="wk_video_iqiyi"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.sohu.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.sohu.entity"> |
| | | <class name="SoHuAlbum" table="wk_sohu_album"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.sohu.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.sohu.entity"> |
| | | <class name="SoHuVideo" table="wk_sohu_video"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <!DOCTYPE hibernate-mapping PUBLIC |
| | | "-//Hibernate/Hibernate Mapping DTD 3.0//EN" |
| | | "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> |
| | | <hibernate-mapping package="com.yeshi.buwan.sohu.entity"> |
| | | <hibernate-mapping package="com.yeshi.buwan.videos.sohu.entity"> |
| | | <class name="VideoSoHu" table="wk_video_sohu"> |
| | | <id name="id" column="id"> |
| | | <generator class="native"></generator> |
| | |
| | | <mapping resource="domain/vip/OrderRecord.hbm.xml"/> |
| | | |
| | | <mapping class="com.yeshi.buwan.domain.AcFunTemporary"/> |
| | | <mapping class="com.yeshi.buwan.acFun.AcFunVideo"/> |
| | | <mapping class="com.yeshi.buwan.acFun.AcFunType"/> |
| | | <mapping class="com.yeshi.buwan.acFun.AcTypeEqVideoType"/> |
| | | <mapping class="com.yeshi.buwan.videos.acFun.AcFunVideo"/> |
| | | <mapping class="com.yeshi.buwan.videos.acFun.AcFunType"/> |
| | | <mapping class="com.yeshi.buwan.videos.acFun.AcTypeEqVideoType"/> |
| | | <mapping class="com.yeshi.buwan.domain.Holmes"/> |
| | | |
| | | |
| | |
| | | |
| | | </div> |
| | | |
| | | <select name="select" class="form-control search select-detailsystem"> |
| | | |
| | | <select name="select" class="form-control search select-fromtype"> |
| | | <option value="0">自有库</option> |
| | | <option value="1">全网搜</option> |
| | | <option value="2">短视频</option> |
| | | </select> |
| | | <select name="select" class="form-control search contenttype"> |
| | | <option value="1">正片</option> |
| | |
| | | <td width="12%"> |
| | | <div style="position: relative"> |
| | | <img v-bind:src="item.hpicture" class="cover-h"> |
| | | <img v-if="item.freeType>0" src="image/icon_vip.png" style="position: absolute;right: 0;bottom: 0;height: 20px;"> |
| | | <img v-if="item.freeType>0" src="image/icon_vip.png" |
| | | style="position: absolute;right: 0;bottom: 0;height: 20px;"> |
| | | </div> |
| | | </td> |
| | | <td width="8%"> |
| | |
| | | } |
| | | }, 'json'); |
| | | |
| | | //获取系统列表 |
| | | $.post('api/common/detailsystemlist', {}, function (data) { |
| | | if (data.code == 0) { |
| | | $(".select-detailsystem").empty(); |
| | | $(".select-detailsystem").append("<option value='0'>全部</option>"); |
| | | |
| | | $(".detailsystem").empty(); |
| | | data.data.forEach(function (detailsystem) { |
| | | var html = ""; |
| | | html += "<option value=" + detailsystem.id + ">"; |
| | | html += detailsystem.name; |
| | | html += "</option>"; |
| | | $(".select-detailsystem").append(html); |
| | | |
| | | html = "<li><input type='checkbox' value=" + detailsystem.id + ">"; |
| | | html += "<span>" + detailsystem.name; |
| | | html += "</span> </li>"; |
| | | $(".detailsystem").append(html); |
| | | }); |
| | | } |
| | | |
| | | }, 'json'); |
| | | }); |
| | | </script> |
| | | |
| | |
| | | function getCheckedItems() { |
| | | var ids = ""; |
| | | for (var i = 0; i < $(".check-item").length; i++) { |
| | | |
| | | if ($(".check-item").eq(i).is(':checked')) { |
| | | ids += $(".check-item").eq(i).attr("key") + ","; |
| | | ids += app.videos[i].id + ","; |
| | | } |
| | | } |
| | | if (ids.length > 0) |
| | |
| | | //直接添加到推荐 |
| | | var key = video.id; |
| | | $("#hometype .videoids").val(key); |
| | | //清空显示 |
| | | // $("#hometype").find("input[type=checkbox]").each(function () { |
| | | // this.checked = false; |
| | | // }); |
| | | |
| | | $("#hometype").modal("show"); |
| | | |
| | | // var index = layer.open({ |
| | |
| | | $.post('api/video/videolist', { |
| | | "page": page, |
| | | "videotype": $(".search-div .videotypes select:last").val(), |
| | | "detailsystem": $(".search-div .select-detailsystem").val(), |
| | | "fromtype": $(".search-div .select-fromtype").val(), |
| | | "type": $(".search-div .type").val(), |
| | | "contenttype": $(".contenttype").val(), |
| | | "freeType": $(".freeType").val(), |
| | |
| | | var pic = (da.picture == null || da.picture.length == 0) ? da.video.hpicture : da.picture; |
| | | fk.find(".picture img").attr("src", pic); |
| | | //fk.find(".picture img").attr("src", (da.picture.length < 8 ? da.juhe.hpicture : da.picture)); |
| | | fk.find(".fromType").html(da.fromType==0?'自有库':"全网搜"); |
| | | |
| | | switch (da.fromType) { |
| | | case 0: |
| | | fk.find(".fromType").html('自有库'); |
| | | break; |
| | | case 1: |
| | | fk.find(".fromType").html('全网搜'); |
| | | break; |
| | | case 2: |
| | | fk.find(".fromType").html('短视频'); |
| | | break; |
| | | } |
| | | |
| | | fk.find(".tag").html(da.tag); |
| | | fk.find(".createtime").html(getCommonTime(da.createtime)); |
| | | fk.find(".edit").attr("key", da.id); |
| | |
| | | |
| | | $(".table .anniu .edit").bind("click", function () { |
| | | var id = $(this).attr("key"); |
| | | xadmin.open('修改', './tuijian-lanmuneirong-videos-edit.html?id='+id, 400, 250); |
| | | xadmin.open('修改', './tuijian-lanmuneirong-videos-edit.html?id=' + id, 400, 250); |
| | | }); |
| | | |
| | | }, 'json'); |
| | |
| | | |
| | | import com.yeshi.buwan.dao.VideoInfoDao; |
| | | import com.yeshi.buwan.domain.ResourceVideo; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiVideoInfo; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.service.imp.ClearService; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | | import org.springframework.test.context.ContextConfiguration; |
| | |
| | | public class DES { |
| | | @org.junit.Test |
| | | public void test1() { |
| | | String st = "iDp+mknN2urZPWPAdmBTv1ME3YqW7QwsfhAy2vuuu5CVsK44pBV6Oc3DK0LVEPK/ub/3zZPrRFLcpzNeQC0aZHqfoLGqiUKMvuuaHz1qzAdv+nTV8eBkkVMAM6fQI8wdQYb/zqKW8Eiq9Dmc3GgSnjWBohTKFpFJv4FmiGN8aTwDMwzRJK2Yne1j/f2nXTSJ0otygjq7pazihUJK2LsOeA=="; |
| | | String st = "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"; |
| | | System.out.println(DESUtil.decode(st)); |
| | | } |
| | | |
| | |
| | | import com.yeshi.buwan.dao.juhe.funtv.VideoFunTVNewDao; |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.funtv.FunTVApi; |
| | | import com.yeshi.buwan.funtv.FunTVDataParseUtil; |
| | | import com.yeshi.buwan.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV; |
| | | import com.yeshi.buwan.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.videos.funtv.FunTVApi; |
| | | import com.yeshi.buwan.videos.funtv.FunTVDataParseUtil; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV; |
| | | import com.yeshi.buwan.videos.funtv.vo.FunTVTVAlbum; |
| | | import com.yeshi.buwan.service.imp.juhe.FunTVService; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | | import com.yeshi.buwan.util.CacheUtil; |
| | |
| | | import com.yeshi.buwan.dao.juhe.funtv.FunTVVideo2Dao; |
| | | import com.yeshi.buwan.dao.juhe.funtv.VideoFunTV2Dao; |
| | | import com.yeshi.buwan.dao.juhe.funtv.VideoFunTVNewDao; |
| | | import com.yeshi.buwan.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVShortVideo2; |
| | | import com.yeshi.buwan.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.funtv.entity.VideoFunTV2; |
| | | import com.yeshi.buwan.videos.funtv.FunTVNewApi; |
| | | import com.yeshi.buwan.videos.funtv.FunTVUtil; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVAlbum2; |
| | | import com.yeshi.buwan.videos.funtv.entity.FunTVVideo2; |
| | | import com.yeshi.buwan.videos.funtv.entity.VideoFunTV2; |
| | | import com.yeshi.buwan.job.video.FunTV2VideoUpdate; |
| | | import com.yeshi.buwan.service.imp.ResourceVideoService; |
| | | import com.yeshi.buwan.service.imp.VideoInfoService; |
| | |
| | | package com.hxh.spring.test; |
| | | |
| | | import com.yeshi.buwan.dao.VideoInfoDao; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.service.imp.ClearService; |
| | | import com.yeshi.buwan.service.imp.juhe.IqiyiQueueService; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | |
| | | import com.yeshi.buwan.util.TimeUtil; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Session; |
| | | import org.junit.Test; |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.IqiyiAlbum2Dao; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyi2Dao; |
| | | import com.yeshi.buwan.dao.juhe.iqiyi.VideoIqiyiDao; |
| | | import com.yeshi.buwan.domain.ResourceVideo; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.VideoResource; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.exception.video.IqiyiVideoSolrException; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiAlbum2; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.VideoIqiyi; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil2; |
| | | import com.yeshi.buwan.videos.iqiyi.vo.IqiyiAlbumListResult; |
| | | import com.yeshi.buwan.job.video.Iqiyi2VideoUpdate; |
| | | import com.yeshi.buwan.query.Iqiyi2AlbumQuery; |
| | | import com.yeshi.buwan.service.imp.CategoryVideoService; |
| | |
| | | import org.junit.runner.RunWith; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.orm.hibernate4.HibernateObjectRetrievalFailureException; |
| | | import org.springframework.test.context.ContextConfiguration; |
| | | import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; |
| | | import org.springframework.test.context.web.WebAppConfiguration; |
| | |
| | | |
| | | @Test |
| | | public void syncOne() { |
| | | iqiyiUtil2.syncByAid(111367401L); |
| | | iqiyiUtil2.syncByAid(111367401L, true); |
| | | // iqiyiUtil2.syncByAid(253393601L); |
| | | // iqiyiUtil2.syncByAid(253305701L); |
| | | // iqiyiUtil2.syncByAid(247742201L); |
| | |
| | | // iqiyi2Service.addToVideoInfo(album2); |
| | | // } |
| | | |
| | | Long qikuID = 6544570339302501L; |
| | | Long qikuID = 6917577458483001L; |
| | | |
| | | IqiyiAlbum2 album2 = iqiyi2Service.selectAlbumById(qikuID); |
| | | if (album2 != null) { |
| | |
| | | List<String> urlList = IqiyiUtil2.getAlbumUrlsFromUrl("https://www.iqiyi.com/v_u3d4t2dr7o.html?vfrm=pcw_dianshiju&vfrmblk=B&vfrmrst=fcs_2_p2"); |
| | | for (String url : urlList) { |
| | | String aid = IqiYiNewAPI.getAidByUrl(url); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid)); |
| | | iqiyiUtil2.syncByAid(Long.parseLong(aid), true); |
| | | } |
| | | } |
| | | |
| | |
| | | public void count() { |
| | | // long count = iqiyiAlbum2Dao.countVideoByAid(253120001L); |
| | | // System.out.println(count); |
| | | IqiyiAlbum2 album2 = iqiyiAlbum2Dao.get(7974832045751601L); |
| | | IqiyiAlbum2 album2 = iqiyiAlbum2Dao.get(2928406697871201L); |
| | | iqiyi2Service.addToVideoInfo(album2); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @Resource |
| | | private VideoIqiyi2Dao videoIqiyi2Dao; |
| | | |
| | | @Test |
| | | public void getDetail() { |
| | | iqiyiUtil2.syncByAid(222728201L); |
| | | |
| | | |
| | | iqiyiUtil2.syncByAid(2928406697871201L, true); |
| | | // System.out.println(album2); |
| | | } |
| | | |
| | | //同步爱奇艺的专题 |
| | | @Test |
| | | public void syncIqiyiAlbum() throws IOException { |
| | | //写入爱奇艺ID |
| | | // File f = new File("D:/iqiyi.txt"); |
| | | // f.delete(); |
| | | // if (!f.exists()) |
| | | // f.createNewFile(); |
| | | // BufferedWriter out = new BufferedWriter(new FileWriter(f.getAbsolutePath())); |
| | | // try { |
| | | // for (int i = 0; i < 261; i++) { |
| | | // List<VideoIqiyi2> list = videoIqiyi2Dao.listAll(i*100, 100); |
| | | // for (VideoIqiyi2 iqiyi2 : list) { |
| | | // out.write(iqiyi2.getIqiyiId() + ""); |
| | | // out.newLine(); |
| | | // } |
| | | // } |
| | | // } finally { |
| | | // out.close(); |
| | | // } |
| | | |
| | | List<String> list = new ArrayList<>(); |
| | | Scanner scanner = new Scanner(new File("D:/iqiyi.txt")); |
| | | while (scanner.hasNextLine()) { |
| | | String line = scanner.nextLine(); |
| | | list.add(line.trim()); |
| | | } |
| | | scanner.close(); |
| | | for (int i = 25244; i < list.size(); i++) |
| | | try { |
| | | iqiyiUtil2.syncByAid(Long.parseLong(list.get(i)), true); |
| | | } catch (HibernateObjectRetrievalFailureException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void validSolrState() { |
| | | try { |
| | | iqiyi2Service.validAlbumSolrState(2928406697871201L); |
| | | } catch (IqiyiVideoSolrException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.yeshi.buwan.dao.juhe.pptv.PPTVSeriesProgramMapDao; |
| | | import com.yeshi.buwan.dao.juhe.pptv.VideoPPTVMapDao; |
| | | import com.yeshi.buwan.job.video.PPTVVideoUpdate; |
| | | import com.yeshi.buwan.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.pptv.PPTVUtil; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.pptv.entity.PPTVSeriesProgramMap; |
| | | import com.yeshi.buwan.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.videos.pptv.PPTVApiUtil; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeries; |
| | | import com.yeshi.buwan.videos.pptv.entity.PPTVSeriesProgramMap; |
| | | import com.yeshi.buwan.videos.pptv.entity.VideoPPTVMap; |
| | | import com.yeshi.buwan.service.inter.LoginUserService; |
| | | import com.yeshi.buwan.service.inter.juhe.PPTVService; |
| | | import com.yeshi.buwan.util.StringUtil; |
| | | import com.yeshi.buwan.util.log.LoggerUtil; |
| | | import jxl.Sheet; |
| | | import jxl.Workbook; |
| | | import jxl.write.Label; |
| | |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
| | | |
| | | import com.yeshi.buwan.dao.juhe.sohu.SoHuVideoDao; |
| | | import com.yeshi.buwan.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.videos.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | | |
| | | public class SoHuTest { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | @Test |
| | | public void addToAlbum() { |
| | | albumVideoMapService.add(videoInfoService.getVideoInfo("8441251")); |
| | | } |
| | | |
| | | |
| | | @Test |
| | | public void getById() { |
| | | |
| | | SolrAlbumVideo solrAlbumVideo = solrDataManager.findOne("8441251"); |
| | | System.out.println(solrAlbumVideo); |
| | | } |
| | | |
| | | } |
| | |
| | | package com.hxh.spring.test; |
| | | |
| | | import java.util.List; |
| | | import java.util.regex.Pattern; |
| | | |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | |
| | | |
| | | public class Test { |
| | | |
| | | @org.junit.Test |
| | | public void test() { |
| | | VideoResourceUtil videoResouceUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoResourceUtil.class); |
| | | VideoDetailUtil videoDeailUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoDetailUtil.class); |
| | | ClassService classService = com.yeshi.buwan.util.BeanUtil.getBean(ClassService.class); |
| | | @org.junit.Test |
| | | public void test() { |
| | | VideoResourceUtil videoResouceUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoResourceUtil.class); |
| | | VideoDetailUtil videoDeailUtil = com.yeshi.buwan.util.BeanUtil.getBean(VideoDetailUtil.class); |
| | | ClassService classService = com.yeshi.buwan.util.BeanUtil.getBean(ClassService.class); |
| | | |
| | | List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(new DetailSystem("44"), Integer.parseInt(70 + ""),null); |
| | | List<Long> resourceList = videoResouceUtil.getAvailableResourceIds(new DetailSystem("44"), Integer.parseInt(70 + ""), null); |
| | | |
| | | VideoInfo info = (videoDeailUtil.getVideoInfo(null,3400048 + "", 13 + "", resourceList, |
| | | CacheUtil.getMD5Long(resourceList))); |
| | | VideoInfo info = (videoDeailUtil.getVideoInfo(null, 3400048 + "", 13 + "", resourceList, |
| | | CacheUtil.getMD5Long(resourceList))); |
| | | |
| | | List<VideoType> typeList = classService.getVideoTypeList(info.getId()); |
| | | if (typeList != null && typeList.size() > 0) { |
| | | VideoType type = typeList.get(0); |
| | | while (type.getParent() != null) |
| | | type = type.getParent(); |
| | | info.setVideoType(type); |
| | | } |
| | | List<VideoType> typeList = classService.getVideoTypeList(info.getId()); |
| | | if (typeList != null && typeList.size() > 0) { |
| | | VideoType type = typeList.get(0); |
| | | while (type.getParent() != null) |
| | | type = type.getParent(); |
| | | info.setVideoType(type); |
| | | } |
| | | |
| | | info.setPlayPicture(VideoPictureUtil.getShowPicture(info, "android", 70 + "")); |
| | | for (VideoDetailInfo vd : info.getVideoDetailList()) { |
| | | if (StringUtil.isNullOrEmpty(vd.getExtraId())) |
| | | vd.setExtraId(vd.getId() + ""); |
| | | } |
| | | info.setPlayPicture(VideoPictureUtil.getShowPicture(info, "android", 70 + "")); |
| | | for (VideoDetailInfo vd : info.getVideoDetailList()) { |
| | | if (StringUtil.isNullOrEmpty(vd.getExtraId())) |
| | | vd.setExtraId(vd.getId() + ""); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | @org.junit.Test |
| | | public void test2() { |
| | | BanQuanService banQuanService = BeanUtil.getBean(BanQuanService.class); |
| | | List<String> keys = banQuanService.getBanQuanKeyListAll(43); |
| | | System.out.println(keys); |
| | | } |
| | | @org.junit.Test |
| | | public void test2() { |
| | | BanQuanService banQuanService = BeanUtil.getBean(BanQuanService.class); |
| | | List<String> keys = banQuanService.getBanQuanKeyListAll(43); |
| | | System.out.println(keys); |
| | | } |
| | | |
| | | @org.junit.Test |
| | | public void test3() { |
| | | SolrUtil.dataimportVideo(); |
| | | } |
| | | |
| | | @org.junit.Test |
| | | public void test4() { |
| | | SolrUtil.dataimportVideo(); |
| | | } |
| | | @org.junit.Test |
| | | public void test3() { |
| | | SolrUtil.dataimportVideo(); |
| | | } |
| | | |
| | | @org.junit.Test |
| | | public void test4() { |
| | | String regex = "^http://www\\.baidu\\.com"; |
| | | System.out.print(Pattern.matches(regex, "http://www.baidu.com")); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.entity.PlayUrl; |
| | | import com.yeshi.buwan.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.IqiYiNewAPI; |
| | | import com.yeshi.buwan.videos.iqiyi.entity.IqiyiUpdateQueue; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.service.imp.*; |
| | | import com.yeshi.buwan.service.imp.juhe.IqiyiQueueService; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | |
| | | import org.springframework.test.context.ContextConfiguration; |
| | | import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; |
| | | import org.springframework.test.context.web.WebAppConfiguration; |
| | | import org.yeshi.utils.HttpUtil; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.Serializable; |
| | |
| | | package com.hxh.spring.test; |
| | | |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.service.imp.shop.ShopService; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | | |
| | |
| | | package com.hxh.spring.test; |
| | | |
| | | import com.yeshi.buwan.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.videos.iqiyi.util.IqiyiUtil; |
| | | import com.yeshi.buwan.videos.sohu.SoHuUtil; |
| | | import com.yeshi.buwan.util.BeanUtil; |
| | | |
| | | public class VideoUpdateTest { |
| | |
| | | package com.hxh.spring.test.video; |
| | | |
| | | |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.job.video.MogoTVVideoUpdate; |
| | | import com.yeshi.buwan.job.video.YouKuVideoUpdate; |
| | | import com.yeshi.buwan.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.videos.mogotv.entity.MogoTVClipInfo; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.MogoTVService; |
| | | import com.yeshi.buwan.service.inter.juhe.YouKuService; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | | import com.yeshi.buwan.youku.YouKuApiUtil; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | import org.springframework.test.context.ContextConfiguration; |
| | |
| | | package com.hxh.spring.test.video; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.yeshi.buwan.job.RankJob; |
| | | import com.yeshi.buwan.util.rank.IqiyiRankUtil; |
| | | import com.yeshi.buwan.util.rank.MaoYanUtil; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | import org.springframework.test.context.ContextConfiguration; |
| | | import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; |
| | | import org.springframework.test.context.web.WebAppConfiguration; |
| | | import org.yeshi.utils.StringUtil; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试 |
| | | @ContextConfiguration(locations = {"classpath:spring.xml"}) |
| | | @WebAppConfiguration |
| | | public class RankTest { |
| | | |
| | | @Resource |
| | | private RankJob rankJob; |
| | | |
| | | @Test |
| | | public void getMaoYanRank() { |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | @Test |
| | | public void updateRank() throws Exception { |
| | | rankJob.updateIqiyiRank(""); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.yeshi.buwan.job.video.TencentVideoUpdate; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.TencentVideoService; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import org.json.JSONObject; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | import org.springframework.test.context.ContextConfiguration; |
| | |
| | | } |
| | | |
| | | @Test |
| | | public void test3() { |
| | | try { |
| | | JSONObject data = new JSONObject(); |
| | | data.put("url", "https://v.qq.com/channel/movie?_all=1&channel=movie&charge=4&listpage=1&sort=18"); |
| | | for (int p = 1; p < 20; p++) { |
| | | data.put("page", p); |
| | | tencentVideoUpdate.updateLatestVideoByWebUrl(data.toString()); |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void addToSearch() { |
| | | List<TencentCoverInfo> list = tencentVideoService.list("动漫", 1, 10); |
| | | for (TencentCoverInfo info : list) { |
| | |
| | | |
| | | @Test |
| | | public void addBuWanAndroid() { |
| | | String[] resourceIds = new String[]{"13", "19", "21", "22", "24"}; |
| | | String[] resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27"}; |
| | | for (String rid : resourceIds) { |
| | | try { |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("44", 1, rid, null)); |
| | |
| | | @Test |
| | | public void addMGAndroid() { |
| | | String[] resourceIds = null; |
| | | resourceIds = new String[]{"13", "19", "21", "22", "24"}; |
| | | resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27"}; |
| | | for (String rid : resourceIds) { |
| | | try { |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, "meizu")); |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, null)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | resourceIds = new String[]{"25"}; |
| | | for (String rid : resourceIds) { |
| | | try { |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, "meizu")); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | // resourceIds = new String[]{"25"}; |
| | | // for (String rid : resourceIds) { |
| | | // try { |
| | | // videoResourceVersionMapService.add(new VideoResourceVersionMap("47", 1, rid, "meizu")); |
| | | // } catch (Exception e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // } |
| | | |
| | | } |
| | | |
| | | @Test |
| | | public void addHJAndroid() { |
| | | String[] resourceIds = null; |
| | | resourceIds = new String[]{"13", "19", "21", "22", "24", "25"}; |
| | | resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27", "25"}; |
| | | for (String rid : resourceIds) { |
| | | try { |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("48", 1, rid, null)); |
| | |
| | | |
| | | @Test |
| | | public void addBuWanIOS() { |
| | | String[] resourceIds = new String[]{"19", "24", "25"}; |
| | | String[] resourceIds = new String[]{"13", "20", "17", "19", "21", "22", "24","26", "27"}; |
| | | for (String rid : resourceIds) { |
| | | try { |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("43", 88, rid, "appstore")); |
| | | videoResourceVersionMapService.add(new VideoResourceVersionMap("43", 1, rid, null)); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.YouKuService; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | | import com.yeshi.buwan.youku.YouKuApiUtil; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.videos.youku.YouKuApiUtil; |
| | | import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | import org.springframework.test.context.ContextConfiguration; |
| | |
| | | import org.springframework.test.context.web.WebAppConfiguration; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.swing.*; |
| | | import java.util.List; |
| | | |
| | | // |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Test |
| | | public void test2() { |
| | | List<YouKuShowDetail> details = youKuService.list("电影", 1, 2000); |
| | |
| | | } |
| | | |
| | | @Test |
| | | public void test3() { |
| | | try { |
| | | youKuVideoUpdate.updatebyCategoryUrl("https://www.youku.com/category/show/c_96_s_1.html?theme=dark"); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | @Test |
| | | public void getDetail() { |
| | | YouKuShowDetail detail = YouKuApiUtil.getShowDetail("ceba4745ea10415eb791"); |
| | | try { |
| | |
| | | import com.yeshi.buwan.exception.vip.VIPException; |
| | | import com.yeshi.buwan.exception.vip.VideoBuyRecordException; |
| | | import com.yeshi.buwan.job.OrderJob; |
| | | import com.yeshi.buwan.pptv.PPTVVipManager; |
| | | import com.yeshi.buwan.videos.pptv.PPTVVipManager; |
| | | import com.yeshi.buwan.service.inter.order.OrderService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPPriceService; |
| | | import com.yeshi.buwan.service.inter.vip.VIPService; |