The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

POE::Component::Omegle - Simple POE wrapper around WWW::Omegle

SYNOPSIS

	use POE;

	POE::Session->create(
	                     package_states => [
	                                        OMPoeBot => [qw/
	                                                     _start om_connect om_chat om_disconnect poke
	                                                     /],
	                                        ],
	                     );

	$poe_kernel->run;

	package OMPoeBot;
	use POE qw/Component::Omegle/;

	sub _start {
	    my ($heap) = $_[HEAP];

	    my $om = POE::Component::Omegle->new;

	    $om->set_callback(connect    => 'om_connect');
	    $om->set_callback(chat       => 'om_chat');
	    $om->set_callback(disconnect => 'om_disconnect');

	    $heap->{om} = $om;
    
	    $om->start_chat;
	    $poe_kernel->delay_add(poke => 0.1, $om);
	}

	sub poke {
	    my ($kernel, $heap, $om) = @_[KERNEL, HEAP, ARG0];

	    $om->poke;
	    $poe_kernel->delay_add(poke => 0.1, $om);
	}

	sub om_connect {
	    my $om = $_[HEAP]->{om};

	    print "Stranger connected\n";
	    $om->say("Yo homie! Where you at?");
	}

	sub om_chat {
	    my ($cb_args) = $_[ARG1];
	    my ($om, $chat) = @$cb_args;

	    print ">> $chat\n";
	}

	sub om_disconnect { print "Stranger disconnected\n"; }

DESCRIPTION

This module makes it easy to run multiple Omegle bots using asynchronous HTTP calls.

EXPORT

None by default.

METHODS

POE::Component::Omegle is just a thin wrapper around the methods in WWW::Omegle. See that module for the other available commands

poke

This method will poll for outstanding requests to process, it's good to call frequently.

SEE ALSO

WWW::Omegle, POE

AUTHOR

Mischa Spiegelmock, <revmischa@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Mischa Spiegelmock

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.