From 905d33fefd19eaf676351353006230343c073006 Mon Sep 17 00:00:00 2001 From: harryzhang <1056373864@qq.com> Date: Fri, 15 May 2020 00:44:58 +0800 Subject: [PATCH] fixed page offset --- README.md | 2 +- .../com/debugers/alltv/controller/TopController.java | 4 +++- .../com/debugers/alltv/enumType/BilibiliOpenApi.java | 3 ++- src/main/java/com/debugers/alltv/model/LiveRoom.java | 7 ++++++- .../java/com/debugers/alltv/service/DouYuService.java | 11 +++++++++-- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index b70e066..068c0ee 100644 --- a/README.md +++ b/README.md @@ -110,4 +110,4 @@ docker run --rm -it -d --name alltv -p 8888:8888 harryzhang6/alltv - [ ] 增加其他平台获取弹幕(websocket) ### AllTV app(努力中)别忘了点star哦 -![testwebsocket](./images/alltv.jpeg) \ No newline at end of file +![alltv_flutter](./images/alltv.jpeg) \ No newline at end of file diff --git a/src/main/java/com/debugers/alltv/controller/TopController.java b/src/main/java/com/debugers/alltv/controller/TopController.java index 4b10ef4..8ae6d95 100644 --- a/src/main/java/com/debugers/alltv/controller/TopController.java +++ b/src/main/java/com/debugers/alltv/controller/TopController.java @@ -6,6 +6,7 @@ import io.swagger.annotations.Api; import org.springframework.web.bind.annotation.*; +import java.util.Collections; import java.util.List; @Api(tags = "综合各个平台") @@ -19,7 +20,8 @@ public TopController(DouYuService douYuService) { } @GetMapping("live/{cid}") public Result> getTopRooms(@PathVariable("cid") String cid, @RequestParam(defaultValue = "0") Integer pageNum){ - List rooms = douYuService.getTopRoomsByCid(cid, 10, pageNum); + List rooms = douYuService.getTopRoomsByCid(cid, 20, pageNum); + Collections.sort(rooms); return Result.success(rooms); } } diff --git a/src/main/java/com/debugers/alltv/enumType/BilibiliOpenApi.java b/src/main/java/com/debugers/alltv/enumType/BilibiliOpenApi.java index fb721ca..ccca342 100644 --- a/src/main/java/com/debugers/alltv/enumType/BilibiliOpenApi.java +++ b/src/main/java/com/debugers/alltv/enumType/BilibiliOpenApi.java @@ -9,7 +9,8 @@ public enum BilibiliOpenApi { //统一后面+roomId SERVER_CONFIG("https://api.live.bilibili.com/room/v1/Danmu/getConf?id="), ROOM_INIT("https://api.live.bilibili.com/room/v1/Room/room_init?id="), - PLAY_URL("https://api.live.bilibili.com/room/v1/Room/playUrl?cid=") + PLAY_URL("https://api.live.bilibili.com/room/v1/Room/playUrl?cid="), + RANK("https://api.live.bilibili.com/room/v1/RoomRecommend/biliIndexRecList") ; private String url; diff --git a/src/main/java/com/debugers/alltv/model/LiveRoom.java b/src/main/java/com/debugers/alltv/model/LiveRoom.java index d6adcd1..2f2236c 100644 --- a/src/main/java/com/debugers/alltv/model/LiveRoom.java +++ b/src/main/java/com/debugers/alltv/model/LiveRoom.java @@ -5,7 +5,7 @@ import java.util.Date; @Data -public class LiveRoom { +public class LiveRoom implements Comparable { private String roomId; private String com;//哪个平台 private String cateId; @@ -18,4 +18,9 @@ public class LiveRoom { private String avatar; private Long online; //热度 private String realUrl; //真是直播地址 + + @Override + public int compareTo(LiveRoom room) { + return (int) (room.getOnline()-online); + } } diff --git a/src/main/java/com/debugers/alltv/service/DouYuService.java b/src/main/java/com/debugers/alltv/service/DouYuService.java index 94820e3..6f59087 100644 --- a/src/main/java/com/debugers/alltv/service/DouYuService.java +++ b/src/main/java/com/debugers/alltv/service/DouYuService.java @@ -204,9 +204,17 @@ public DouYuDTO getRoomInfo(String roomId) { return getDTO(response.getBodyJson()); } + /** + * 获取斗鱼推荐直播间 + * + * @param cid 分类id + * @param pageSize 页数大小 + * @param pageNum 页数 + * @return liveRoom + */ public List getTopRoomsByCid(String cid, Integer pageSize, Integer pageNum) { HttpResponse response = HttpRequest.create(DouYuOpenApi.TOP_ROOM + cid) - .appendParameter("offset", pageNum) + .appendParameter("offset", (pageNum - 1) * pageSize) .appendParameter("limit", pageSize) .setContentType(HttpContentType.FORM).get(); if (404 == response.getCode()) @@ -221,7 +229,6 @@ private LiveRoom convertToLiveRoom(DouYuDTO douYuDTO) { liveRoom.setCom("douyu"); return liveRoom; } - private DouYuDTO getDTO(JSONObject jsonObject) { JSONObject data = jsonObject.getJSONObject("data"); DouYuDTO douYuDTO = new DouYuDTO();