App-SpreadRevolutionaryDate
view release on metacpan or search on metacpan
lib/App/SpreadRevolutionaryDate/Target/Bluesky.pm view on Meta::CPAN
if ($test) {
$msg = __("Spread on Bluesky: ") . $msg;
if ($img) {
$msg .= " with image path: " . $img->{path} . " , alt: " . $img->{alt};
}
use open qw(:std :encoding(UTF-8));
use IO::Handle;
my $io = IO::Handle->new;
$io->fdopen(fileno(STDOUT), "w");
my @msgs = $self->_split_msg($msg, $self->max_lenght);
for (my $i = 0; $i < scalar @msgs; $i++) {
my $msg = "Message " . ($i+1) . ": " . $msgs[$i];
$msg = encode('UTF-8', $msg) if is_utf8($msg);
$io->say($msg);
}
} else {
my @msgs = $self->_split_msg($msg, $self->max_lenght);
my $last_status;
foreach my $msg (@msgs) {
if (!$last_status) {
# First post
my $status = $self->obj->create_post($msg, $img);
if ($status && ref($status) eq 'HASH' && $status->{uri} && $status->{cid}) {
$last_status = {
root => {
uri => $status->{uri},
cid => $status->{cid},
},
parent => {
uri => $status->{uri},
cid => $status->{cid},
}
};
}
} else {
# Next posts with reply_to
my $status = $self->obj->create_post($msg, undef, $last_status);
if ($status && ref($status) eq 'HASH' && $status->{uri} && $status->{cid}) {
$last_status->{parent} = {
uri => $status->{uri},
cid => $status->{cid},
};
}
}
}
}
}
no Moose;
__PACKAGE__->meta->make_immutable;
# A module must return a true value. Traditionally, a module returns 1.
# But this module is a revolutionary one, so it discards all old traditions.
# Idea borrowed from Jean Forget's DateTime::Calendar::FrenchRevolutionary.
"Quand le gouvernement viole les droits du peuple,
l'insurrection est pour le peuple le plus sacré
et le plus indispensable des devoirs";
__END__
=pod
=encoding UTF-8
=head1 NAME
App::SpreadRevolutionaryDate::Target::Bluesky - Target class for L<App::SpreadRevolutionaryDate> to handle spreading on Bluesky.
=head1 VERSION
version 0.54
=head1 METHODS
=head2 new
Constructor class method. Takes a hash argument with the following mandatory keys: C<identifier> and C<password>, with all values being strings. Authentifies to Bluesky and returns an C<App::SpreadRevolutionaryDate::Target::Bluesky> object.
=head2 spread
Spreads a message to Bluesky. Takes one mandatory argument: C<$msg> which should be the message to spread as a characters string; and one optional argument: C<test>, which defaults to C<false>, and if C<true> prints the message on standard output ins...
=head1 SEE ALSO
=over
=item L<spread-revolutionary-date>
=item L<App::SpreadRevolutionaryDate>
=item L<App::SpreadRevolutionaryDate::Config>
=item L<App::SpreadRevolutionaryDate::BlueskyLite>
=item L<App::SpreadRevolutionaryDate::Target>
=item L<App::SpreadRevolutionaryDate::Target::Twitter>
=item L<App::SpreadRevolutionaryDate::Target::Mastodon>
=item L<App::SpreadRevolutionaryDate::Target::Freenode>
=item L<App::SpreadRevolutionaryDate::Target::Freenode::Bot>
=item L<App::SpreadRevolutionaryDate::Target::Liberachat>
=item L<App::SpreadRevolutionaryDate::Target::Liberachat::Bot>
=item L<App::SpreadRevolutionaryDate::MsgMaker>
=item L<App::SpreadRevolutionaryDate::MsgMaker::RevolutionaryDate>
=item L<App::SpreadRevolutionaryDate::MsgMaker::RevolutionaryDate::Calendar>
( run in 2.045 seconds using v1.01-cache-2.11-cpan-5a3173703d6 )