From f9e41adc0b8969005ffd489a0bfb05dbc4d39185 Mon Sep 17 00:00:00 2001 From: Benny Date: Tue, 7 Feb 2023 19:31:09 +0100 Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E8=AE=BA=E6=90=9C=E7=B4=A2=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 获取子评论时会将父评论一同带出 * 更新前端 --- API.md | 128 +++++++++++++++++++++++++++------------------- YYeTsFE | 2 +- yyetsweb/Mongo.py | 11 +++- 3 files changed, 86 insertions(+), 55 deletions(-) diff --git a/API.md b/API.md index b7da3dd..90424cf 100644 --- a/API.md +++ b/API.md @@ -49,44 +49,45 @@ ## 搜索 -同时搜索资源和评论,会以type字段区分,评论会额外返回 `comment_id` +同时搜索资源和评论,会以type字段区分,评论会额外返回 `comment_id` * GET `/api/resource?keyword=权力的游戏` ```json { - "data": [ - { - "id": 10733, - "cnname": "权力的游戏", - "enname": "Game of Thrones", - "aliasname": "冰与火之歌 / 权力的游戏下载 / 权利的游戏 / 冰火", - "channel": "tv", - "channel_cn": "美剧", - "area": "美国", - "show_type": "", - "expire": "1610372082", - "views": 8691, - "year": [ - 2011 - ], - "origin": "yyets" - } - ], - "extra": [], - "comment": [ - { - "username": "Liyixin", - "date": "2021-10-30 10:06:44", - "comment": "我用阿里云盘分享了「权力的游戏.1-8季无删减版(1).1080P」,你可以不限速下载🚀\n复制这段内容打开「阿里云盘」App 即可获取\n链接:https://www.aliyundrive.com/s/hcUfFYnkhN5", - "commentID": "617ca8b470a52cc3ef2b0dff", - "resourceID": 10733, - "resourceName": "权力的游戏", - "origin": "comment" - } - ] + "data": [ + { + "id": 10733, + "cnname": "权力的游戏", + "enname": "Game of Thrones", + "aliasname": "冰与火之歌 / 权力的游戏下载 / 权利的游戏 / 冰火", + "channel": "tv", + "channel_cn": "美剧", + "area": "美国", + "show_type": "", + "expire": "1610372082", + "views": 8691, + "year": [ + 2011 + ], + "origin": "yyets" + } + ], + "extra": [], + "comment": [ + { + "username": "Liyixin", + "date": "2021-10-30 10:06:44", + "comment": "我用阿里云盘分享了「权力的游戏.1-8季无删减版(1).1080P」,你可以不限速下载🚀\n复制这段内容打开「阿里云盘」App 即可获取\n链接:https://www.aliyundrive.com/s/hcUfFYnkhN5", + "commentID": "617ca8b470a52cc3ef2b0dff", + "resourceID": 10733, + "resourceName": "权力的游戏", + "origin": "comment" + } + ] } ``` + 当数据库搜索不到资源时,会尝试从字幕侠、new字幕组和追新番搜索,返回如下 ```json @@ -469,7 +470,7 @@ response 分页,支持URL参数: * resource_id: 资源id,id为233是留言板,id为-1会返回最新评论 -* comment_id: 指定该参数,会只返回这条评论 +* comment_id: 指定该参数,会只返回这条评论。如果是子评论,还会连带父评论一起返回 * size: 每页评论数量,默认5 * page: 当前页,默认1 * inner_size: 内嵌评论数量,默认5 @@ -1040,7 +1041,8 @@ comment_id 是评论的id 推荐值: ```python -[('电影', 12057), ('美剧', 2119), ('日剧', 1215), ('英剧', 641), ('纪录片', 314), ('韩剧', 212), ('动画', 126), ('泰剧', 112), +[('电影', 12057), ('美剧', 2119), ('日剧', 1215), ('英剧', 641), ('纪录片', 314), ('韩剧', 212), ('动画', 126), + ('泰剧', 112), ('加剧', 82), ('西剧', 62), ('澳剧', 61)] ``` @@ -1048,16 +1050,26 @@ comment_id 是评论的id 全部可选值: ```python -[('电影', 12057), ('美剧', 2119), ('日剧', 1215), ('英剧', 641), ('纪录片', 314), ('韩剧', 212), ('动画', 126), ('泰剧', 112), - ('加剧', 82), ('西剧', 62), ('澳剧', 61), ('真人秀', 51), ('法剧', 50), ('德剧', 41), ('公开课', 35), ('其剧', 34), ('越剧', 23), - ('巴剧', 21), ('俄剧', 21), ('意剧', 19), ('墨剧', 16), ('印剧', 16), ('土剧', 16), ('\x00剧', 12), ('电视电影', 12), ('脱口秀', 10), - ('挪威剧', 9), ('丹麦剧', 8), ('综艺', 7), ('葡萄牙剧', 6), ('颁奖礼', 5), ('以色列剧', 4), ('新剧', 4), ('菲律宾剧', 4), ('动漫', 4), ('瑞典剧', 4), - ('新西兰剧', 4), ('神剧', 3), ('短视频', 3), ('舞台剧', 3), ('MV', 3), ('演讲', 3), ('颁奖典礼', 3), ('比利时剧', 3), ('南非剧', 3), ('电视剧', 3), - ('晨间剧', 2), ('短片', 2), ('荷兰剧', 2), ('巴西电视剧', 2), ('爱尔兰剧', 2), ('汽车三贱客', 2), ('芬兰剧', 2), ('大剧', 2), ('美剧 律政', 1), - ('美剧/英剧', 1), ('小镇疑云(美版)', 1), ('动画片', 1), ('埃剧', 1), ('探案', 1), ('纪录', 1), ('演唱会', 1), ('冰岛剧', 1), ('深夜剧', 1), - ('萌剧', 1), ('律政/剧情', 1), ('2013年BBC历史记录片', 1), ('催眠剧', 1), ('波兰剧', 1), ('幼教', 1), ('约旦', 1), ('闹剧', 1), ('浪漫/喜剧', 1), - ('悬疑/罪案', 1), ('BBC世界杯专题纪录片', 1), ('克罗地亚剧', 1), ('台剧', 1), ('墨西哥剧', 1), ('惊悚', 1), ('阿拉伯剧', 1), ('委内瑞拉电视剧', 1), - ('音乐会', 1), ('巴西剧', 1), ('新闻', 1), ('土耳其剧', 1), ('约旦剧', 1), ('发布会', 1), ('丹麦瑞典合拍', 1), ('捷克剧', 1), ('越南剧', 1), +[('电影', 12057), ('美剧', 2119), ('日剧', 1215), ('英剧', 641), ('纪录片', 314), ('韩剧', 212), ('动画', 126), + ('泰剧', 112), + ('加剧', 82), ('西剧', 62), ('澳剧', 61), ('真人秀', 51), ('法剧', 50), ('德剧', 41), ('公开课', 35), ('其剧', 34), + ('越剧', 23), + ('巴剧', 21), ('俄剧', 21), ('意剧', 19), ('墨剧', 16), ('印剧', 16), ('土剧', 16), ('\x00剧', 12), ('电视电影', 12), + ('脱口秀', 10), + ('挪威剧', 9), ('丹麦剧', 8), ('综艺', 7), ('葡萄牙剧', 6), ('颁奖礼', 5), ('以色列剧', 4), ('新剧', 4), + ('菲律宾剧', 4), ('动漫', 4), ('瑞典剧', 4), + ('新西兰剧', 4), ('神剧', 3), ('短视频', 3), ('舞台剧', 3), ('MV', 3), ('演讲', 3), ('颁奖典礼', 3), ('比利时剧', 3), + ('南非剧', 3), ('电视剧', 3), + ('晨间剧', 2), ('短片', 2), ('荷兰剧', 2), ('巴西电视剧', 2), ('爱尔兰剧', 2), ('汽车三贱客', 2), ('芬兰剧', 2), + ('大剧', 2), ('美剧 律政', 1), + ('美剧/英剧', 1), ('小镇疑云(美版)', 1), ('动画片', 1), ('埃剧', 1), ('探案', 1), ('纪录', 1), ('演唱会', 1), + ('冰岛剧', 1), ('深夜剧', 1), + ('萌剧', 1), ('律政/剧情', 1), ('2013年BBC历史记录片', 1), ('催眠剧', 1), ('波兰剧', 1), ('幼教', 1), ('约旦', 1), + ('闹剧', 1), ('浪漫/喜剧', 1), + ('悬疑/罪案', 1), ('BBC世界杯专题纪录片', 1), ('克罗地亚剧', 1), ('台剧', 1), ('墨西哥剧', 1), ('惊悚', 1), + ('阿拉伯剧', 1), ('委内瑞拉电视剧', 1), + ('音乐会', 1), ('巴西剧', 1), ('新闻', 1), ('土耳其剧', 1), ('约旦剧', 1), ('发布会', 1), ('丹麦瑞典合拍', 1), + ('捷克剧', 1), ('越南剧', 1), ('剧情', 1), ('墨西哥电视剧', 1), ('韩综', 1), ('花絮', 1), ('', 1)] ``` @@ -1068,8 +1080,10 @@ comment_id 是评论的id 推荐值 ```python -[('美国', 9057), ('日本', 2233), ('英国', 1637), ('法国', 902), ('韩国', 763), ('其他', 535), ('德国', 402), ('加拿大', 313), - ('西班牙', 280), ('印度', 247), ('俄罗斯', 234), ('泰国', 191), ('澳大利亚', 182), ('意大利', 150), ('', 109), ('越南', 60), ('巴西', 54), +[('美国', 9057), ('日本', 2233), ('英国', 1637), ('法国', 902), ('韩国', 763), ('其他', 535), ('德国', 402), + ('加拿大', 313), + ('西班牙', 280), ('印度', 247), ('俄罗斯', 234), ('泰国', 191), ('澳大利亚', 182), ('意大利', 150), ('', 109), + ('越南', 60), ('巴西', 54), ('大陆', 52), ('墨西哥', 40), ('土耳其', 35), ('新加坡', 23), ('香港', 20), ('埃及', 1), ('台湾', 1)] ``` @@ -1079,14 +1093,22 @@ comment_id 是评论的id 不推荐使用!数据缺失非常严重 ```python -[('', 16751), ('纪录片', 314), ('动画', 126), ('日剧', 110), ('真人秀', 51), ('电视电影', 12), ('脱口秀', 10), ('挪威剧', 9), ('美剧', 8), - ('丹麦剧', 8), ('综艺', 7), ('葡萄牙剧', 6), ('颁奖礼', 5), ('以色列剧', 4), ('菲律宾剧', 4), ('动漫', 4), ('瑞典剧', 4), ('新西兰剧', 4), - ('神剧', 3), ('英剧', 3), ('短视频', 3), ('舞台剧', 3), ('MV', 3), ('演讲', 3), ('颁奖典礼', 3), ('比利时剧', 3), ('南非剧', 3), ('晨间剧', 2), - ('短片', 2), ('荷兰剧', 2), ('新剧', 2), ('巴西电视剧', 2), ('爱尔兰剧', 2), ('汽车三贱客', 2), ('芬兰剧', 2), ('泰剧', 1), ('美剧 律政', 1), - ('美剧/英剧', 1), ('小镇疑云(美版)', 1), ('动画片', 1), ('探案', 1), ('纪录', 1), ('演唱会', 1), ('冰岛剧', 1), ('深夜剧', 1), ('萌剧', 1), - ('律政/剧情', 1), ('2013年BBC历史记录片', 1), ('催眠剧', 1), ('波兰剧', 1), ('幼教', 1), ('约旦', 1), ('闹剧', 1), ('浪漫/喜剧', 1), ('韩剧', 1), - ('悬疑/罪案', 1), ('西剧', 1), ('BBC世界杯专题纪录片', 1), ('克罗地亚剧', 1), ('墨西哥剧', 1), ('惊悚', 1), ('阿拉伯剧', 1), ('委内瑞拉电视剧', 1), - ('音乐会', 1), ('巴西剧', 1), ('新闻', 1), ('土耳其剧', 1), ('约旦剧', 1), ('发布会', 1), ('丹麦瑞典合拍', 1), ('捷克剧', 1), ('越南剧', 1), +[('', 16751), ('纪录片', 314), ('动画', 126), ('日剧', 110), ('真人秀', 51), ('电视电影', 12), ('脱口秀', 10), + ('挪威剧', 9), ('美剧', 8), + ('丹麦剧', 8), ('综艺', 7), ('葡萄牙剧', 6), ('颁奖礼', 5), ('以色列剧', 4), ('菲律宾剧', 4), ('动漫', 4), + ('瑞典剧', 4), ('新西兰剧', 4), + ('神剧', 3), ('英剧', 3), ('短视频', 3), ('舞台剧', 3), ('MV', 3), ('演讲', 3), ('颁奖典礼', 3), ('比利时剧', 3), + ('南非剧', 3), ('晨间剧', 2), + ('短片', 2), ('荷兰剧', 2), ('新剧', 2), ('巴西电视剧', 2), ('爱尔兰剧', 2), ('汽车三贱客', 2), ('芬兰剧', 2), + ('泰剧', 1), ('美剧 律政', 1), + ('美剧/英剧', 1), ('小镇疑云(美版)', 1), ('动画片', 1), ('探案', 1), ('纪录', 1), ('演唱会', 1), ('冰岛剧', 1), + ('深夜剧', 1), ('萌剧', 1), + ('律政/剧情', 1), ('2013年BBC历史记录片', 1), ('催眠剧', 1), ('波兰剧', 1), ('幼教', 1), ('约旦', 1), ('闹剧', 1), + ('浪漫/喜剧', 1), ('韩剧', 1), + ('悬疑/罪案', 1), ('西剧', 1), ('BBC世界杯专题纪录片', 1), ('克罗地亚剧', 1), ('墨西哥剧', 1), ('惊悚', 1), + ('阿拉伯剧', 1), ('委内瑞拉电视剧', 1), + ('音乐会', 1), ('巴西剧', 1), ('新闻', 1), ('土耳其剧', 1), ('约旦剧', 1), ('发布会', 1), ('丹麦瑞典合拍', 1), + ('捷克剧', 1), ('越南剧', 1), ('剧情', 1), ('墨西哥电视剧', 1), ('韩综', 1), ('花絮', 1)] ``` diff --git a/YYeTsFE b/YYeTsFE index 2868979..a937b23 160000 --- a/YYeTsFE +++ b/YYeTsFE @@ -1 +1 @@ -Subproject commit 28689798464c16fb21f87454d4c9bd624bf690fe +Subproject commit a937b2301607b5863cf59f31c1cf40ca5686e1f6 diff --git a/yyetsweb/Mongo.py b/yyetsweb/Mongo.py index 4c68102..5902dbf 100644 --- a/yyetsweb/Mongo.py +++ b/yyetsweb/Mongo.py @@ -207,7 +207,16 @@ class CommentMongoResource(CommentResource, Mongo): condition = {"resource_id": resource_id, "deleted_at": {"$exists": False}, "type": {"$ne": "child"}} if comment_id: - condition.update(_id=ObjectId(comment_id)) + # 搜索某个评论id的结果 + condition = { + "deleted_at": {"$exists": False}, + "$or": [ + # 如果是子评论id,搜索子评论,会将整个父评论带出 + {"children": {"$in": [ObjectId(comment_id)]}}, + # 如果是父评论id,搜索父评论,并且排除子评论的记录 + {"_id": ObjectId(comment_id), "type": {"$ne": "child"}} + ] + } count = self.db["comment"].count_documents(condition) data = self.db["comment"].find(condition, self.projection) \