Ceci est une ancienne révision du document !


Yannick_LM

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, GMT)

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

Quelques programmes à 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.
  • Mpd , un serveur son pour votre ordi.

Un petit bout de mon fichier ~/.aliases

# Pour créer des playlists pour mpd
# Usage : 
# cd $MUSIQUE
# CreatePL Repertoire NomPlayliste [regexp]
# Crée une playliste pour mpd contentant tous les fichiers en mp3 ou ogg du 
# répertoire. Si regexp est donné, seules les pistes correspondantes sont 
# ajoutées
# Attention : si le nom de la PL comporte des guillemets, l'écrire avec ' '
# TODO : faire ça proprement avec des getopt
function CreatePL {
MUSIQUE=$HOME/Musique
PLAYLISTS=$MUSIQUE/.mpd/playlists
        [[ -n $3 ]] && \
            find $1 -name $3 | sort | tee $PLAYLISTS/"$2.m3u" \
            || \
            find $1 -name '*.ogg' -o -name '*.mp3' | sort | tee $PLAYLISTS/"$2.m3u"
}
# Vos commandes les plus utilisées: (si vous utilisez zsh, remplacez .histfile 
# par .bash_history)
function cmd {
	sed -e 's/sudo //' $HOME/.histfile |  cut -d' ' -f1 | sort | uniq -c | sort -rg | head $1
}
 
# Pour être sûr de n'avoir toujours qu'un screen d'ouvert :
alias sr='screen -RaAd'

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');
  • utilisateurs/yannick_lm.1201602844.txt.gz
  • Dernière modification: Le 18/04/2011, 14:43
  • (modification externe)