Utilisateur:Legrostdg/Pastealacon

De Disposition de clavier bépo

Ce script permet de ne pas reprendre la souris pour coller des données sur le site pastealacon.com.

Il prend le texte à coller sur l'entrée standard et il renvoie l'url associée. Il colle aussi cette url dans le buffer du clic scroll à l'aide de xclip.

Exemple d'utilisation :

toto@charcuterie ~% cat je_m_appelle_toto_et_je_suis_rigolo.txt | pastebin.pl
 http://pastealacon.com/2281

On peut retrouver l'url à l'aide de "xclip -o".

toto@charcuterie ~% xclip -o
 http://pastealacon.com/2281

Il nécessite perl, le module perl WWW::Mechanize et xclip

Les options disponibles sont:

  • -nick (votre pseudo (Anonymous par défaut, éventuellement à adapter dans le script))
  • -lang (le langage dans lequel sont codées les lignes que vous avez "pastées" (défaut: texte): utile pour la coloration syntaxique)

voir la liste des languages de programmation supportés par pastealacon.com.

en général il vous faut noter le nom du langage sans espace et en minuscule.

  • -time (durée de vie du "paste": d = un jour (défaut), m = un mois, f = à jamais)


#!/usr/bin/perl -w
#
# pastealacon.pl
#
# Faire des pastes en ligne de commande sur pastealacon.com.
# Colle l'entrée standard sur pastealacon.com, renvoie l'url
# et la met dans le buffer du clic scroll.
#
# Distribué sous les termes de la
# Licence Publique Rien À Branler (LPRAB) version 1

my $url = "http://pastealacon.com/";
my $nick = "Anonymous";
my $format = "text";
my $time = "d";


use WWW::Mechanize;
use Getopt::Long;

my %CONF = (
  lang     => $format,
  nick     => $nick,
  time     => $time,
  text     => '',
);

GetOptions( \%CONF, "lang=s", "nick=s", "time=s", "text=s" )
  or die "Bad Options.";

my $m = WWW::Mechanize->new;
$m->get($url);
die $m->res->status_line unless $m->success;

unless ( $CONF{text} ) {
  $CONF{text} = join "", <>;
};

$m->set_fields(
  format    => $CONF{lang},
  code2     => $CONF{text},
  poster    => $CONF{nick},
  expiry    => $CONF{time},
);
$m->click;
die $m->res->status_line unless $m->success;
my $response = $m->response->request->uri->as_string;
system( "echo $response | xclip -i" );
print $response, "\n";