From ee62e2bdc363e70bcd4ab2c32dca980975874ec1 Mon Sep 17 00:00:00 2001 From: Jigsaw Date: Fri, 7 Feb 2025 02:57:52 +0000 Subject: [PATCH] fix/catalog: bgm website (fix #906) --- catalog/sites/bangumi.py | 6 +++++- catalog/tv/tests.py | 21 +++++++++++++++++++ test_data/https___api_bgm_tv_v0_subjects_253 | 1 + test_data/https___api_bgm_tv_v0_subjects_7157 | 1 + 4 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 test_data/https___api_bgm_tv_v0_subjects_253 create mode 100644 test_data/https___api_bgm_tv_v0_subjects_7157 diff --git a/catalog/sites/bangumi.py b/catalog/sites/bangumi.py index bb611ee3..6cccb1b9 100644 --- a/catalog/sites/bangumi.py +++ b/catalog/sites/bangumi.py @@ -267,7 +267,11 @@ class Bangumi(AbstractSite): else ([v] if isinstance(v, str) else []) ) case "官方网站" | "website": - site = v[0] if isinstance(v, list) else v + site = ( + v[0]["v"] + if isinstance(v, list) + else (v if isinstance(v, str) else None) + ) case "页数": pages = v case "价格": diff --git a/catalog/tv/tests.py b/catalog/tv/tests.py index 940b8843..cac21199 100644 --- a/catalog/tv/tests.py +++ b/catalog/tv/tests.py @@ -284,3 +284,24 @@ class IMDBTestCase(TestCase): self.assertEqual(site.resource.item.imdb, "tt10751820") self.assertEqual(site.resource.item.season_number, 2) self.assertEqual(site.resource.item.episode_number, 1) + + +class BangumiTVTestCase(TestCase): + databases = "__all__" + + @use_local_response + def test_scrape(self): + url1 = "https://bgm.tv/subject/7157" + p1 = SiteManager.get_site_by_url(url1).get_resource_ready() + self.assertEqual(p1.item.__class__.__name__, "TVSeason") + self.assertEqual(p1.item.orig_title, "ヨスガノソラ") + self.assertEqual(p1.item.site, "http://king-cr.jp/special/yosuganosora/") + self.assertEqual(p1.item.director, ["高橋丈夫"]) + + url2 = "https://bgm.tv/subject/253" + p2 = SiteManager.get_site_by_url(url2).get_resource_ready() + self.assertEqual(p2.item.__class__.__name__, "TVSeason") + self.assertEqual(p2.item.orig_title, "カウボーイビバップ") + self.assertEqual(p2.item.site, "http://www.cowboybebop.org/") + self.assertEqual(p2.item.director, ["渡辺信一郎"]) + self.assertEqual(p2.item.episode_count, 26) diff --git a/test_data/https___api_bgm_tv_v0_subjects_253 b/test_data/https___api_bgm_tv_v0_subjects_253 new file mode 100644 index 00000000..f74440bd --- /dev/null +++ b/test_data/https___api_bgm_tv_v0_subjects_253 @@ -0,0 +1 @@ +{"date":"1998-10-23","platform":"TV","images":{"small":"https://lain.bgm.tv/r/200/pic/cover/l/c2/4c/253_jJJj9.jpg","grid":"https://lain.bgm.tv/r/100/pic/cover/l/c2/4c/253_jJJj9.jpg","large":"https://lain.bgm.tv/pic/cover/l/c2/4c/253_jJJj9.jpg","medium":"https://lain.bgm.tv/r/800/pic/cover/l/c2/4c/253_jJJj9.jpg","common":"https://lain.bgm.tv/r/400/pic/cover/l/c2/4c/253_jJJj9.jpg"},"summary":" 2021年,随着超光速航行技术的实现,人类得以在太阳系范围内方便的自由移动,但是由于设计上的失误,这种技术引发了月球的爆炸,无数的月球碎片被吸引向地球,造成了空前绝后的大灾难。存活下来的人类逃离地球,并开始在太阳系各地建立家园。由于这次灾难,国家、政府等权利机构都极为不稳定、治安问题也成为了一个难题。为了在人力资源不足的情况下抓捕罪犯,有些组织开始允许个人抓捕通缉的罪犯并换取奖金,“赏金猎人”这个职业也就由此诞生了。\r\n 史派克(Spike)和杰特(Jet)是驾驶飞船Bebop号在宇宙中以捉拿逃犯获取奖金为生的赏金猎人。两人在星际间的旅程中,结识了身负巨债、嗜财如命的美女菲(Faye)和电脑神童艾德(Ed),并收养了拥有高智商的数据狗爱因(Ein)。从此,四人一狗游荡在广阔之宇宙之中,在自己与他人的生活中经历著种种悲欢离合,也寻找著各自的过去。","name":"カウボーイビバップ","name_cn":"星际牛仔","tags":[{"name":"渡边信一郎","count":4824,"total_cont":0},{"name":"菅野洋子","count":4029,"total_cont":0},{"name":"星际牛仔","count":3469,"total_cont":0},{"name":"科幻","count":2942,"total_cont":0},{"name":"经典","count":2791,"total_cont":0},{"name":"SUNRISE","count":2129,"total_cont":0},{"name":"神作","count":2014,"total_cont":0},{"name":"神配乐","count":1749,"total_cont":0},{"name":"TV","count":1487,"total_cont":0},{"name":"1998","count":1375,"total_cont":0},{"name":"原创","count":1147,"total_cont":0},{"name":"CowboyBebop","count":1013,"total_cont":0},{"name":"林原惠","count":578,"total_cont":0},{"name":"cowboy","count":566,"total_cont":0},{"name":"山寺宏一","count":234,"total_cont":0},{"name":"公路片","count":132,"total_cont":0},{"name":"1998年10月","count":131,"total_cont":0},{"name":"浪漫","count":106,"total_cont":0},{"name":"日本","count":74,"total_cont":0},{"name":"渡辺信一郎","count":70,"total_cont":0},{"name":"BONES","count":64,"total_cont":0},{"name":"战斗","count":56,"total_cont":0},{"name":"信本敬子","count":46,"total_cont":0},{"name":"菅野よう子","count":40,"total_cont":0},{"name":"音乐","count":39,"total_cont":0},{"name":"1998年","count":37,"total_cont":0},{"name":"90年代","count":35,"total_cont":0},{"name":"单元剧","count":34,"total_cont":0},{"name":"川元利浩","count":33,"total_cont":0},{"name":"神","count":33,"total_cont":0}],"infobox":[{"key":"中文名","value":"星际牛仔"},{"key":"别名","value":[{"v":"Cowboy Bebop"},{"v":"宇宙牛仔"},{"v":"赏金猎人"},{"v":"太空牛仔"},{"v":"恶男杰特"}]},{"key":"话数","value":"26"},{"key":"放送开始","value":"1998年10月23日"},{"key":"放送星期","value":"星期五"},{"key":"官方网站","value":[{"v":"http://www.cowboybebop.org/"},{"v":"http://www.cowboy-bebop.net/index.html"}]},{"key":"播放电视台","value":"WOWOW、テレビ東京"},{"key":"播放结束","value":"1999年4月23日"},{"key":"导演","value":"渡辺信一郎"},{"key":"音乐","value":"菅野よう子"},{"key":"企画","value":"サンライズ"},{"key":"原作","value":"矢立肇"},{"key":"系列构成","value":"信本敬子"},{"key":"人物设定","value":"川元利浩"},{"key":"机械设定","value":"山根公利"},{"key":"设定","value":"セットデザイン:今掛勇、舞台設定協力:河森正治、佐藤大"},{"key":"3DCG","value":"モニターCG:佐山善則"},{"key":"メイン・タイトル","value":"マツモト・デザインセンター"},{"key":"美术监督","value":"東潤一"},{"key":"色彩设计","value":"中山しほ子"},{"key":"摄影监督","value":"大神洋一"},{"key":"剪辑","value":"鶴渕友彰、ビデオ編集:キュー・テック、今塚誠、菅原慎一"},{"key":"コンピュータ処理","value":"レアトリック、チャッピィ"},{"key":"現像","value":"東京現像所"},{"key":"音响监督","value":"小林克良"},{"key":"音效","value":"倉橋静男(サウンドボックス)"},{"key":"录音","value":"APUスタジオ、整音:田中章喜、内山敬章"},{"key":"录音助理","value":"整音助手:田口信孝"},{"key":"音响","value":"音響制作:AUDIO PLANNING U、担当:飯草良花、小澤恵"},{"key":"主题歌编曲","value":"菅野よう子"},{"key":"主题歌作曲","value":"菅野よう子"},{"key":"主题歌作词","value":"岩里祐穂、Tim Jensen"},{"key":"主题歌演出","value":"シートベルツ(THE SEATBELTS)、山根麻以"},{"key":"音乐制作人","value":"太田敏明、音楽ディレクター:佐々木史朗、井上裕香子"},{"key":"音乐制作","value":"ビクターエンタテインメント"},{"key":"宣传","value":"番宣:佐伯真美 (テレビ東京)(テレビ東京放送版でクレジット)"},{"key":"連載","value":"「ファンタジーDX」 (角川書店)"},{"key":"制片人","value":"南雅彦、池口和彦、担当:小林教子 (テレビ東京)(テレビ東京放送版でクレジット)、山崎立士(テレビ東京放送版でクレジット)"},{"key":"助理制片人","value":"小池経利、梅澤勝路"},{"key":"制作管理","value":"制作デスク:松村圭一"},{"key":"设定制作","value":"文芸・設定制作:鳥羽聡"},{"key":"制作进行","value":"村田央(進行チーフ)"},{"key":"制作进行协力","value":"制作助手:喜多幡咲子"},{"key":"配給","value":"旭通信社(テレビ東京放送版でクレジット)"},{"key":"製作","value":"サンライズ、バンダイビジュアル"},{"key":"脚本","value":"信本敬子(1,3,6,12,13,15,22,25,26)、横手美智子(2,5,7,8,11,16,17,24)、山口亮太(3)、村井さだゆき(4,20,21)、佐藤大(9,14,23)、稲荷昭彦(10,18,19)、渡辺信一郎(17,21);脚本协力:河森正治(18)、吉永亜矢(18)、山根公利(19)"},{"key":"分镜","value":"渡辺信一郎(1,2,5,9,17,25,26)、赤根和樹(3)、武井良幸(4,8,20,23)、岡村天斎(6,7,12,13,15,22,24)、山口祐司(10)、森邦宏(11)、都留稔幸(14)、山内重保(16)、佐藤順一(18)、飯田馬之介(19)、本郷みつる(21)"},{"key":"OP・ED 分镜","value":"渡辺信一郎(OP,ED)"},{"key":"演出","value":"武井良幸(1,4,8,12,18,20,23,26)、佐藤育郎(2,6,9,13,16,21,25)、森邦宏(3,7,11,15,17,22)、渡邊哲哉(5)、山田弘和(10,14,19,24)"},{"key":"总作画监督","value":"川元利浩(25)"},{"key":"作画监督","value":"川元利浩(1,5,12,22,26,OP,ED)、竹内浩志(2,6,16,21,23)、本橋秀之(3,7)、しんぼたくろう(4,8,11,14,17)、小森高博(9,13,20,25)、逢坂浩司(10,15,19)、中田栄治(17)、菅野宏紀(18,24)、後藤雅巳(OP,ED)"},{"key":"机械作画监督","value":"佐野浩敏(1)、後藤雅巳(3-26)"},{"key":"构图","value":"入江泰浩"},{"key":"原画","value":"逢坂浩司、中田栄治、後藤雅巳、小森高博、杉浦幸次、中村豊、伊藤嘉之、斎藤恒徳、鴨川浩、伊藤岳史、横山彰利、星和伸、大塚健、宮田忠明、吉田徹、川元利浩、菅野宏紀、橋本誠一、富岡隆司、井上英紀、岡真里子、津野田勝敏、入江泰浩、佐藤千春、高橋しんや、伊東伸高、高山朋浩、吉田大輔、オープニング原画:そえたかずひろ、小森高博、後藤雅巳、今掛勇、エンディング原画:逢坂浩司"},{"key":"特效","value":"長谷川敏生"},{"key":"动画制作","value":"サンライズ"},{"key":"テレビ東京版","value":"1998年4月3日 - 1998年6月26日(全12话+总集篇)"}],"rating":{"rank":2,"total":16149,"count":{"1":58,"2":11,"3":12,"4":19,"5":90,"6":222,"7":713,"8":2331,"9":5106,"10":7587},"score":9.1},"total_episodes":31,"collection":{"on_hold":1369,"dropped":288,"wish":8451,"collect":21219,"doing":2725},"id":253,"eps":26,"meta_tags":["科幻","TV","日本","原创"],"volumes":0,"series":false,"locked":false,"nsfw":false,"type":2} \ No newline at end of file diff --git a/test_data/https___api_bgm_tv_v0_subjects_7157 b/test_data/https___api_bgm_tv_v0_subjects_7157 new file mode 100644 index 00000000..1ce0f984 --- /dev/null +++ b/test_data/https___api_bgm_tv_v0_subjects_7157 @@ -0,0 +1 @@ +{"date":"2010-10-04","platform":"TV","images":{"small":"https://lain.bgm.tv/r/200/pic/cover/l/6e/01/7157_QV8Rz.jpg","grid":"https://lain.bgm.tv/r/100/pic/cover/l/6e/01/7157_QV8Rz.jpg","large":"https://lain.bgm.tv/pic/cover/l/6e/01/7157_QV8Rz.jpg","medium":"https://lain.bgm.tv/r/800/pic/cover/l/6e/01/7157_QV8Rz.jpg","common":"https://lain.bgm.tv/r/400/pic/cover/l/6e/01/7157_QV8Rz.jpg"},"summary":"远离都市的乡间、奥木染。春日野悠带着他的妹妹·春日野穹来到了这里。\r\n兄妹俩幼时暑假期间曾来过多次奥木染,这里有着祖父的家,是个令人怀念的地方。\r\n因为意外事故而失去了双亲与去处的兄妹,决定移居至现在没有人居住的祖父家,在此开始新的生活。\r\n\r\n觉得自小以来就没怎么变化的街道与居民、教人怀念的回忆与静谧的环境,让悠倍感舒适。但徐徐地,变化来到了。\r\n阳光日渐变得强烈的初夏天空之下,故事开始了。","name":"ヨスガノソラ","name_cn":"缘之空","tags":[{"name":"妹控","count":2362,"total_cont":0},{"name":"GAL改","count":2171,"total_cont":0},{"name":"缘之空","count":1745,"total_cont":0},{"name":"2010年10月","count":1177,"total_cont":0},{"name":"TV","count":1068,"total_cont":0},{"name":"萌穹妹得永生","count":960,"total_cont":0},{"name":"Feel.","count":902,"total_cont":0},{"name":"穹妹","count":788,"total_cont":0},{"name":"恋爱","count":766,"total_cont":0},{"name":"2010","count":676,"total_cont":0},{"name":"游戏改","count":562,"total_cont":0},{"name":"下限","count":528,"total_cont":0},{"name":"推实妹","count":479,"total_cont":0},{"name":"一般向你妹","count":268,"total_cont":0},{"name":"BGM絕贊","count":253,"total_cont":0},{"name":"后宫","count":173,"total_cont":0},{"name":"校园","count":139,"total_cont":0},{"name":"推真妹","count":98,"total_cont":0},{"name":"里番","count":89,"total_cont":0},{"name":"下野紘","count":83,"total_cont":0},{"name":"肉番","count":72,"total_cont":0},{"name":"卖肉","count":60,"total_cont":0},{"name":"高桥丈夫","count":53,"total_cont":0},{"name":"兄妹","count":47,"total_cont":0},{"name":"高橋丈夫","count":45,"total_cont":0},{"name":"一般向","count":39,"total_cont":0},{"name":"肉","count":39,"total_cont":0},{"name":"妹","count":35,"total_cont":0},{"name":"日常","count":34,"total_cont":0},{"name":"骨科","count":29,"total_cont":0}],"infobox":[{"key":"中文名","value":"缘之空"},{"key":"别名","value":[{"v":"Yosuga no Sora"},{"v":"In Solitude Where We Are Least Alone"},{"v":"緣之空"}]},{"key":"话数","value":"12"},{"key":"放送开始","value":"2010年10月4日"},{"key":"放送星期","value":"星期一"},{"key":"官方网站","value":[{"v":"http://king-cr.jp/special/yosuganosora/"},{"v":"http://www.starchild.co.jp/special/yosuganosora/"}]},{"key":"播放电视台","value":"AT-X"},{"key":"其他电视台","value":"TOKYO MX / BS11"},{"key":"播放结束","value":"2010年12月20日"},{"key":"导演","value":"高橋丈夫"},{"key":"音乐","value":"三輪学、Bruno Wen-li(市川淳)"},{"key":"Copyright","value":"©Sphere/奥木染町内会"},{"key":"原作","value":"Sphere"},{"key":"人物原案","value":"橋本タカシ、鈴平ひろ"},{"key":"人物设定","value":"神本兼利"},{"key":"主题歌编曲","value":"菊地創 / NARASAKI"},{"key":"主题歌作曲","value":"菊地創 / NARASAKI"},{"key":"主题歌作词","value":"riya / 村野直球"},{"key":"主题歌演出","value":"eufonius / ももいろクローバー(ももいろクローバーZ)"},{"key":"制作","value":"ガンジス"},{"key":"製作","value":"奥木染町内会(キングレコード)"},{"key":"企画","value":"森山敦;企画协力:ガンジス、森堅人、納谷僚介、沼田知己、木村佳宏、藤田敏"},{"key":"制片人","value":"山中隆弘、川崎とも子"},{"key":"助理制片人","value":"林玄規"},{"key":"音乐制作","value":"STAR CHILD"},{"key":"动画制片人","value":"瀧ヶ崎誠"}],"rating":{"rank":4665,"total":10948,"count":{"1":72,"2":77,"3":156,"4":507,"5":1151,"6":3184,"7":3395,"8":1421,"9":488,"10":497},"score":6.6},"total_episodes":12,"collection":{"on_hold":557,"dropped":458,"wish":1250,"collect":17197,"doing":417},"id":7157,"eps":12,"meta_tags":["TV","恋爱","日本","游戏改"],"volumes":0,"series":false,"locked":false,"nsfw":false,"type":2} \ No newline at end of file