]> ruin.nu Git - NDIRC.git/blobdiff - DiscordContext.pm
Merge branch 'discord'
[NDIRC.git] / DiscordContext.pm
diff --git a/DiscordContext.pm b/DiscordContext.pm
new file mode 100644 (file)
index 0000000..c6e4959
--- /dev/null
@@ -0,0 +1,95 @@
+#**************************************************************************
+#   Copyright (C) 2019 by Michael Andreen <harvATruinDOTnu>               *
+#                                                                         *
+#   This program is free software; you can redistribute it and/or modify  *
+#   it under the terms of the GNU General Public License as published by  *
+#   the Free Software Foundation; either version 2 of the License, or     *
+#   (at your option) any later version.                                   *
+#                                                                         *
+#   This program is distributed in the hope that it will be useful,       *
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+#   GNU General Public License for more details.                          *
+#                                                                         *
+#   You should have received a copy of the GNU General Public License     *
+#   along with this program; if not, write to the                         *
+#   Free Software Foundation, Inc.,                                       *
+#   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
+#**************************************************************************/
+
+package NDIRC::DiscordContext;
+use strict;
+use warnings;
+use feature ':5.10';
+
+use Moose;
+use namespace::autoclean;
+extends "NDIRC::Context";
+
+has discord_id => (
+       is => 'ro',
+       isa => 'Str',
+       required => 1
+);
+
+has channel_id => (
+       is => 'ro',
+       isa => 'Str',
+       required => 1
+);
+
+has discord => (
+       is => 'ro',
+       isa => 'Object',
+       required => 1
+);
+
+
+sub reply {
+       my ($self,$msg) = @_;
+
+       $self->message($self->channel_id, $msg);
+}
+
+sub message {
+       my ($self, $target, $msg) = @_;
+
+       $self->bot->discordMessage($target, $msg ); # Send the response.
+}
+
+sub replyId {
+       my $self = shift;
+       return "D-".$self->channel_id;
+}
+
+sub _build_uid {
+       my ($self) = @_;
+
+       my $query = $self->model->prepare(q{
+SELECT uid FROM users
+WHERE discord_id = $1
+               });
+       $query->execute($self->discord_id);
+
+       if (my ($uid) = $query->fetchrow_array){
+               $query->finish;
+               return $uid;
+       }
+       return -4;
+}
+
+sub valuecolor {
+       shift @_;
+       my $s = $_;
+       $s = $_[1] if $#_ >= 1;
+       $s = "" unless defined $s;
+       return "~~$s~~" if $s eq 'Hostile';
+       return "***$s***" if $s eq 'Friendly';
+       return "*$s*" if $s eq 'Nap' or $s eq 'NAP';
+       return "<b>$s</b>" if $_[0] && $s;
+       return $s;
+}
+
+__PACKAGE__->meta->make_immutable;
+
+1;