如何将 Discord-RPC 与 Chrome 扩展一起使用?

How do I use Discord-RPC with Chrome Extension?

我想做一个 chrome 扩展来解析 youtube/soundcloud/... 页面并获取当前歌曲的名称。然后它应该在不和谐中更新用户的丰富状态。就像在 python there.

中所做的一样

目前我有那个。标题已经解析,没有问题。我对该代码的工作有疑问。因为不行。

const clientId = '605777168739598338';
const scopes = ['rpc', 'rpc.api'];

const client = new RPC.Client({ transport: 'websocket' });

client.connect();

function updatePresence(title, time, icon) {
    title = title.replace(/["]/g, "\\"");
    client.setActivity({
        details: title,
        startTimestamp: time,
        largeImageKey: icon
    }, 9999)
}

我也尝试过原始的 websocket 连接,但我很笨..

更新: 上面的代码在content.js.

browser.js 是从我通过 npm 下载的模块 discord-rpc 的根目录复制的文件。

manifest.json

{
  "manifest_version": 2,
  "name": "Tomori Player",
  "version": "0.1.0",
  "browser_action": {
     "default_icon": "icon.png"
    },
    "background": {
        "scripts": ["browser.js"]
    },
    "permissions": [
        "ws://localhost:6463/*",
        "tabs",
        "webRequest",
        "webRequestBlocking"
    ],
  "content_scripts": [
      {
        "matches": [
          "https://www.youtube.com/watch*",
          "https://youtube.com/watch*"
        ],
        "js": ["content.js"]
      }
    ]
}

P.S。我很抱歉。我是 JS 新手。

我找到了一个解决方案:

  • Chrome 扩展程序解析页面并将套接字发送到另一个应用程序
  • 您 PC 上的另一个应用获取这些套接字,然后将 RPC 发送到 Discord

Timeraa#7947 (PreMiD dev): Discord will disconnect almost immediately if you connect with a browser, trust me i tried. You will need to have an application running in the background

因此,您可以使用 PreMiD 并推送 PreMiD 的存在列表或制作您自己的应用程序来执行此操作。