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

omegalul

A simple library for building Omegle clients

5 releases

0.1.4 Aug 28, 2021
0.1.3 Aug 27, 2021
0.1.2 Aug 27, 2021
0.1.1 Aug 27, 2021
0.1.0 Aug 27, 2021

#73 in #connect

MIT license

12KB
214 lines

crates.io

omegalul-rs

omegalul-rs is a work-in-progress opensource library for building Omegle clients.

Features

Current Features

  • Fetching random server from omegle status servers
  • Starting a chat on the server
  • Fetching current chat event
  • Sending chat messages
  • Adding interests

Example usage

These is just a simple example usage, to find more example usages, visit the /examples directory. For more documentation, check out the documentation

    #[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!"),
                        _ => ()
                    }
                }
            }
        }
    }

Dependencies

~7–19MB
~261K SLoC