Perl Irssi scripting: How to send msg to a specific channel?

后端 未结 1 770
甜味超标
甜味超标 2021-02-11 04:46

I need to establish this single task with Irssi Perl script. I have my own channel and I want to sent msg directly to that channel in certain scenarios.

My experience wi

1条回答
  •  孤独总比滥情好
    2021-02-11 05:31

    here is an example is used for a bot :)

    #==========================BEGINNING OF PARMS======================================
    #name of the channels where this feature will be used
    my @channels  = ("foo","bar");
    
    #the public commands
    #help
    my $cmd_help = '!help';
    
    #new ticket
    my $cmd_newticket = "!stack";
    my %url_newticket = ( 'foo'=>{url=>"http://stackoverflow.com/questions/ask"},
                      'bar'=>{url=>"http://https://github.com/repo/project/issues/new"}
    
    
    sub bootstrap {
        my ($server, $msg, $nick, $address, $target) = @_;
        #lowercase of the channel name in case this one will be registered in camelCase ;)
        $target = lc $target;
    
        foreach my $channel (@channels) {
            if ( $target eq "#".$channel) {
                #split the line first peace the command second the rest
                my ($cmd,$line) = split / /,$msg,2;
                if ($cmd =~ $cmd_help) {
                    $server->command("MSG ". $nick ." Here are the available commands : !stack");
                } elsif ($cmd eq $cmd_newticket) {
                    my $h = $url_newticket{$channel};
                    $server->command("MSG $target submit an issue/a ticket $h->{'url'}");
                }
             }
         }
    }
    
    #let's add the sub as a signal and let's play
    Irssi::signal_add_last('message public', 'bootstrap');
    

    Hope this could help

    0 讨论(0)
提交回复
热议问题