Contenu | Rechercher | Menus

Ceci est une ancienne révision du document !


Yannick_LM

Moi :

Je suis étudiant en dernière année dans une école d'ingénieur. Je suis joignable à l'adresse mail suivante : yannick_LM (chez yahoo.fr), et je traîne assez souvent sur le forum. J'ai découvert Ubuntu il y a déjà plus d'un an, et me suis formé quasiment uniquement grâce à la communauté (la documentation et le forum) Je suis aussi de plus en plus sur #ubuntu-fr (de préférence tard le soir)

Je continue à apprendre sans arrêt, et je ne compte plus m'arrêter…

Quelques rogrammes à découvrir :

  • Screen, le multiplexeur de terminal
  • zsh , ou comment donner un coup de vieux à Bash
  • WindowMaker, un gestionnaire de fenêtres qu'il est bien.
  • Irssi, le client IRC en mode texte

Contributions :

  • Quelque chose de complètement inutile, donc indispensable : un Big Ben dans votre ordi
  • Membre du groupe traducteur d'Ubuntu
  • Traduction de la LHU. (venez nous rejoindre !)
  • Réécriture d'un script pour irssi (recherche google)
#!/usr/bin/perl -w
# - Google.pl
 
use Irssi;
use LWP::UserAgent;
use strict;
use vars qw($VERSION %IRSSI);
 
$VERSION = '1.00';
%IRSSI = (
    authors     => 'Oddbjørn Kvalsund',
    contact     => 'oddbjorn.kvalsund@hiof.no',
    name        => 'Google',
    description => 'This script queries google.com and returns the results.',
    license     => 'Public Domain',
);
 
## Usage:
## /google [-p, prints to current window] [-<number>, number of searchresults returned] search-criteria1 search-criteria2 ...
##
## History:
## - Sun May 19 2002
##   Version 0.1 - Initial release
## -------------------------------
## Corrected by Yannick LM
# - Sat Jan 26 2007
#-------------------------------------------------
my $nr_sites = 3; # Search-results returned
my $prefix = "Google search:"; # Message printed before results
#-------------------------------------------------
 
 
 
# Print pages to current window if public-mode specified
# else display a private notice of returned pages
 
sub print_results{
	my ($witem, $mode, $nr_sites, @lines)=@_;
	my $i=0;
 
	if ($mode eq "public" && $prefix ne "") { $witem->command("/SAY $prefix") } ;
 
        while ($i<$nr_sites && $i < 10) {
		 my $line=$lines[$i+3];	 #The first three lines are irrelevant
		 if ($line =~ /^\w+\.\w+/) {
			$line =~ s/\s+.*//g;  # We've got an URL
			if ( $mode eq "public") {
				$witem->command("/SAY http://$line");
			}
			else {
			    Irssi::active_win()->print("http://$line");
			}
		 }
		 else {
			 $nr_sites++;
		 }
		 $i++;
	}
 
}
 
 
sub cmd_google {
 
        my ($data, $server, $witem) = @_;
        my $url = "";
	my $nr_sites = 3;
#	my $i = 0;
	my (@lines, @pages);
	my $mode = "quiet";
 
	# If user supplied nr_sites, activate his setting
	if ( $data =~ /-(\d\s)/ ) { $nr_sites = $1 };
	if ($data =~ /-10/) { $nr_sites = 10 };
	$data =~ s/-\d+//g; # remove nr_sites from $data
 
	# Switch to public mode
	# and return error msg if invalid window
	if ( $data =~ /-p/ ) {
		$mode = "public";
		if ( ! $witem ) {
		  Irssi::active_win()->print("Must be run run in a valid window (CHANNEL|QUERY)");
		  return;
		}
	}
	$data =~ s/-p//g; # remove -p from $data
 
	# Format the query-string
	$data =~ s/\s/+/g;
	my $query = $data;
 
	# Initialize LWP
	my $ua = new LWP::UserAgent;
	$ua->agent("AgentName/0.1 " . $ua->agent);
 
	# Do the actual seach
        my $req = new HTTP::Request GET => "http://www.google.com/search?hl=en&q=$query";
        my $res = $ua->request($req);
        my $content = $res->content;
 
	# Replace <br> with newlines
	# and remove tags
        $content =~ s/\<br\>/\n/g;
        $content =~ s/\<.+?\>//sg;
 
	# Make array @lines of all search-results
        @lines = split("\n", $content);
 
	# Dispaly the result according to the mode
 
	&print_results($witem, $mode, $nr_sites, @lines);
#        Irssi::active_win()->print("Jusqu'ici, tout va bien");
}
 
Irssi::command_bind('google', 'cmd_google');


Le contenu de ce wiki est sous licence : CC BY-SA v3.0