diff --git a/src/main/java/cn/fw/freya/task/DataCaptureTask.java b/src/main/java/cn/fw/freya/task/DataCaptureTask.java index 5b84940..c107d23 100644 --- a/src/main/java/cn/fw/freya/task/DataCaptureTask.java +++ b/src/main/java/cn/fw/freya/task/DataCaptureTask.java @@ -120,7 +120,12 @@ public class DataCaptureTask { final List playbackMsg = this.getPlaybackMsg(account);// 获取该人的直播回放信息 boolean flag = false; for (LivePool item : list) { - JSONObject obj = kuaiShouCrawl.setPlaybackUrl(item, playbackMsg, durationThreshold); + JSONObject obj; + if (Objects.equals(playbackMsg.size(), 1) && (obj = playbackMsg.get(0)).size() <= 1) {// 表示拿到了回放, 但未找出合适的回放 + + } else { + obj = kuaiShouCrawl.setPlaybackUrl(item, playbackMsg, durationThreshold); + } String playbackUrl = obj.getString("playbackUrl"); Boolean hasInvalidPlayback = obj.getBoolean("hasInvalidPlayback"); final LivePool livePool = PublicUtil.copy(item, LivePool.class);// 对象拷贝 @@ -166,7 +171,7 @@ public class DataCaptureTask { userLivePlayback = kuaiShouCrawl.getUserLivePlayback(playbackSearchKey); else userLivePlayback = kuaiShouCrawl.getUserLivePlayback(account.getPhoneNo()); - return userLivePlayback + final List collect = userLivePlayback .stream() .filter(item -> { JSONObject obj = (JSONObject) item; @@ -181,6 +186,14 @@ public class DataCaptureTask { return obj; }) .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(collect)) {// 找到回放, 筛选结果不为空 + return collect; + } + final JSONObject obj = new JSONObject();// 直接无回放数据 + if (!CollectionUtils.isEmpty(userLivePlayback)) {// 找到回放, 但未筛选到适合的回放 + obj.put("hasInvalidPlayback", true); + } + return Collections.singletonList(obj); } }