From: bw1 Date: Sun, 2 Mar 2025 13:24:39 +0000 (+0100) Subject: [google] remove google.pl X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=4a55195ceea322a7c75f9a27aac9e62083f6efe1;p=irssi-scripts.irssi.org.git [google] remove google.pl --- diff --git a/scripts/google.pl b/scripts/google.pl deleted file mode 100644 index 84de848..0000000 --- a/scripts/google.pl +++ /dev/null @@ -1,224 +0,0 @@ -# - Google.pl -use Irssi; -use Getopt::Long qw/GetOptionsFromString/; -use IPC::Open3; -use JSON::PP; -use strict; -use vars qw($VERSION %IRSSI); - -$VERSION = '2.01'; -%IRSSI = ( - authors => 'bw1', - contact => 'bw1@aol.at', - name => 'google', - description => 'This script queries google.com with googler and returns the results.', - license => 'Public Domain', - url => 'https://scripts.irssi.org/', - modules => '', - commands=> 'google', - selfcheckcmd=> 'google -check', -); - -my $help = << "END"; -%9Name%9 - $IRSSI{name} -%9Version%9 - $VERSION -%9Usage%9 - /google [-N|-news] [-x|-exact] [-c|-tld TLD] [-l|-lang LANG] - [-n|-count N] [-s|-start] - /google {-h|-help} - /google {-p|-say N} - /google -check -%9Description%9 - $IRSSI{description} - first author: Oddbjørn Kvalsund -%9Arguments%9 - -N|-news show results from news section - -x|-exact disable automatic spelling correction - -c|-tld country-specific search with top-level domain - -l|-lang display in language LANG - -n|-count show N results (default 10) - -s|-start start at the Nth result - -h|-help show this help message - -p|-say say the N url in channel - -check self check -%9See also%9 - https://github.com/jarun/googler -END - -my ($copt, $tld, $lang, $count, $start, $chelp, $say, $check); -my %options = ( - 'N'=> sub {$copt .= '--news '}, - 'news'=> sub {$copt .= '--news '}, - 'x'=> sub {$copt .= '--exact '}, - 'exact'=> sub {$copt .= '--exact '}, - 'c=s'=> \$tld, - 'tld=s'=> \$tld, - 'l=s'=> \$lang, - 'lang=s'=> \$lang, - 'n=o' => \$count, - 'count=o' => \$count, - 's=o' => \$start, - 'start=o' => \$start, - 'h' => \$chelp, - 'help' => \$chelp, - 'p=o' => \$say, - 'say=o' => \$say, - 'check' => \$check, -); - -## Usage: -## /google [-p, prints to current window] [-, number of searchresults returned] search-criteria1 search-criteria2 ... -## -## History: -## - Sun May 19 2002 -## Version 0.1 - Initial release -## - 2019-08-04 -## Version 2.0 - Change to googler -## - 2021-01-26 -## Version 2.01 - self check -## ------------------------------- - -my (%readex, $instr, $errstr, @res); - -sub read_exec { - my ($cmd, $rfunc) = @_; - - my ($in, $out, $err); - use Symbol 'gensym'; $err = gensym; - my $pid = open3($in, $out, $err, $cmd); - $readex{$pid}->{pid}=$pid; - $readex{$pid}->{cmd}=$cmd; - $readex{$pid}->{in}=$in; - $readex{$pid}->{out}=$out; - $readex{$pid}->{err}=$err; - $readex{$pid}->{rfunc}=$rfunc; - - Irssi::pidwait_add($pid); -} - -sub sig_read_exec { - my ($pid, $status) = @_; - - if (defined $readex{$pid} ) { - my $out =$readex{$pid}->{out}; - my $err =$readex{$pid}->{err}; - my $rfunc =$readex{$pid}->{rfunc}; - - delete $readex{$pid}; - - my $old = select $out; - local $/; - $instr = <$out>; - select $old; - - my $old = select $err; - local $/; - $errstr = <$err>; - $errstr =~ s/[\n\r]//g; - select $old; - - &$rfunc() if (defined $rfunc); - if ( scalar(keys(%readex)) == 1 && - exists $readex{job}) { - foreach my $j ( @{$readex{job}} ) { - if ( ref( $j) eq 'CODE' ) { - &$j(); - } else { - eval( $j ); - } - } - delete $readex{job}; - } - Irssi::signal_stop(); - } -} - -sub cmd { - my ($args, $server, $witem)=@_; - Getopt::Long::Configure('no_ignore_case'); - my ($ret, $arg) = GetOptionsFromString($args, %options); - if ($ret) { - if (defined $chelp) { - cmd_help($IRSSI{name}, $server, $witem); - } elsif (defined $say) { - if ($say >0 && $say <= scalar(@res)) { - Irssi::active_win()->command("say $res[$say-1]->{url}"); - } - } else { - my $cmd="googler --json "; - $cmd .="--tld $tld " if (defined $tld); - $cmd .="--lang $lang " if (defined $lang); - $cmd .="--count $count " if (defined $count); - $cmd .="--start $start " if (defined $start); - $cmd .="irssi " if (defined $check); - $cmd .="$copt " if (defined $copt); - $cmd .=join(" ",@{$arg}); - Irssi::print(">$cmd<", MSGLEVEL_CLIENTCRAP); - read_exec($cmd ,\&print_all); - } - } - $copt=undef; - $tld=undef; - $lang=undef; - $count=undef; - $start=undef; - $chelp=undef; - $say=undef; -} - -sub self_check { - my @r =@_; - my $s="ok"; - $check=undef; - Irssi::print("Selfcheck: results: ".scalar @r); - Irssi::print("Selfcheck: url: ".$r[0]->{url}); - Irssi::print("Selfcheck: title: ".$r[0]->{title}); - if ( scalar(@r) < 6 ) { - $s="Error: results (".scalar @r.")"; - } elsif ( $r[0]->{url} !~ m/^http/ ) { - $s="Error: url (".$r[0]->{url}.")"; - } elsif ( length($r[0]->{title}) < 4) { - $s="Error: title (".$r[0]->{title}.")"; - } - Irssi::print("Selfcheck: $s"); - my $schs_version = $Irssi::Script::selfcheckhelperscript::VERSION; - Irssi::command("selfcheckhelperscript $s") if ( defined $schs_version ); -} - -sub print_all { - if( length($errstr) <1 ) { - @res= @{decode_json($instr)}; - self_check(@res) if (defined $check); - Irssi::print("/---- google ----", MSGLEVEL_CLIENTCRAP); - my $c=1; - foreach my $r (@res) { - my $s= sprintf("| %3d ",$c) . $r->{title}; - Irssi::print($s, MSGLEVEL_CLIENTCRAP); - $s="| ". $r->{url}; - Irssi::print($s, MSGLEVEL_CLIENTCRAP); - $c++; - } - Irssi::print('\---- google ----', MSGLEVEL_CLIENTCRAP); - } else { - Irssi::print($errstr, MSGLEVEL_CLIENTCRAP); - } -} - -sub cmd_help { - my ($args, $server, $witem)=@_; - $args=~ s/\s+//g; - if ($IRSSI{name} eq $args) { - Irssi::print($help, MSGLEVEL_CLIENTCRAP); - Irssi::signal_stop(); - } -} - -$ENV{PYTHONIOENCODING}='utf8'; -Irssi::signal_add('pidwait', 'sig_read_exec'); - -Irssi::command_bind('google', 'cmd'); -my @opt=map {$_ =~ s/=.*$//, $_ } keys %options; -Irssi::command_set_options($IRSSI{name}, join(" ", @opt)); -Irssi::command_bind('help', \&cmd_help);