Skip to content

Commit 7545115

Browse files
committed
代码优化
1 parent 30d64d2 commit 7545115

9 files changed

Lines changed: 164 additions & 89 deletions

src/main/java/com/suda/MyVideoApi/conf/InterceptorConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,17 @@ public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletRespo
4444
httpServletResponse.setHeader("Access-Control-Allow-Methods", "*");
4545
httpServletResponse.setHeader("Access-Control-Allow-Headers", "*");
4646

47-
logger.info("---------------------开始进入请求地址拦截----------------------------");
47+
//logger.info("---------------------开始进入请求地址拦截----------------------------");
4848
return true;
4949
}
5050

5151
@Override
5252
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
53-
logger.info("---------------------处理请求完成后视图渲染之前的处理操作---------------");
53+
//logger.info("---------------------处理请求完成后视图渲染之前的处理操作---------------");
5454
}
5555

5656
@Override
5757
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
58-
logger.info("---------------------视图渲染之后的操作-------------------------------");
58+
//logger.info("---------------------视图渲染之后的操作-------------------------------");
5959
}
6060
}

src/main/java/com/suda/MyVideoApi/service/BaseVideoService.java

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@
99
import com.suda.MyVideoApi.domian.dos.VideoSeriesDO;
1010
import com.suda.MyVideoApi.domian.dto.VideoDTO;
1111
import com.suda.MyVideoApi.util.JsoupUtils;
12-
import com.suda.MyVideoApi.util.SuplayerUtil;
13-
import com.suda.MyVideoApi.util.TextUtil;
1412
import lombok.AllArgsConstructor;
1513
import org.jsoup.nodes.Document;
1614
import org.jsoup.nodes.Element;
1715
import org.jsoup.select.Elements;
1816
import org.springframework.data.redis.core.RedisTemplate;
17+
import org.springframework.util.StringUtils;
1918

