NAME
Bot::ChatBots::Role::WebPoller - Bot::ChatBots Role for Web Pollers
SYNOPSIS
package
Something;
use
Moo;
sub
parse_response {
my
(
$self
,
$data
) =
@_
;
...
}
sub
normalize_record {
my
(
$self
,
$record
) =
@_
;
...
}
1;
# later that night...
my
$something
= Something->new(
interval
=> 30,
# polling interval, from Poller
ua
=> Mojo::UserAgent->new,
# optional, with your options
processor
=> \
&process_record
,
);
Mojo::IOLoop->start;
DESCRIPTION
This is a poller role for bots, polling from URLs. This role is actually a derivation of Bot::ChatBots::Role::Poller, adding a "poll" method that implements what needed for fetching data via HTTP/HTTPS asynchronously.
You MUST provide tx_args
upon construction, pointing to an array reference containing all parameters for fetching data. The contents of the array is a list compatible with "build_tx" in Mojo::UserAgent.
You can optionally configure a specific Mojo::UserAgent as the ua
parameter, e.g. if you want to set specific parameters like a timeout.
What Should You Provide/Override
Whatever needed by Bot::ChatBots::Role::Poller, except for "poll" that is provided.
METHODS
It should be safe to override the following methods in your classes composing this role.
poll
$obj
->poll(
$callback
,
$args
);
Fetches new data using the user agent "ua" and fetching data with the request contained in "tx_args".
tx_args
my
$array_ref
=
$obj
->tx_args;
Get an array ref with the "instructions" for fetching new data. Refer to "build_tx" in Mojo::UserAgent, because it is used like this:
my
$tx
=
$ua
->build_tx(
@$array_ref
);
ua
my
$ua
=
$obj
->ua;
Get the user agent object.
REQUIRED METHODS
See Bot::ChatBots::Role::Poller and Bot::ChatBots::Role::Source.
SEE ALSO
Bot::ChatBots, Bot::ChatBots::Role::Poller, Bot::ChatBots::Role::Source.
AUTHOR
Flavio Poletti <polettix@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2018 by Flavio Poletti <polettix@cpan.org>
This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.
This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.