diff options
Diffstat (limited to 'scripts')
| -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  { | 
