#discord #javascript #injector #electron #asar

discord_injector-lib

这是一个Rust库,允许您将JavaScript注入到Discord桌面客户端!

9个版本

0.3.21 2024年8月10日
0.3.2 2024年8月10日
0.2.0 2024年8月8日
0.1.4 2024年8月3日

#1415 in 网页编程

Download history 231/week @ 2024-08-02 354/week @ 2024-08-09

每月 585 次下载

MIT 许可证

33KB
646

discord-javascript-injector

这是一个Rust库,允许您将JavaScript注入到Discord桌面客户端!

使用此项目,您可以向Discord客户端注入任何类型的JavaScript,JavaScript代码附加到渲染进程,因此您可以访问DOM等。

请注意,目前只开发了Windows版本,Linux支持即将推出 好吧,现在已经完成了!如果您使用.deb文件安装了Discord,包含core.asar文件的文件夹应位于您的.config文件夹中

下一个目标

  • macOS支持 我很高兴地宣布,已添加macOS支持!(感谢您不让我失望,我亲爱的M1 MacBook Air)
  • Linux的flatpak支持
  • Linux的snap支持将在未来进行调查。

示例用法

use inject::inject;
use eject::eject;
use check_installation::check_installed_clients;

fn main() {
    let installed_clients = check_installed_clients().unwrap();

    for client in installed_clients {
        println!("client: {:?}", client);

        if !client.injected {
            inject(&client.basename, "console.log('hello world!');", false).unwrap();
        } else {
            println!("already injected");
            eject(&client.basename).unwrap();
        }
    }

}

另一个酷炫功能!

嗯,由于我预计这个项目将用于一些GUI应用程序,我决定添加一个ws(WebSocket)功能,允许您将库连接到您自己的WebSocket服务器以接收有关注入进度的消息。

要使用ws功能,您可以在cargo.toml中添加以下内容

[dependencies]
discord_injector-lib = { version = "x.x.x" features = ["ws"] }

请注意,x.x.x 是一个占位符。从0.3.0版本开始支持此功能 :)。

但这还不是全部,TypeScript也现在正式支持。

感谢 swc。可以将TypeScript编译为JavaScript,因此享受此库的类型安全特性!

但是请注意 在我的测试中,我得出结论,TypeScript中的枚举没有被正确转换为JavaScript,这不是我的责任,而是swc的责任,所以请避免使用枚举,谢谢 :D

在crates.io上查看!

我还创建了一个在crates.io上的库,这里是它的 链接

重要

该项目可能会破坏您的客户端。如果客户端崩溃,请为您所在的平台重新安装Discord。

依赖项

~30–43MB
~767K SLoC