diff options
Diffstat (limited to 'scripts/wordcompletition.pl')
| -rw-r--r-- | scripts/wordcompletition.pl | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/scripts/wordcompletition.pl b/scripts/wordcompletition.pl index 0aa5e52..6dfeb4a 100644 --- a/scripts/wordcompletition.pl +++ b/scripts/wordcompletition.pl @@ -1,9 +1,10 @@ #!/usr/bin/perl use Irssi; use DBI; +use DBD::SQLite; use strict; use vars qw($VERSION %IRSSI); -$VERSION = "0.1"; +$VERSION = "0.2"; %IRSSI = ( authors => "Jesper Lindh", contact => "rakblad\@midgard.liu.se", @@ -11,28 +12,35 @@ $VERSION = "0.1"; description => "Adds words from IRC to your tab-completion list", license => "Public Domain", url => "http://midgard.liu.se/~n02jesli/perl/", - changed => "2004-03-12" + changed => "2017-03-19", + modules => "DBD::SQLite" ); -my ($dsn) = "DBI:mysql:yourdatabase:databashostname"; -my ($user_name) = "yourusername"; -my ($password) = "yourpassword"; + +my $bd= Irssi::get_irssi_dir(); +my $fndb="wordcompletition.db"; +#my ($dsn) = "DBI:mysql:yourdatabase:databashostname"; +my ($dsn) = "DBI:SQLite:dbname=$bd/$fndb"; +my ($user_name) = ""; +my ($password) = ""; my ($dbh, $sth); my (@ary); my $query; my $connect = 1; $dbh = DBI->connect ($dsn, $user_name, $password, { RaiseError => 1 }); +$dbh->do("create table if not exists words (word varchar(30), prio int)"); + sub wordsearch { my $sw = shift; my @retar; my $i = 0; - $query = qq{ select word from words where word like "$sw%" order by prio desc }; + $query = qq{ select word from words where word like ? order by prio desc }; $sth = $dbh->prepare ( $query ); - $sth->execute(); + $sth->execute($sw.'%'); while (@ary = $sth->fetchrow_array ()) { - $retar[$i++] = join ("", @ary), "\n"; + push @retar,$ary[0]; } $sth->finish(); return @retar; @@ -41,9 +49,9 @@ sub wordfind { my $sw = shift; my $ret; - $query = qq{ select word from words where word = "$sw" }; + $query = qq{ select word from words where word = ? }; $sth = $dbh->prepare ( $query ); - $sth->execute(); + $sth->execute($sw); @ary = $sth->fetchrow_array; $ret = join ("", @ary), "\n"; $sth->finish(); @@ -53,32 +61,32 @@ sub wordfind sub wordupdate { my $sw = shift; - $query = qq { update words set prio = prio + 1 where word = "$sw" }; + $query = qq { update words set prio = prio + 1 where word = ? }; $sth = $dbh->prepare ( $query ); - $sth->execute(); + $sth->execute($sw); $sth->finish(); }; sub delword { my $sw = shift; - $query = qq { delete from words where word = "$sw" }; + $query = qq { delete from words where word = ? }; $sth = $dbh->prepare ( $query ); - $sth->execute(); + $sth->execute($sw); $sth->finish(); }; sub addword { my $sw = shift; - $query = qq { insert into words values ('$sw', 1) }; + $query = qq { insert into words values (?, 1) }; $sth = $dbh->prepare ( $query ); - $sth->execute(); + $sth->execute($sw); $sth->finish(); }; sub word_complete { my ($complist, $window, $word, $linestart, $want_space) = @_; $word =~ s/([^a-zA-Z0-9åäöÅÄÖ])//g; - @$complist = wordsearch($word); + push @$complist , wordsearch($word); }; sub word_message { |
