avr 26

Voici donc la nouvelle version de CutMyUrl ! Pour rappel ce script a pour fonction de raccourcir une adresse en utilisant le service mis à disposition par ur1.ca. Rien d’exceptionnel donc, mais il a le mérite de fonctionner !

Installation :

Arch Linux :

Un petit yaourt sera suffisant pour installer CutMyUrl :

$ yaourt -S cutmyurl

Autres distributions :

Télécharger le paquet :

$ wget http://ubunblox.free.fr/UbunBlox/AUR/cutmyurl-1.5.tar.gz

Décompresser l’archive et rendez le script exécutable :

$ tar -xf cutmyurl-1.5.tar.gz
$ chmod +x cutmyurl

Fonctionnalités :

Voici les fonctionnalités incluses dans cette version 1.5 :

  • Copie de l’url dans le presse papier.
  • Archivage des adresses.
  • Possibilité d’afficher et de supprimer l’historique des adresses.
  • Fonctions de recherche.
  • Support des tags.

Voyons maintenant les différentes utilisations possibles de CutMyurl :

  • Afficher l’aide :
$ cutmyurl -h
  • Afficher les notes de version :
$ cutmyurl -v
  • Afficher les informations concernant CutMyUrl :
$ cutmyurl -i
  • Raccourcir simplement une adresse :
$ cutmyurl -u http://google.fr
  • Raccourcir une adresse et la copier directement dans le presse papier :
$ cutmyurl -c http://google.com
  • Raccourcir une adresse et lui ajouter un tag :
$ cutmyurl -c http://google.com recherche
$ cutmyurl -u http://ubunblox.servhome.org "mon blog"

Si aucun tag n’est ajouté par l’utilisateur, celle-ci portera automatiquement le tag #none.

  • Afficher l’historique :
$ cutmyurl -H

Appuyez sur la touche [ Q ] pour quitter l’historique.

  • Supprimer l’historique :
$ cutmyurl -d
  • Effectuer une recherche :
$ cutmyurl -s google
$ cutmyurl -s "mon blog"

Le script :

Pour les plus curieux d’entres vous : Voici le script dans son intégralité.

#!/bin/sh
 
#  CutMyUrl
#  Version 1.5
#  A shortener url command line
#  Using the open source service ur1.ca, http://ur1.ca/
#  By Lopes Ferreira David, http://ubunblox.servhome.org/
#  ubunblox@gmail.com
#  Licence GPL
#  Depends : curl, xclip
#########################
 
 
	## Variables ##
r="\033[0m"				# regular
f="\033[1m"				# fat
v="1.5"					# version
n="CutMyUrl"				# name
u="http://ur1.ca/"			# url
path="$HOME/.config/cutmyurl" 		# path
log="$path/log"				# log file
date=`date '+%F %T'`			# date
#
#
	## Check for arg in $2 ##
if [ -n "$2" ] ; then 
	arg="$2"
fi
#
#
	## Check for arg in $3 ##
if [ -n "$3" ] ; then 
	tag="#$3"
else
	tag="#none"
fi
#
#
	## Check for path ##
if ! [ -d $path ] ; then
	mkdir -p $path
fi
#
#
	## Check for log file ##
if ! [ -r $log ] ; then
	echo -e "## $n log file ## \n \n " > $log
fi
#
#
	## Fonction cut url ##
_cut_url () {
short_url=$(curl -s "$u" -d"longurl=$arg" | grep 'Your ur1 is' | sed 's/^.*<a href="//;s/".*$//')
}
#
#
	## Fonction display short url ##
_url () {
_cut_url
if [ -z $short_url ] ; then
	echo -e "\n$f---------→ Need help $USER ? $r\n"
	_help
else
	echo -e "\n$short_url \n"
	_log
fi	
}
#
#
	## Fontion copy short url to clipboard ##
_copy () {
_cut_url
if [ -z $short_url ] ; then
	echo -e "\n$g---------→ Need help $USER ? $n\n"
	_help
else
	echo "$short_url" |  xclip -selection c	
	echo -e "\nThe url $f"$short_url"$r has been copied to your clipboard. \n"
	_log
fi	
}
#
#
	## Fonction log ##
_log (){
sed -i '3i\'"$date \t$arg \t$short_url \t$tag"'' $log
}
#
#
	## Fontion history ##
_hist () {
less $log
}
#
#
	##Fonction delete history ##
