PHP OmegleBot Class

Mon. June 28, 2010
Categories: PHP
Tags:
class OmegleBot
{
	# A bot for imitating a chat session on Omegle
	# Written by Andrew Brown and free to reuse, edit, and redistribute by any means
	# http://www.drusepth.net
	
	private $id = '';
	public $name = 'Stranger';
 
	private $last_message = '';
	public $last_message_changed = false;
 
	public function start()
	{
		$res = shell_exec("/usr/bin/curl -s http://www.omegle.com/start");
		$this->id = escapeshellarg(substr($res, 1, 6));
	}
 
	public function stop()
	{
		$res = shell_exec("/usr/bin/curl -s -d id=" . $this->id . " http://www.omegle.com/disconnect");
	}
 
	public function poll_events()
	{
		$res = shell_exec("/usr/bin/curl -s -d id=" . $this->id . " http://www.omegle.com/events");
 
		if ($res != "null")
		{
			$event_list = json_decode($res);
			$this->handle_events($event_list);
		}
		else
		{
			return 0;
		}
	}
 
	public function get_last_message()
	{
		$this->last_message_changed = false;
		return $this->last_message;
	}
 
	public function peek_last_message()
	{
		return $this->last_message;
	}
 
	public function toggle_typing()
	{
		$res = shell_exec("/usr/bin/curl -s -d id=" . $this->id . " http://www.omegle.com/typing");
	}
 
	public function say($what)
	{
		$res = shell_exec("/usr/bin/curl -s -d id=" . $this->id . " -d msg=" . escapeshellarg($what) . " http://www.omegle.com/send");
	}
 
	private function handle_events($event_list)
	{
		foreach ($event_list as $event)
		{
			switch($event[0]) # Event type
			{
				case "waiting":
					#print "Waiting for a stranger...n";
					break;
 
				case "connected":
					print $this->name . " has connected!n";
					break;
 
				case "typing":
					#print "Stranger is typing...n";
					break;
 
				case "gotMessage":
					print "name . "> $event[1]n";
					$this->last_message = $event[1];
					$this->last_message_changed = true;
					break;
 
				case "strangerDisconnected":
					print $this->name . " has disconnected!n";
					$this->start();
					break;
			}
		}
	}
}