多应用适配实战:adobe-discord-rpc如何用manifest.xml模板生成器与独立Discord Application ID支撑10+款Adobe软件
多应用适配实战adobe-discord-rpc如何用manifest.xml模板生成器与独立Discord Application ID支撑10款Adobe软件【免费下载链接】adobe-discord-rpcDiscord Rich Presence extension for your adobe apps!项目地址: https://gitcode.com/gh_mirrors/ad/adobe-discord-rpcadobe-discord-rpc 是一款为 Adobe 全家桶打造的Discord Rich Presence丰富状态扩展打开 Photoshop、Premiere Pro 等软件时你的 Discord 个人资料会自动显示正在做什么、做到哪一步。它最精妙的工程实践是用一份manifest.xml 模板生成器统一声明 10 款 Adobe 宿主软件并为每款软件配置独立的 Discord Application ID从而实现一个扩展、多端共存。一、先看效果Rich Presence 长什么样安装后打开任意支持的 Adobe 软件Discord 资料卡就会自动更新状态信息例如当前文档名、合成/时间轴、渲染进度、图层数还会带上对应的软件大图标与计时器。下面两张图分别来自 Discord 实际资料卡与状态预览二、核心机制一manifest.xml 模板生成器如何一键适配多应用CEPCommon Extensibility Platform扩展安装时Adobe 依赖manifest.xml判断这个扩展能在哪些软件里运行。手写 10 多份声明既繁琐又容易出错adobe-discord-rpc 的做法是用脚本生成模板文件assets/templates/manifest.template.xml.js它读取宿主机表为每款软件循环生成一段Extension声明包含Host NameAEFT /—— 声明目标宿主AEFTAfter Effects、PHXSPhotoshop、PPROPremiere Pro……ScriptPath./host/AEFT.jsx/ScriptPath—— 指向该宿主专属脚本StartOn事件应用初始化、窗口激活、文档切换—— 实现启动即自动运行无需手动点击长尾要点模板里ExecutionEnvironment的HostList用Version[0.0,99.9]区间声明兼容版本一次覆盖 2018CEP 8到 2025 各版本无需为每个 Adobe 版本单独适配。也就是说新增一款 Adobe 软件 宿主机表加一个 key 写一份 jsx 脚本manifest 由模板自动生成适配成本被压到最低。三、核心机制二独立 Discord Application IDDiscord 的 Rich Presence 必须绑定一个 Application ID决定状态卡片的大图标与活动标识。项目没有所有软件共用一个 ID而是每款软件一个专属 ID映射关系集中在src/rpc_client-src/client.js宿主代码Adobe 软件专属 Application IDPHSP / PHXSPhotoshop748586506888806460AEFTAfter Effects748568089939148832PPROPremiere Pro748580494324662353AUDTAudition750462631176830977ILSTIllustrator751430009716998144IDSNInDesign753663267137912953AICYInCopy756139390924750859FLPRAnimate756143118604173384DRWVDreamweaver756169802766221502PRLDPrelude756139699051036797RUSHPremiere Rush756158973241196595MEDIA_ENCODERMedia Encoder756149565429776453运行时入口src/rpc_client-src/index.js通过csInterface.getApplicationID()拿到当前所在宿主的代码如在 Premiere Pro 中运行时返回PPRO再从映射表取出对应 ID 初始化 Rich Presence 客户端见src/rpc_client-src/rpc.js的login()通过 IPC 连接 Discord 桌面端。 独立 ID 带来的直接收益每款软件可以上传自己的大图标Ps/Ae/Pr…Discord 状态卡一眼认出你在用哪款 Adobe 软件而不是一个通用的默认图。四、宿主专属脚本每款软件各报各的状态模板把每款宿主路由到src/host/目录下的独立.jsx脚本共 12 份脚本只需实现统一约定的函数state()、details()、smallImageKey()、smallImageText()、largeImageText()、partySize()、partyMax()。举两个典型实现 Photoshopsrc/host/PHXS.jsxdetails 返回当前文档名state 返回活动图层名partySize/partyMax 统计当前图层序号与总图层数展示为 Layer 5 (1 of 32)。After Effectssrc/host/AEFT.jsxdetails 返回项目文件名state 返回当前合成含图层数当检测到renderQueue.rendering时party 字段变成渲染进度第几项 / 共几项并在 state 显示 Rendering。主循环每秒interval 1000ms轮询这些函数只有内容变化时才调用rpc.setActivity()上报避免无谓刷新。五、最快安装方法3 步上手下载 Release 中的扩展包将discord rpc文件夹解压到WindowsC:\Program Files (x86)\Common Files\Adobe\CEP\extensionsmacOS~/Library/Application Support/Adobe/CEP/extensions打开调试模式二选一Windows 注册表按版本选择HKEY_CURRENT_USER\Software\Adobe\CSXS.9~12新建字符串值PlayerDebugMode1macOS 终端defaults write com.adobe.CSXS.12 PlayerDebugMode 1打开任意支持的 Adobe 软件 → 菜单栏窗口 扩展 Discord Rich Presence状态即刻上线 ✅ 详细的官方安装文档见GUIDE.md效果演示可参考下图⚠️ 小贴士Apple SiliconM 系列芯片用户需通过 Rosetta 运行 Photoshop并在首选项中开启 Legacy Extensions 后重启Media Encoder、Acrobat、Lightroom Classic 暂不支持。六、彩蛋Cat 模式与配置系统配置项模板定义在src/rpc_client-src/localstorage.jsDetails / State / Timestamp / 大图标 等均可单独开关。此外还有一个catMode开关——打开后资料头像换成一只猫 七、总结这套架构为什么值得借鉴设计文件位置解决的问题manifest.xml 模板生成器assets/templates/manifest.template.xml.js多宿主声明自动化新增软件零重复劳动宿主 → Application ID 映射表src/rpc_client-src/client.js每款软件独立 ID图标与身份差异化运行时宿主识别src/rpc_client-src/index.jsgetApplicationID()自动匹配无需用户配置宿主专属脚本src/host/*.jsx每款软件读取自己的文档/合成/渲染状态统一 RPC 客户端src/rpc_client-src/rpc.js断线 15 秒自动重连状态增量上报一套模板 一张映射表 一组同构脚本adobe-discord-rpc 就把适配 10 款 Adobe 软件这件脏活变成了可复制的工程流程——这也是它作为多应用适配案例最值得普通开发者借鉴的地方。【免费下载链接】adobe-discord-rpcDiscord Rich Presence extension for your adobe apps!项目地址: https://gitcode.com/gh_mirrors/ad/adobe-discord-rpc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考