diff options
Diffstat (limited to 'bin/test')
-rw-r--r-- | bin/test | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/bin/test b/bin/test new file mode 100644 index 0000000..421230f --- /dev/null +++ b/bin/test @@ -0,0 +1,72 @@ +#!/usr/bin/env raku + +use v6.d; + +use IRC::Client; +use IRC::Client::Plugin; +use Log; +use Log::Level; +use Number::Denominate; + +sub MAIN() +{ + # Configure Log + $Log::instance = (require ::($*ENV<RAKU_LOG_CLASS> // 'Log::Colored')).new; + $Log::instance.add-output($*OUT, %*ENV<RAKU_LOG_LEVEL> // Log::Level::Debug); + + # Start the IRC client + my $bot = IRC::Client.new( + #host => 'chat.freenode.net', + #port => 6697, + #ssl => True, + host => '127.0.0.1', + port => 6667, + ssl => False, + nicks => <tyil_ircbot tyiltest>, + channels => <##t #test>, + plugins => [ + class _ is IRC::Client::Plugin { + multi method irc-to-me ($ where * eq 'uptime') { + denominate now - INIT now; + } + + multi method irc-to-me ($event where { $_.nickname eq 'tyil' && $_ eq 'prefix' }) { + $event.irc.prefix; + } + + multi method irc-to-me ($event where { $_.nickname eq 'tyil' && $_ eq 'chanlist' }) { + $event.irc.channels.join(', ') + } + + multi method irc-to-me ($event where { $_.nickname eq 'tyil' && $_.words[0] eq 'join'}) { + my $channel = $event.words[1]; + + $event.reply("Joining $channel"); + $event.irc.join($channel); + } + + multi method irc-to-me ($event where { $_.nickname eq 'tyil' && $_.words[0] eq 'part'}) { + my $channel = $event.words[1]; + + $event.reply("Parting $channel"); + $event.irc.part($channel); + } + + multi method irc-mentioned ($) { + "Don't take my name in your filthy mouth, peasant" + } + + multi method http-get(%payload) { + dd %payload<body>; + %payload<irc>.privmsg('#test', 'hello there'); + } + + multi method http-post(%payload) { + %payload<irc>.privmsg('#test', %payload<body><this>); + } + }, + ], + ); + + $bot.start; +} |