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 0Enjoy :) !

De Xorg à Wayland, de i3 à sway
Quelques jours après avoir mise en ligne la nouvelle infrastructure structure d'hébergement,…

Nouvelle infrastructure d'hébergement
Pour celles et ceux qui ne connaissent pas mon histoire : j’ai commencé à héberger du conten…

Streaming Owncast et Twitch
Il y a quelques années de cela, j'avais commencé à streamer des sessions de développement su…
