1
eleksir 29c1fa8d07 Breaking API changes (handle Mojo loop errors), fix sendMessage method broken in 033441c
* Use general method to handle Mojo loop unsuccessful operations
* Do not die if tg api returns error via Mojo loop, lift up error status to upper layer
* Die with confess only in case of Mojo loop does not returns either is_success or is_error set
* Handle incomming updates related to poll event
* Update inline POD in Brain.pm
* Fix overlooked die removal in sendMessage, now it is croak
2020-10-30 15:42:36 +03:00
2020-10-22 13:49:45 +03:00
2020-10-22 13:49:45 +03:00
2020-10-28 15:20:38 +03:00
2020-10-28 18:12:49 +03:00
2020-09-19 14:57:05 +03:00

Aleesa-Telegram-bot - Simple Telegram chatty bot

About

It is based on Perl modules Telegram::Bot and Hailo as conversation generator.

Config located in data/config.json, sample config provided as data/sample_config.json.

Bot can be run via bin/aleesa-telegam-bot and acts as daemon.

Installation

In order to run this application, you need to "bootstrap" it - download and build all required dependencies and libraries.

You'll need "Development Tools" or similar group of packages, perl, perl-devel, perl-local-lib, perl-app-cpanm, sqlite-devel, zlib-devel, openssl-devel, libdb4-devel (Berkeley DB devel), make.

After installng required dependencies it is possible to run:

bash bootstrap.sh

and all libraries should be downloaded, built, tested and installed.

N.B.

If bot is unable to post to channel due to limited permissions, it will die. It is possible to change this behavior by patching Telegram/Bot/Brain.pm:

--- Brain.pm	2019-07-01 04:04:17.000000000 +0300
+++ Brain.pm.new	2020-09-05 22:25:20.941373455 +0300
@@ -237,8 +237,9 @@
 
   my $res = $self->ua->post($url, form => $form_args)->result;
   if    ($res->is_success) { return $res->json->{result}; }
-  elsif ($res->is_error)   { die "Failed to post: " . $res->message; }
-  else                     { die "Not sure what went wrong"; }
+  elsif ($res->is_error)   { warn "Failed to post: " . $res->message; }
+  else                     { warn "Not sure what went wrong"; }
+  return "";
 }
Description
No description provided
Readme 398 KiB
Languages
Perl 96.2%
Raku 3.7%