_delete () {
echo -e " Do you really want to$f delete$r the history file ? $f[Y/N]$r"
read reply
case "$reply" in
	y | Y | yes | YES | o | O | oui | OUI )	echo -e "## $n log file ## \n \n " > $log & echo "History deleted, bye !"
	;;
	* )					echo "\n$f Nothing to do, bye !$r \n"
	;;
esac
}
#
#
	## Fonction search ##
_search () {
_hist | grep "$arg"
if [ $? != 0 ] ; then
	echo -e " No result for $arg"
fi
}
#
#
	## Fonction help ##
_help () {
echo -e "$f NAME$r"
echo -e "\t$f $n $r- Shortener url command line. \n"
echo -e "$f SYNOPSIS$r"
echo -e "\t$f cutmyurl$r OPTION [URL] [TAG]\n"
echo -e "$f DESCRIPTION$r"
echo -e "\t $f-u, --url $r \t[URL]\tShort url."
echo -e "\t $f-c, --copy $r \t[URL]\tCopy short url to clipboard."
echo -e "\t $f-s, --search $r \t[EXP]\tSearch expression in history file."
echo -e "\t $f-h, --help $r\t\tHelp."
echo -e "\t $f-v, --version $r\t\tVersion."
echo -e "\t $f-i, --info $r\t\tInformations."
echo -e "\t $f-H, --history $r\t\tView the history file."
echo -e "\t $f-d, --delete $r\t\tDelete history file.\n"
echo -e "$f EXAMPLES$r"
echo -e "\t$f cutmyurl$r -u http://google.com"
echo -e "\t$f cutmyurl$r -c http://google.com"
echo -e "\t$f cutmyurl$r -u http://website_about_cat_and_dog.com \"cat and dog\""
echo -e "\t$f cutmyurl$r -c http://google.com google\n"
echo -e "$f END$r"
}
#
#
	## Fonction informations ##
_info () {
echo -e "$f $n$r"
echo -e "\n\t # A shortener url Command line "
echo -e "\t # Using the open source service ur1.ca, http://ur1.ca/"
echo -e "\t # By Lopes Ferreira David, http://ubunblox.servhome.org/"
echo -e "\t # ubunblox@gmail.com"
echo -e "\t # Licence GPL \n"
}
#
#
	## Fonction version ##
_version () {
echo -e "$f VERSION$r"
echo -e "\t$f version :$r\t$v\n"
echo -e "$f CHANGE LOG$r"
echo -e "\t$f 26/04/2011 :$r\tAdd search fonction and tag support\n"
echo -e "\t$f 19/04/2011 :$r\tAdd history fonction and delete fonction\n"
echo -e "\t$f 18/04/2011 :$r\tChange in copy fonction\n"
echo -e "\t$f 18/04/2011 :$r\tAdd copy fonction\n"
echo -e "\t$f 16/04/2011 :$r\tFirst release\n"
echo -e "$f DEPENDS$r"
echo -e "\t$f curl, xclip$r\n"
}
#
#
	## Start CutMyUrl ##
case "$1" in
	-h | --help)		_help
	;;
	-i | --info)		_info
	;;
	-v | --version)		_version
	;;
	-u | --url)		_url
	;;
	-c | --copy)		_copy
	;;
	-H | --history)		_hist
	;;
	-d | --delete)		_delete
	;;
	-s | --search)		_search
	;;
	*)			_help
esac
#
#
	## End ##
exit 0
#
#

Comme d’habitude n’hésitez pas à laisser vos remarques ;) .

Lien :

  • CutMyUrl sur AUR

écrit par David Lopes Ferreira

4 commentaires à “CutMyUrl 1.5 : Support des tags et fonction de recherche”

  1. Yoko Dit:

    Salut,

    A la place de less je pense qu’il serait plus intéressant d’utiliser pager qui est forcément présent et qui point sur less, more ou most (ou view par exemple).

  2. David Lopes Ferreira Dit:

    @Yoko : « il serait plus intéressant d’utiliser pager qui est forcément présent », Il n’est pas prèsent chez moi en tout cas… Il serait dommage d’ajouter une dépendance jsute pour un afficher un texte.

  3. Guillaume Dit:

    pager est dans le coreutils je crois donc son utilisation ne nécessite pas plus de dépendance que less ;)
    Pourquoi forcément utiliser une option afin de raccourcir le lien ?
    « $ cutmyurl http://google.fr » serait suffisant non ?

  4. David Lopes Ferreira Dit:

    @Guillaume : Peut être… Je pourrais faire un truc du genre :

    case « $1″ in
    http* ) _url
    ;;
    esac

Laisser une Réponse