PaiGramTeam / PaiGram

telegram robot, query the official genshin information
GNU Affero General Public License v3.0
84 stars 24 forks source link

[Bug]: https://gensh.honeyhunterworld.com 403 Forbidden #845

Closed lostsnow closed 3 months ago

lostsnow commented 3 months ago

请确保您已阅读以上注意事项,并勾选下方的确认框。

程序版本 (Commit Id)

7c9c5db7ac94cd3cbabc3c19a86e113f467b133e

运行环境

Ubuntu

运行架构

AMD64

重现步骤

docker compose build
docker compose up -d

期望的结果是什么?

Success

实际的结果是什么?

paimon-1  | [2024-07-18 19:40:49] ERROR    基础服务 "AssetsService" 初始化失败,BOT 将自动关闭                                             gram_core.manager 112  
paimon-1  |                                ╭───────────────────────────── Traceback (most recent call last) ─────────────────────────────╮                        
paimon-1  |                                │ /app/gram_core/manager.py:105 in start_dependency                                           │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │   102 │   │   │   │   else:                                                                 │                        
paimon-1  |                                │   103 │   │   │   │   │   instance = await self.executor(dependence)                        │                        
paimon-1  |                                │   104 │   │   │   │                                                                         │                        
paimon-1  |                                │ ❱ 105 │   │   │   │   await instance.initialize()                                           │                        
paimon-1  |                                │   106 │   │   │   │   logger.success('基础服务 "%s" 启动成功', dependence.__name__)         │                        
paimon-1  |                                │   107 │   │   │   │                                                                         │                        
paimon-1  |                                │   108 │   │   │   │   self._lib[dependence] = instance                                      │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ ╭─────────────────────────────────── locals ───────────────────────────────────╮            │                        
paimon-1  |                                │ │       self = <gram_core.manager.Managers object at 0x7f96969972f0>           │            │                        
paimon-1  |                                │ │ dependence = <class 'core.dependence.assets.AssetsService'>                  │            │                        
paimon-1  |                                │ │   instance = <core.dependence.assets.AssetsService object at 0x7f9688f9eae0> │            │                        
paimon-1  |                                │ │          e = IndexError('list index out of range')                           │            │                        
paimon-1  |                                │ ╰──────────────────────────────────────────────────────────────────────────────╯            │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ /app/core/dependence/assets.py:562 in initialize                                            │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │   559 │   │   # todo 这3个任务同时异步下载                                                  │                        
paimon-1  |                                │   560 │   │   await update_metadata_from_github(False)                                      │                        
paimon-1  |                                │   561 │   │   await update_metadata_from_ambr(False)                                        │                        
paimon-1  |                                │ ❱ 562 │   │   await update_honey_metadata(False)                                            │                        
paimon-1  |                                │   563 │   │   logger.info("刷新元数据成功")                                                 │                        
paimon-1  |                                │   564                                                                                       │                        
paimon-1  |                                │   565                                                                                       │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ ╭──────────────────────────────── locals ────────────────────────────────╮                  │                        
paimon-1  |                                │ │ self = <core.dependence.assets.AssetsService object at 0x7f9688f9eae0> │                  │                        
paimon-1  |                                │ ╰────────────────────────────────────────────────────────────────────────╯                  │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ /app/metadata/scripts/honey.py:176 in update_honey_metadata                                 │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │   173 │   path = PROJECT_ROOT.joinpath("metadata/data/honey.json")                          │                        
paimon-1  |                                │   174 │   if not overwrite and path.exists():                                               │                        
paimon-1  |                                │   175 │   │   return                                                                        │                        
paimon-1  |                                │ ❱ 176 │   avatar_data = await get_avatar_data()                                             │                        
paimon-1  |                                │   177 │   logger.success("Avatar data is done.")                                            │                        
paimon-1  |                                │   178 │   weapon_data = await get_weapon_data()                                             │                        
paimon-1  |                                │   179 │   logger.success("Weapon data is done.")                                            │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ ╭──────────────────────── locals ────────────────────────╮                                  │                        
paimon-1  |                                │ │ overwrite = False                                      │                                  │                        
paimon-1  |                                │ │      path = PosixPath('/app/metadata/data/honey.json') │                                  │                        
paimon-1  |                                │ ╰────────────────────────────────────────────────────────╯                                  │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ /app/metadata/scripts/honey.py:52 in get_avatar_data                                        │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │    49 │   result = {}                                                                       │                        
paimon-1  |                                │    50 │   url = "https://gensh.honeyhunterworld.com/fam_chars/?lang=CHS"                    │                        
paimon-1  |                                │    51 │   response = await request(url)                                                     │                        
paimon-1  |                                │ ❱  52 │   chaos_data = re.findall(r"sortable_data\.push\((.*?)\);\s*sortable_cur_page", res │                        
paimon-1  |                                │    53 │   json_data = jsonlib.loads(chaos_data)  # 转为 json                                │                        
paimon-1  |                                │    54 │   for data in json_data:                                                            │                        
paimon-1  |                                │    55 │   │   cid = int("10000" + re.findall(r"\d+", data[1])[0])                           │                        
paimon-1  |                                │                                                                                             │                        
paimon-1  |                                │ ╭────────────────────────────── locals ───────────────────────────────╮                     │                        
paimon-1  |                                │ │   result = {}                                                       │                     │                        
paimon-1  |                                │ │      url = 'https://gensh.honeyhunterworld.com/fam_chars/?lang=CHS' │                     │                        
paimon-1  |                                │ │ response = <Response [403 Forbidden]>                               │                     │                        
paimon-1  |                                │ ╰─────────────────────────────────────────────────────────────────────╯                     │                        
paimon-1  |                                ╰─────────────────────────────────────────────────────────────────────────────────────────────╯                        
paimon-1  |                                IndexError: list index out of range                                                                                    
paimon-1  | [2024-07-18 19:40:51] INFO     BOT 正在关闭                                                                                gram_core.application 256  
paimon-1  |                       INFO     Shutting down                                                                                    venv.lib.python3 258  
paimon-1  |                       SUCCESS  BOT 关闭成功                                                                                gram_core.application 277  

简单的复现代码/链接(可选)

No response

日志记录(可选)

No response

补充说明(可选)

No response

omg-xtao commented 3 months ago

honeyhunterworld sometimes opens cloudflare protection, can't fix it.