Yuriy Zhilovets 2 ani în urmă
părinte
comite
7d34f98454
4 a modificat fișierele cu 33 adăugiri și 10 ștergeri
  1. 7 1
      djinn.pl
  2. 14 0
      modules/alias.pm
  3. 11 8
      modules/commands.pm
  4. 1 1
      run

+ 7 - 1
djinn.pl

@@ -15,6 +15,7 @@ use Promises qw/deferred collect/;
 use Mojo::JSON qw/j/;
 use NetAddr::IP;
 use HTML::Restrict;
+use Attribute::Handlers;
 
 use FindBin qw/$Bin/;
 use lib "$Bin/lib";
@@ -23,6 +24,9 @@ use lib "$Bin/modules";
 use darsan_auth;
 use darsan_client;
 
+our %aliases;
+
+use alias;
 use commands;
 
 my $NAME = "djinn";
@@ -208,6 +212,8 @@ sub notify
   return $promise;
 }
 
+#################################
+
 sub do_command
 {
   my $cmd = shift;
@@ -220,7 +226,7 @@ sub do_command
   $c =~ s|^/||;
   $c =~ s/\@MolDjinnBot$//;
 
-  my $sub = reference("command_$c");
+  my $sub = reference("command_$c") || %aliases{$c};
 
   unless ($sub)
   {

+ 14 - 0
modules/alias.pm

@@ -0,0 +1,14 @@
+use Modern::Perl;
+use utf8;
+
+use Attribute::Handlers;
+
+our %aliases;
+
+sub Alias :ATTR 
+{
+  my ($package, $symbol, $referent, $attr, $data) = @_;
+  $aliases{$data->[0]} = $referent;
+}
+
+1;

+ 11 - 8
modules/commands.pm

@@ -11,25 +11,28 @@ our $client;
 
 ##############################################
 
-sub command_help
+sub command_help :Alias("помощь")
 {
   my $cmd = shift;
   my $args = shift;
   my $chatid = shift;
   my $rest = shift;
-  
 
 # TEMP
 # <b>/purge-all-trees</b> <i>ip-адрес-устройства</i> - Очистить все деревья PON
 #
-  notify($chatid, 
-"<b>/purge </b> <i>ip-адрес-устройства номер-дерева</i> - Очистить дерево PON
+  notify($chatid, <<"---", $rest);
+<b>/purge</b> <i>ip-адрес-устройства номер-дерева</i> - Очистить дерево PON
+<b>/очистить</b> <i>ip-адрес-устройства номер-дерева</i>
 <b>/inspect</b> <i>ip-адрес-устройства номер-дерева</i> - Информация об ONU на дереве
-<b>/onu</b> <i>ip-адрес-устройства номер-дерева</i> - Краткая информация ONU на дереве", $rest);
+<b>/проверить</b> <i>ip-адрес-устройства номер-дерева</i>
+<b>/onu</b> <i>ip-адрес-устройства номер-дерева</i> - Краткая информация ONU на дереве
+<b>/ону</b> <i>ip-адрес-устройства номер-дерева</i>
+---
 }
 
 # inspect 172.25.7.1 2 - посмотреть информацию об ONU на дереве 2 устройства 172.25.7.1
-async command_inspect => sub
+async command_inspect => sub :Alias("проверить")
 {
   my $cmd = shift;
   my $args = shift;
@@ -83,7 +86,7 @@ async command_inspect => sub
 };
 
 # onu 172.25.7.1 2 - получить короткую информацию об ONU на дереве 2 устройства 172.25.7.1
-async command_onu => sub
+async command_onu => sub :Alias("ону")
 {
   my $cmd = shift;
   my $args = shift;
@@ -136,7 +139,7 @@ async command_onu => sub
 };
 
 # purge 172.1.1.1 2 - почистить дерево 2 на ПОН
-async command_purge => sub
+async command_purge => sub :Alias("почистить")
 {
   my $cmd = shift;
   my $args = shift;

+ 1 - 1
run

@@ -1 +1 @@
-MOJO_CLIENT_DEBUG=1 MOJO_LOG_LEVEL=debug morbo djinn.pl daemon --mode test --listen http://*:2217
+MOJO_CLIENT_DEBUG=1 MOJO_LOG_LEVEL=debug perl  djinn.pl daemon --mode test --listen http://*:2217