2019
import java.util.ArrayList;
2120
import java.util.Collections;
@@ -122,7 +121,7 @@ public String queryPlayUrl(String videoId, String seriesId) throws BizException
122121
String playUrl = (String) redisTemplate.opsForValue().get(key);
123122
if (playUrl == null) {
124123
String seriesUrl = String.format(getApi().resSeriresUrl, videoId, seriesId).replace(PLAY_SPLITE, "/");
125-
playUrl = SuplayerUtil.getPlayUrl(seriesUrl, getApi().sourceId);
124+
playUrl = parsePlayUrl(seriesUrl);
126125
redisTemplate.opsForValue().set(key, playUrl);
127126
redisTemplate.expire(key, 1, TimeUnit.HOURS);
128127
}
@@ -171,9 +170,9 @@ protected Elements parseItems(Document document) {
171170
* @return
172171
*/
173172
protected String parseName(Element item) {
174-
Elements names = item.getElementsByTag("h2");
175-
if (names.size() > 0) {
176-
return names.get(0).text();
173+
Element nameEl = item.getElementsByTag("h2").first();
174+
if (nameEl != null) {
175+
return nameEl.text();
177176
}
178177
return "";
179178
}
@@ -185,9 +184,9 @@ protected String parseName(Element item) {
185184
* @return
186185
*/
187186
protected String parseThumb(Element item) {
188-
Elements thumbs = item.getElementsByClass("thumb");
189-
if (thumbs.size() > 0) {
190-
String thumb = thumbs.get(0).attr("data-original");
187+
Element thumbEl = item.getElementsByClass("thumb").first();
188+
if (thumbEl != null) {
189+
String thumb = thumbEl.attr("data-original");
191190
if (thumb.indexOf("http") >= 0) {
192191
return thumb;
193192
} else {
@@ -218,13 +217,13 @@ protected String parseOriginUrl(Element item) {
218217
* @return
219218
*/
220219
protected String parseVideoDesc(Document document) {
221-
Elements jianjies = document.getElementsByClass("jianjie");
222-
if (jianjies.size() > 0) {
223-
jianjies = jianjies.get(0).getElementsByTag("span");
224-
if (jianjies.size() > 0) {
225-
String jianjie = jianjies.get(0).text();
226-
if (!TextUtil.isStrEmpty(jianjie)) {
227-
return jianjie.trim();
220+
Element descEl = document.getElementsByClass("jianjie").first();
221+
if (descEl != null) {
222+
descEl = descEl.getElementsByTag("span").first();
223+
if (descEl != null) {
224+
String desc = descEl.text();
225+
if (!StringUtils.isEmpty(desc)) {
226+
return desc.trim();
228227
}
229228
}
230229
}
@@ -239,9 +238,9 @@ protected String parseVideoDesc(Document document) {
239238
*/
240239
protected List<String> parsePreviewImgs(Document document) {
241240
List<String> previewImgs = new ArrayList<>();
242-
Elements jianjies = document.getElementsByClass("jianjie");
243-
if (jianjies.size() > 0) {
244-
Elements previewImgEl = jianjies.get(0).getElementsByTag("img");
241+
Element jianjiesEl = document.getElementsByClass("jianjie").first();
242+
if (jianjiesEl != null) {
243+
Elements previewImgEl = jianjiesEl.getElementsByTag("img");
245244
for (Element element : previewImgEl) {
246245
String thumb = element.attr("data-original");
247246
if (thumb.indexOf("http") >= 0) {
@@ -289,4 +288,12 @@ protected List<VideoSeriesDO> parseVideoSeries(Document document) {
289288
}
290289
return videoSeriesDOS;
291290
}
291+
292+
/**
293+
* 解析视频播放链接
294+
*
295+
* @param refererUrl
296+
* @return
297+
*/
298+
protected abstract String parsePlayUrl(String refererUrl);
292299
}

src/main/java/com/suda/MyVideoApi/service/VideoCartoonServiceImpl.java

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,22 @@
44
import com.suda.MyVideoApi.domian.BizException;
55
import com.suda.MyVideoApi.domian.dos.VideoSeriesDO;
66
import com.suda.MyVideoApi.domian.dto.VideoDTO;
7-
import com.suda.MyVideoApi.util.TextUtil;
7+
import com.suda.MyVideoApi.util.JsoupUtils;
8+
import com.suda.MyVideoApi.util.SuplayerUtil;
89
import org.jsoup.nodes.Document;
910
import org.jsoup.nodes.Element;
1011
import org.jsoup.select.Elements;
1112
import org.springframework.data.redis.core.RedisTemplate;
1213
import org.springframework.stereotype.Service;
14+
import org.springframework.util.StringUtils;
1315

1416
import java.util.ArrayList;
1517
import java.util.Collections;
1618
import java.util.List;
1719

1820
/**
1921
* 动漫
22+
*
2023
* @author guhaibo
2124
* @date 2018/7/29
2225
*/
@@ -40,18 +43,18 @@ protected Elements parseItems(Document document) {
4043

4144
@Override
4245
protected String parseName(Element item) {
43-
Elements names = item.getElementsByTag("a");
44-
if (names.size() > 0) {
45-
return names.get(0).text();
46+
Element nameEl = item.getElementsByTag("a").first();
47+
if (nameEl != null) {
48+
return nameEl.text();
4649
}
4750
return "";
4851
}
4952

5053
@Override
5154
protected String parseThumb(Element item) {
52-
Elements names = item.getElementsByTag("img");
53-
if (names.size() > 0) {
54-
String thumb = names.get(0).attr("src");
55+
Element thumbEl = item.getElementsByTag("img").first();
56+
if (thumbEl != null) {
57+
String thumb = thumbEl.attr("src");
5558
if (thumb.indexOf("http") >= 0) {
5659
return thumb;
5760
} else {
@@ -68,11 +71,11 @@ public API getApi() {
6871

6972
@Override
7073
protected String parseVideoDesc(Document document) {
71-
Elements jianjies = document.getElementsByClass("jj");
72-
if (jianjies.size() > 0) {
73-
String jianjie = jianjies.get(0).text();
74-
if (!TextUtil.isStrEmpty(jianjie)) {
75-
return jianjie.trim();
74+
Element descEl = document.getElementsByClass("jj").first();
75+
if (descEl != null) {
76+
String desc = descEl.text();
77+
if (!StringUtils.isEmpty(desc)) {
78+
return desc.trim();
7679
}
7780
}
7881
return "";
@@ -81,9 +84,9 @@ protected String parseVideoDesc(Document document) {
8184
@Override
8285
protected List<String> parsePreviewImgs(Document document) {
8386
List<String> previewImgs = new ArrayList<>();
84-
Elements carousel_inners = document.getElementsByClass("carousel-inner");
85-
if (carousel_inners.size() > 0) {
86-
Elements previewImgEl = carousel_inners.get(0).getElementsByTag("img");
87+
Element carouselInnersEl = document.getElementsByClass("carousel-inner").first();
88+
if (carouselInnersEl != null) {
89+
Elements previewImgEl = carouselInnersEl.getElementsByTag("img");
8790
for (Element element : previewImgEl) {
8891
String thumb = element.attr("src");
8992
if (thumb.indexOf("http") >= 0) {
@@ -117,4 +120,11 @@ protected List<VideoSeriesDO> parseVideoSeries(Document document) {
117120
}
118121
return videoSeriesDOS;
119122
}
123+
124+
@Override
125+
protected String parsePlayUrl(String refererUrl) {
126+
Document pcDocument = JsoupUtils.getDocWithPC(refererUrl);
127+
String playerUrl = pcDocument.getElementsByClass("player").first().attr("src");
128+
return SuplayerUtil.getPlayUrl(refererUrl, playerUrl, "https://api.1suplayer.me/player/api.php");
129+
}
120130
}

src/main/java/com/suda/MyVideoApi/service/VideoDiliServiceImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
package com.suda.MyVideoApi.service;
22

33
import com.suda.MyVideoApi.constant.API;
4+
import com.suda.MyVideoApi.util.JsoupUtils;
5+
import com.suda.MyVideoApi.util.SuplayerUtil;
6+
import org.jsoup.nodes.Document;
7+
import org.jsoup.select.Elements;
48
import org.springframework.data.redis.core.RedisTemplate;
59
import org.springframework.stereotype.Service;
610

11+
import java.util.ArrayList;
12+
import java.util.List;
13+
import java.util.regex.Matcher;
14+
import java.util.regex.Pattern;
15+
716
/**
817
* @author guhaibo
918
* @date 2018/7/29
@@ -19,4 +28,20 @@ public VideoDiliServiceImpl(RedisTemplate redisTemplate) {
1928
public API getApi() {
2029
return API.DILI;
2130
}
31+
32+
@Override
33+
protected String parsePlayUrl(String refererUrl) {
34+
Document pcDocument = JsoupUtils.getDocWithPC(refererUrl);
35+
Elements script = pcDocument.body().getElementsByTag("script");
36+
String scriptText = script.get(1).data();
37+
Pattern pattern = Pattern.compile("\"(.*?)\"");
38+
Matcher m = pattern.matcher(scriptText);
39+
List<String> params = new ArrayList<>();
40+
while (m.find()) {
41+
params.add(m.group().replace("\"", ""));
42+
}
43+
String playerUrl = "https://api.1suplayer.me/player/?userID=&type="
44+
+ params.get(0) + "&vkey=" + params.get(1);
45+
return SuplayerUtil.getPlayUrl(refererUrl, playerUrl, "https://api.1suplayer.me/player/api.php");
46+
}
2247
}

src/main/java/com/suda/MyVideoApi/service/VideoHJServiceImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
package com.suda.MyVideoApi.service;
22

33
import com.suda.MyVideoApi.constant.API;
4+
import com.suda.MyVideoApi.util.JsoupUtils;
5+
import com.suda.MyVideoApi.util.SuplayerUtil;
6+
import org.jsoup.nodes.Document;
7+
import org.jsoup.select.Elements;
48
import org.springframework.data.redis.core.RedisTemplate;
59
import org.springframework.stereotype.Service;
610

11+
import java.util.ArrayList;
12+
import java.util.List;
13+
import java.util.regex.Matcher;
14+
import java.util.regex.Pattern;
15+
716
/**
817
* @author guhaibo
918
* @date 2018/7/29
@@ -19,4 +28,20 @@ public VideoHJServiceImpl(RedisTemplate redisTemplate) {
1928
public API getApi() {
2029
return API.HJ;
2130
}
31+
32+
@Override
33+
protected String parsePlayUrl(String refererUrl) {
34+
Document pcDocument = JsoupUtils.getDocWithPC(refererUrl);
35+
Elements script = pcDocument.body().getElementsByTag("script");
36+
String scriptText = script.get(0).data();
37+
Pattern pattern = Pattern.compile("\"(.*?)\"");
38+
Matcher m = pattern.matcher(scriptText);
39+
List<String> params = new ArrayList<>();
40+
while (m.find()) {
41+
params.add(m.group().replace("\"", ""));
42+
}
43+
String playerUrl = "https://api.1suplayer.me/player/?userID=&type="
44+
+ params.get(0) + "&vkey=" + params.get(1);
45+
return SuplayerUtil.getPlayUrl(refererUrl, playerUrl, "https://api.1suplayer.me/player/api.php");
46+
}
2247
}

src/main/java/com/suda/MyVideoApi/service/VideoLZServiceImpl.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
package com.suda.MyVideoApi.service;
22

33
import com.suda.MyVideoApi.constant.API;
4+
import com.suda.MyVideoApi.util.JsoupUtils;
5+
import com.suda.MyVideoApi.util.SuplayerUtil;
6+
import org.jsoup.nodes.Document;
7+
import org.jsoup.select.Elements;
48
import org.springframework.data.redis.core.RedisTemplate;
59
import org.springframework.stereotype.Service;
610

11+
import java.util.ArrayList;
12+
import java.util.List;
13+
import java.util.regex.Matcher;
14+
import java.util.regex.Pattern;
15+
716
/**
817
* @author guhaibo
918
* @date 2018/7/29
@@ -19,4 +28,19 @@ public VideoLZServiceImpl(RedisTemplate redisTemplate) {
1928
public API getApi() {
2029
return API.LZ;
2130
}
31+
32+
@Override
33+
protected String parsePlayUrl(String refererUrl) {
34+
Document pcDocument = JsoupUtils.getDocWithPC(refererUrl);
35+
Elements script = pcDocument.body().getElementsByTag("script");
36+
String scriptText = script.get(1).data();
37+
Pattern pattern = Pattern.compile("\"(.*?)\"");
38+
Matcher m = pattern.matcher(scriptText);
39+
List<String> params = new ArrayList<>();
40+
while (m.find()) {
41+
params.add(m.group().replace("\"", ""));
42+
}
43+
String playerUrl = "http://www.lzvod.net/player/?type=" + params.get(0) + "&vkey=" + params.get(1);
44+
return SuplayerUtil.getPlayUrl(refererUrl, playerUrl, "http://www.lzvod.net/player/1suplayer.php");
45+
}
2246
}

src/main/java/com/suda/MyVideoApi/service/VideoMjwServiceImpl.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
package com.suda.MyVideoApi.service;
22

33
import com.suda.MyVideoApi.constant.API;
4+
import com.suda.MyVideoApi.util.JsoupUtils;
5+
import com.suda.MyVideoApi.util.SuplayerUtil;
6+
import org.jsoup.nodes.Document;
7+
import org.jsoup.select.Elements;
48
import org.springframework.data.redis.core.RedisTemplate;
59
import org.springframework.stereotype.Service;
610

11+
import java.util.ArrayList;
12+
import java.util.List;
13+
import java.util.regex.Matcher;
14+
import java.util.regex.Pattern;
15+
716
/**
817
* @author guhaibo
918
* @date 2018/7/29
@@ -18,4 +27,20 @@ public VideoMjwServiceImpl(RedisTemplate redisTemplate) {
1827
public API getApi() {
1928
return API.MJW;
2029
}
30+
31+
@Override
32+
protected String parsePlayUrl(String refererUrl) {
33+
Document pcDocument = JsoupUtils.getDocWithPC(refererUrl);
34+
Elements script = pcDocument.body().getElementsByTag("script");
35+
String scriptText = script.get(0).data();
36+
Pattern pattern = Pattern.compile("\"(.*?)\"");
37+
Matcher m = pattern.matcher(scriptText);
38+
List<String> params = new ArrayList<>();
39+
while (m.find()) {
40+
params.add(m.group().replace("\"", ""));
41+
}
42+
String playerUrl = "https://api.1suplayer.me/player/?userID=&type="
43+
+ params.get(0) + "&vkey=" + params.get(1);
44+
return SuplayerUtil.getPlayUrl(refererUrl, playerUrl, "https://api.1suplayer.me/player/api.php");
45+
}
2146
}

0 commit comments

Comments
 (0)