Minor fixes for v1.0 release, mostly comments, add openrc init script

This commit is contained in:
eleksir
2022-01-07 02:34:34 +03:00
parent f8d0c3f701
commit 5df11d2437
7 changed files with 36 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
package Craniac;
# Предполагается, что craniac - это "маршрут по-умолчанию". То есть сюда попадают все фразы, которые не были распознаны
# aleesa-misc как команды.
# aleesa-misc как команды. В том числе и некоторые команды (но по идее это так и задумано).
# Основная задача мозгов - распознать, требуется ли ответ и обработать фразу.
# Соответсвенно, мы предполагаем, что фразы делятся на 2 типа:
@@ -61,6 +61,8 @@ if (defined $logfile) {
my $hailo;
# Несколько фраз общего характера, используемые как универсальный ответ, когда ответить нечего (по тем или иным
# причинам) или ответ не будет достаточно вменяемым (слишком похож на фразу, на которую отвечаем)
sub RandomCommonPhrase () {
my @myphrase = (
'Так, блядь...',
@@ -104,6 +106,7 @@ sub fmatch (@) {
}
}
# Ленивая инициализация мозга. Создаём/открываем мозг только если нам надо "подумать" а не на каждую входящую фразу.
sub brains (@) {
my $chatid = shift;
my $telegram = shift // 0;
@@ -112,7 +115,7 @@ sub brains (@) {
my $cid = $chatid;
my $brainname;
# Костыль, чтобы не портировать данные из телеграммных мозгов
# Костыль, чтобы не портировать данные из телеграммных мозгов и не заниматься переименованием
unless ($telegram) {
$cid = utf2sha1 ($chatid);
$cid =~ s/\//-/xmsg;
@@ -129,9 +132,9 @@ sub brains (@) {
};
if (defined $hailo->{$chatid}) {
$log->info (sprintf 'Lazy init brain: %s', $brainname);
$log->info (sprintf '[INFO] Lazy init brain: %s', $brainname);
} else {
$log->warn ($EVAL_ERROR);
$log->error ("[ERROR] $EVAL_ERROR");
return 0;
}
}
@@ -156,7 +159,7 @@ my $parse_message = sub {
$m->{misc}->{fwd_cnt} = 1;
} else {
if ($m->{misc}->{fwd_cnt} > $fwd_cnt) {
$log->error ('Forward loop detected, discarding message.');
$log->error ('[ERROR] Forward loop detected, discarding message.');
$log->debug (Dumper $m);
return;
} else {
@@ -346,13 +349,13 @@ my $parse_message = sub {
if ($m->{misc}->{answer}) {
# Пытаемся что-то генерировать, если фраза длиннее 3-х букв
if (length ($m->{message}) > 3) {
# Lazy brain init
my $telegram = 0;
if ($m->{plugin} eq 'telegram') {
$telegram = 1;
}
# Lazy brain init
if (brains ($chatid, $telegram)) {
$reply = $hailo->{$chatid}->learn_reply ($m->{message});

View File

@@ -19,6 +19,9 @@ use version; our $VERSION = qw (1.0);
use Exporter qw (import);
our @EXPORT_OK = qw (Train Lat);
# В нашем случае среднее количество слов в фразе равно 3, поэтому ставим 2 :)
my $brain_order = 2;
my $c = LoadConf ();
my $brain = $c->{lat}->{brain};
my $srcfile = $c->{lat}->{src};
@@ -49,8 +52,7 @@ sub Train () {
my $lat = Hailo->new (
brain => $brain,
# В нашем случае среднее количество слов в фразе равно 3
order => 2
order => $brain_order
);
$lat->train ($srcfile);
@@ -76,8 +78,7 @@ sub Lat () {
my $lat = Hailo->new (
brain => $brain,
# В нашем случае среднее количество слов в фразе равно 3
order => 2,
order => $brain_order,
save_on_exit => 0
);