diff --git a/scripts/util/platforms.py b/scripts/util/platforms.py index d34ead1..e60b89f 100644 --- a/scripts/util/platforms.py +++ b/scripts/util/platforms.py @@ -200,6 +200,89 @@ PLATFORMS: dict[str, dict[str, Any]] = { "aliases": ["公众号", "微信", "微信公众号"], "capabilities": {"web": True, "api_key": False, "rpa": False}, }, + # ========================================================================= + # Aligned with db.platform_defaults.PLATFORM_DEFAULT_AUTH_STRATEGY keys + # ========================================================================= + "douyin": { + "display_name": "抖音", + "domain": "content", + "provider_code": "douyin", + "default_url": "https://www.douyin.com", + "aliases": ["抖音", "Douyin"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "wechat_mp": { + "display_name": "微信公众号", + "domain": "content", + "provider_code": "wechat_mp", + "default_url": "https://mp.weixin.qq.com", + "aliases": ["微信公众号", "公众号", "WeChat MP"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "xiaohongshu": { + "display_name": "小红书", + "domain": "content", + "provider_code": "xiaohongshu", + "default_url": "https://www.xiaohongshu.com", + "aliases": ["小红书", "Xiaohongshu", "RED"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "bilibili": { + "display_name": "哔哩哔哩", + "domain": "content", + "provider_code": "bilibili", + "default_url": "https://www.bilibili.com", + "aliases": ["B站", "哔哩哔哩", "Bilibili"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "github": { + "display_name": "GitHub", + "domain": "dev", + "provider_code": "github", + "default_url": "https://github.com/login", + "aliases": ["GitHub", "github"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "aws": { + "display_name": "AWS", + "domain": "dev", + "provider_code": "aws", + "default_url": "https://console.aws.amazon.com", + "aliases": ["AWS", "Amazon Web Services", "亚马逊云"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "gcp": { + "display_name": "GCP", + "domain": "dev", + "provider_code": "gcp", + "default_url": "https://console.cloud.google.com", + "aliases": ["GCP", "Google Cloud", "谷歌云"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "icbc_sim": { + "display_name": "工行仿真", + "domain": "sim", + "provider_code": "icbc_sim", + "default_url": "http://localhost:5180", + "aliases": ["工行仿真", "ICBC Simulator", "ICBC SIM"], + "capabilities": {"web": True, "api_key": False, "rpa": False}, + }, + "openai": { + "display_name": "OpenAI API", + "domain": "llm", + "provider_code": "openai", + "default_url": "https://platform.openai.com", + "aliases": ["OpenAI", "openai", "GPT", "ChatGPT API"], + "capabilities": {"web": False, "api_key": True, "rpa": False}, + }, + "anthropic": { + "display_name": "Anthropic", + "domain": "llm", + "provider_code": "anthropic", + "default_url": "https://console.anthropic.com", + "aliases": ["Anthropic", "anthropic", "Claude API"], + "capabilities": {"web": False, "api_key": True, "rpa": False}, + }, } # --------------------------------------------------------------------------- diff --git a/tests/test_platform_alignment.py b/tests/test_platform_alignment.py new file mode 100644 index 0000000..1d1bebf --- /dev/null +++ b/tests/test_platform_alignment.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +"""Contract tests: PLATFORM_DEFAULT_AUTH_STRATEGY keys must resolve via PLATFORMS.""" +from db.platform_defaults import PLATFORM_DEFAULT_AUTH_STRATEGY +from util.platforms import resolve_platform_key + + +def test_platform_defaults_all_resolvable(): + for key in PLATFORM_DEFAULT_AUTH_STRATEGY: + assert resolve_platform_key(key) == key + + +def test_new_platform_aliases_work(): + assert resolve_platform_key("抖音") == "douyin" + assert resolve_platform_key("douyin") == "douyin" + assert resolve_platform_key("GitHub") == "github" + assert resolve_platform_key("github") == "github" + assert resolve_platform_key("OpenAI") == "openai" + assert resolve_platform_key("openai") == "openai"