Skip to content

Commit e7b344e

Browse files
whiteki08Copilot
andauthored
Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
1 parent 1ed3b34 commit e7b344e

2 files changed

Lines changed: 22 additions & 3 deletions

File tree

app/modules/jellyfin/jellyfin.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,12 @@ def get_user(self, user_name: Optional[str] = None) -> Optional[Union[str, int]]
243243
best_admin_id = user.get("Id")
244244
best_admin_name = user.get("Name")
245245
best_admin_library_count = current_count
246-
if best_admin_id:
246+
if best_admin_id is None:
247+
logger.warning("未找到可用的管理员账号,无法获取管理员用户,请检查Jellyfin用户及权限配置!")
248+
return None
249+
logger.warning(
250+
f"未找到具备全库访问权限的管理员账号,回退使用仅可访问{best_admin_library_count}/{total_library_count}个媒体库的管理员账号{best_admin_name}!"
251+
)
247252
logger.warning(f"未找到具备全库访问权限的管理员账号,回退使用仅可访问{best_admin_library_count}/{total_library_count}个媒体库的管理员账号{best_admin_name}!")
248253
return best_admin_id
249254
else:

tests/test_jellyfin.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,22 @@ def test_get_user_warns_and_prefers_larger_visible_scope_admin(self):
179179
user_id = client.get_user("admin")
180180

181181
self.assertEqual(user_id, "large-admin-id")
182-
warning_mock.assert_called_once()
183-
self.assertIn("默认超级管理员状态流失", warning_mock.call_args.args[0])
182+
self.assertGreaterEqual(warning_mock.call_count, 2)
183+
184+
warning_messages = [
185+
call.args[0] for call in warning_mock.call_args_list if call.args and isinstance(call.args[0], str)
186+
]
187+
self.assertTrue(any("超级管理员" in message for message in warning_messages))
188+
self.assertTrue(
189+
any(
190+
("部分" in message)
191+
or ("可见" in message)
192+
or ("访问范围" in message)
193+
or ("EnabledFolders" in message)
194+
for message in warning_messages
195+
)
196+
)
197+
self.assertTrue(any(("回退" in message) or ("fallback" in message.lower()) for message in warning_messages))
184198

185199
def test_get_jellyfin_librarys_returns_empty_when_user_missing(self):
186200
client = self._build_client()

0 commit comments

Comments
 (0)