Le cut d'url de Deblan, l'API avec Shell
Souvenez-vous, j'avais écris un article concernant l'API de mon système de cut d'url disponible sur url.deblan.fr.
Aujourd'hui je vous propose un script écrit en Shell pour utiliser cette API en ligne de commandes :
#!/bin/sh
VERSION=1.5
urlencode() {
echo "$1" | sed 's/&/%25/g'
}
usage() {
cat << EOF
NOM
$(basename $0) - Contact l'API de url.deblan.fr pour raccourcir une URL
SYNOPSIS
$0 [OPTIONS] URL
DESCRIPTION
Contact l'API de url.deblan.fr pour raccourcir une URL
--help, -h Afficher l'aide-mémoire et quitter
--version, -v Afficher le nom et la version du logiciel et quitter
--title <titre>, -t <titre> Ajoute un titre dans l'URL de retour
--type <type>, -r <type> Indique le type de redirection
Formats autorisés
- http : redirection http (entête http Location)
- meta : direction par meta html
Valeur par défaut : http
--time <time>, -s <time>
Si --type vaut 1, ce paramètre sera ignoré
Valeurs autorisées (en secondes) : 3, 5, 10
Valeur par défaut : 5
--format, -f <format> Indique le format de retour des données
Valeur par défaut : text
Formats autorisés
- json :
Retour sans erreur
{"error":0,"values":[URL],"format":"json"}
Retour avec erreur(s)
{"error":1,"values":[ERREURS],"format":"json"}
- xml :
Retour sans erreur
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>0</error>
<values>
<value>URL</value>
</values>
</response>
Retour avec erreur
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>1</error>
<values>
<value>ERREUR 1</value>
<value>ERREUR 2</value>
[...]
</values>
</response>
- text :
Retour sans erreur
URL
Retour avec erreur
error
ERREURS
AUTEUR
Ecrit par Simon Vieille - http://www.deblan.fr/
SIGNALER DES BOGUES
simon.vieille _AT_ free _POINT_ fr
LICENCE
Ce programme est un logiciel libre. Vous pouvez le modifier et le redistribuer. Il n'y a AUCUNE GARANTIE dans la mesure autorisée par la loi.
EOF
}
version() {
cat << EOF
$0, version $VERSION
EOF
}
URL=
TITLE=
TYPE=1
TIME=5
FORMAT=text
for p in "$@"; do
case "$p" in
--help|-h)
usage | less
exit 0;;
--version|-v)
version
exit 0;;
--title|-t)
shift
TITLE=$(urlencode "$1")
shift;;
--format|-f)
shift
FORMAT="$1"
case $FORMAT in
xml|text|json) ;;
*)
echo "Erreur de paramètre (FORMAT) - $0 --help pour plus d'informations"
exit 1;;
esac
shift;;
--time|-s)
shift
TIME="$1"
case $TIME in
3|5|10);;
*)
echo "Erreur de paramètre (TIME) - $0 --help pour plus d'informations"
exit 1;;
esac
shift;;
--type|-r)
shift
TYPE="$1"
case $TYPE in
http) TYPE=1;;
meta) TYPE=2;;
*)
echo "Erreur de paramètre (TYPE) - $0 --help pour plus d'informations"
exit 1;;
esac
shift;;
esac
done
if [ -z "$URL" ]; then
URL=$(urlencode "$1")
if [ -z "$URL" ]; then
echo "Erreur de paramètre (URL) - $0 --help pour plus d'informations"
exit 1
fi
fi
TMP=/tmp/cut$(date '+%N')
wget "http://url.deblan.fr/gestion/api.php?url=$URL&title=$TITLE&type=$TYPE&format=$FORMAT&time=$TIME" -O $TMP >/dev/null 2>&1
echo "`cat $TMP`"
rm -f $TMP
exit 0
Enjoy :) !

Détecter les vulnérabilités dans les dépendances de son projet
La gestion des dépendances dans un projet est quelque chose de complexe. Il y a autant de ge…

Sharepoint Office365 sur Linux : automatiser l'authentification (v2)
En septembre 2018, je publiais un article pour automatiser l'authentification sur Sharepoint…

Gitnet héberge vos pages statiques
Gitnet est la forge logicielle que je gère depuis quelques années et qui héberge la totalité…