aboutsummaryrefslogtreecommitdiff
path: root/bin/test
diff options
context:
space:
mode:
Diffstat (limited to 'bin/test')
-rw-r--r--bin/test72
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;
+}