NAME

Horris - An IRC Bot Based On Moose/AnyEvent - forked Morris

VERSION

version v0.1.2

SYNOPSIS

use Horris;
my $config = {
    'network' => {
        'freenode' => {
            'nickname' => 'botname',
            'server' => 'irc.freenode.net',
            'port' => '6667',
            'username' => 'botname'
        }
    },
    'connection' => {
        'freenode' => {
            'plugin' => {
                'Join' => {
                    'channels' => [
                        '#channel-name', 
                    ]
                },
                'Twitter' => {},
            }, 
            'network' => 'freenode',
            'loadmodule' => [
                'Twitter',
                'Join',
            ]
        }
    }
};

my $horris = Horris->new(config => $config);
$horris->run;

or

horris run --configfile /path/to/config.conf        # more general

below shows some feature of Horris.

### assume here at a irc channel & hongbot is horris bot, hshong is me.
### echo
HH:MM:SS  hshong | hongbot echo
HH:MM:SS      -- | Notice(hongbot) echo on
HH:MM:SS  hshong | hi
HH:MM:SS hongbot | hshong: hi
HH:MM:SS  hshong | hongbot echo
HH:MM:SS      -- | Notice(hongbot) echo off
HH:MM:SS  hshong | hi                           # and no echo here..
### evaluate
HH:MM:SS  hshong | eval print 'hello world'
HH:MM:SS hongbot | hello world
HH:MM:SS  hshong | eval print $^V
HH:MM:SS hongbot | v5.10.1
### hit(cute joke)
HH:MM:SS  hshong | hongbot hit hshong
HH:MM:SS hongbot | hshong: fork you
HH:MM:SS  hshong | hongbot hit hshong
HH:MM:SS hongbot | hshong: http://stfuawsc.com
HH:MM:SS  hshong | jeen: 껒
HH:MM:SS hongbot | hshong: ㅁㅁ? - http://tinyurl.com/5t3ew8t
### letter - Acme::Letter
HH:MM:SS  hshong | letter bye
HH:MM:SS hongbot |  _____ _    _ _____
HH:MM:SS hongbot | |  _  \ \  / /  ___|
HH:MM:SS hongbot | | |_)_/\_\/_/| |__
HH:MM:SS hongbot | | |_) \  | | | |___
HH:MM:SS hongbot | |_____/  |_| |_____|
### PeekURL
HH:MM:SS  hshong | http://sports.media.daum.net/baseball/news/breaking/view.html?cateid=1028&newsid=20110211110523268&p=SpoSeoul
HH:MM:SS      -- | Notice(hongbot): Daum 스포츠 [text/html;charset=UTF-8] - http://tinyurl.com/4rs9afr
### Twitter
HH:MM:SS  hshong | http://twitter.com/#!/umma_coding_bot/status/8721128864350209
HH:MM:SS hongbot | 엄마코딩봇: 세계가 네 코드를 지켜보고 있단다. 버그 배출을 자제하렴.
### kspell - KoreanSpellChecker
HH:MM:SS  hshong | kspell 키디님
HH:MM:SS hongbot | 키디님 -> 케디님
### Relay chat messages from other networks
HH:MM:SS hongbot | <other_irc_server_hshong> i'm here
### PowerManagement
HH:MM:SS    NICK | hongbot quit
HH:MM:SS     <-- | hongbot (nick@some.host) has quit (Remote host closed the connection)

DESCRIPTION

Morris is awesome. Horris stolen Morris's idea, documents, code base, plugin and so on. (everything) Morris has self implemeted pluggable process. but Horris is not.

<Horris> is <Morris> + CLI utility + More Simple plugins.

This documents concentrate How to use instead What it is. because you can also seeing Morris.

BASIC CONFIGURATION

<Config>
  <Connection YourConnectionName>
    Network YourNetworkName
    ... LoadModules ...
    ... plugins ...
  </Connection>

  <Network YourNetworkName>
    ... network config ...
  </Network>
</Config>

Connection CLAUSE

<Connection YourConnectionName>
    LoadModule  Echo
    LoadModule  PeekURL
    LoadModule  Twitter
    <Plugin Echo/>
    <Plugin PeekURL/>
    <Plugin Twitter/>
</Connection>

LoadModule has execute priority. First in first out. Each plugin return boolean value when a event occur. If any plugin return false, lower plugins never processing occured event.

SEE ALSO

Morris

AUTHOR

hshong <hshong@perl.kr>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by hshong.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.