updated on Tue Jan 10 12:02:00 UTC 2012
[aur-mirror.git] / uppix / uppix.sh
blobb2eb4c0f9227141d7be7383252f21bc3ecc69a11
1 #!/bin/dash
2 # By pmd - http://pmdz.info // slighly modified to remove zenity dependance
3 # But : Envoyer simplement une image vers uppix.net // sans zenity
4 # Paquets requis : curl
5 # Licence : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
6 # Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique
8 # Configuration
9 FICHIER=$1
10 MIMETYPE=$(file -bi "$FICHIER")
11 URL=uppix.net
12 MAX_TAILLE_FICHIER=2000000 #2Mo (fixé par uppix.net)
14 # Verifier le fichier avant envoi
15 TAILLE_FICHIER=$(stat -c%s "$FICHIER")
16 if [ $TAILLE_FICHIER -gt $MAX_TAILLE_FICHIER ]; then
18 echo "Erreur, le fichier $FICHIER est trop lourd ($TAILLE_FICHIER octets pour une limite de $MAX_TAILLE_FICHIER maximum)."
19 exit 1
23 # Envoyer le fichier, et enregistrer la page résultat
24 TEMPFILE=$(tempfile)
25 echo "Envoi de $FICHIER vers $URL ..."
26 curl $URL -F myimage=@"$FICHIER" -F submit=Upload -F formup=1 -H "Expect:" -o $TEMPFILE --progress-bar
29 # Analyser la page pour extraire les donnees
30 VIEWPAGE=$(grep -oEm 1 '\[url\=([^]]*)' $TEMPFILE | sed 's/\[url\=//')
31 IMAGE_BIG=$(grep -oEm 1 '\[img\]([^[]*)' $TEMPFILE | sed 's/\[img\]//')
33 NB_IMG=$(grep -c '\[img\]' $TEMPFILE)
34 if [ "$NB_IMG" -eq "1" ]; then # Si ya pas besoin de miniature
36 IMAGE_MINI=$IMAGE_BIG
38 elif [ "$NB_IMG" -ge "2" ] || [ "$NB_IMG" -le "3" ]; then # Si ya besoin de miniature
40 IMAGE_MINI=$(echo $VIEWPAGE | sed 's/\.html//')"t.jpg"
42 else
44 echo "La disposition de présentation du code à changé dans uppix.net."
45 exit 2
48 rm $TEMPFILE
50 # Resultat de l'upload : le code a placer dans un forum
51 BBCODE="[url=$VIEWPAGE][img]$IMAGE_MINI[/img][/url]"
52 ZCODE="<lien url=\"$VIEWPAGE\"><image>$IMAGE_MINI</image></lien>"
53 # ="<lien url="$VIEWPAGE"><image>$IMAGE_MINI</image></lien>"
55 # On affiche
56 echo "
57 Fichier : $FICHIER
58 Type : $MIMETYPE
60 Lien :$VIEWPAGE
61 Image :$IMAGE_BIG
62 Miniature :$IMAGE_MINI
63 BBCode :$BBCODE
64 ZCode :$ZCODE"