1 #**************************************************************************
2 # Copyright (C) 2009 by Michael Andreen <harvATruinDOTnu> *
4 # This program is free software; you can redistribute it and/or modify *
5 # it under the terms of the GNU General Public License as published by *
6 # the Free Software Foundation; either version 2 of the License, or *
7 # (at your option) any later version. *
9 # This program is distributed in the hope that it will be useful, *
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 # GNU General Public License for more details. *
14 # You should have received a copy of the GNU General Public License *
15 # along with this program; if not, write to the *
16 # Free Software Foundation, Inc., *
17 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18 #**************************************************************************/
20 package NDIRC::Commands::Quotes;
27 use MooseX::MethodAttributes;
32 tie my @FILE, 'Tie::File', "quote.txt";
33 tie my @OLDFILE, 'Tie::File',"oldquotes.txt" or die "test";
36 : Help(syntax .quote [number] | if number isn't given, then a random quote is used)
39 my ($self,$c,$msg) = @_;
40 my ($n) = $msg =~ /(\d+)/;
42 $n = $n-1 if defined $n;
43 $n //= int(rand($#FILE));
44 $n = $#FILE if $self->name eq 'lastquote';
47 $text =~ s/(.*?)[\r\n]*$/$1/;
50 $c->reply("Quote <b>$n</b> of <b>$num</b>: $text");
54 : Help(syntax .addquote quote)
56 my ($self,$c,$quote) = @_;
58 die 'ARGS' unless $quote;
62 $c->reply("Quote <b>$num</b> added");
66 : Help(syntax .findquote pattern | findqre lets you use a regex pattern)
69 my ($self,$c,$pattern) = @_;
70 die 'ARGS' unless $pattern;
72 if ($self->name eq 'findqre'){
73 if (defined (eval 'm/$pattern/ix')){
74 $matcher = 'm/$pattern/ix';
76 $c->reply("bad regexp");
80 $matcher = '(index uc($_), uc($pattern)) != -1';
82 my $file = new File::Temp( SUFFIX => '.txt' );
89 print $file "$n: $_\n";
95 $c->command(dcc => $c->nick => SEND => $file);
97 $c->reply("No quotes matching <b>$pattern.</b>");
102 : Help(syntax: .delquote number)
105 my ($self,$c,$msg) = @_;
106 my ($n) = $msg =~ /(\d+)/ or die 'ARGS';
108 if (exists $FILE[$n]){
109 my ($uid,$username) = $c->model->selectrow_array(q{
110 SELECT uid,username FROM users where hostmask ILIKE ?
113 my $text = $FILE[$n];
114 push @OLDFILE,"Removed by $username ($uid): $text";
118 $c->reply("Quote <b>$n</b> {$text} removed, number of quotes now: <b>$num</b>");
120 $c->reply("No such quote.");