#chat #server #client #api #connect #random #omegle

omegalul

构建 Omegle 客户端的简单库

5 个版本

0.1.4 2021 年 8 月 28 日
0.1.3 2021 年 8 月 27 日
0.1.2 2021 年 8 月 27 日
0.1.1 2021 年 8 月 27 日
0.1.0 2021 年 8 月 27 日

#1447 in 网页编程

MIT 许可证

12KB
214

crates.io

omegalul-rs

omegalul-rs 是一个正在开发中的开源库,用于构建 Omegle 客户端。

特性

当前特性

  • 从 Omegle 状态服务器获取随机服务器
  • 在服务器上启动聊天
  • 获取当前聊天事件
  • 发送聊天消息
  • 添加兴趣

示例用法

这只是一个简单的示例用法,要查找更多示例用法,请访问 /examples 目录。更多文档,请查看 文档

    #[tokio::main]
    async fn main() {
        // get a random server to connect with, this server
        // is grabbed from the https://omegle.com/status path.
        if let Some(server_name) = get_random_server().await {
            println!("Connecting to {} server", server_name);

            // just create a new server - this is a simple struct and 
            // the Server::new(&str) method does nothing besides creating
            // a new object of the struct.
            let server = &mut Server::new(server_name.as_str(), vec!["hors".to_string(), "discord".to_string()]);

            // start the chat, this sends a POST message  
            // and connects to the current omegle server
            let chat = &mut server.start_chat().await;

            if let Some(chat) = chat {
                // indefinite loop to always get new events
                // from the current omegle chat.
                loop {
                    // fetch the current event, this may return 
                    // a ChatEvent::None value - this means
                    // there is no current event going on.
                    let event = chat.fetch_event().await;

                    match event {
                        ChatEvent::Message(message) => println!("{}", &message),
                        ChatEvent::Disconnected => println!("The user has disconnected... mean."),
                        ChatEvent::Typing => println!("The user is typing... how exciting!"),
                        _ => ()
                    }
                }
            }
        }
    }

依赖项

~6–18MB
~275K SLoC