« Upload image sur le pix de lol » : différence entre les versions
Aucun résumé des modifications |
m (→Le code du script : change "dossier" par "répertoires") |
||
Ligne 8 : | Ligne 8 : | ||
== Le code du script == | == Le code du script == | ||
Le contenu de ce fichier est à enregistrer dans un fichier texte dans l'un des | Le contenu de ce fichier est à enregistrer dans un fichier texte dans l'un des répertoires de votre $PATH. | ||
#!/usr/bin/env python | #!/usr/bin/env python | ||
Ligne 120 : | Ligne 120 : | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
main() | main() | ||
== Exemples d'utilisation == | == Exemples d'utilisation == |
Version du 20 août 2014 à 05:13
Voici un script permettant d’uploader une ou plusieurs images sur http://pix.isalo.org/. Associé à un gestionnaire de fichier (rox pour ma part), cela fait gagner bien du temps! Le script retourne les adresses pouvant être utilisée pour afficher votre image. Je laisse à chacun le choix de récupérer ces adresses via la console, avec zenity ou autre. Pour ma part, c'est avec gxmessage :
Dépendance
Ce script requiert python 2.6 (normalement déjà installer sur Debian et le paquet python-poster.
Le code du script
Le contenu de ce fichier est à enregistrer dans un fichier texte dans l'un des répertoires de votre $PATH.
#!/usr/bin/env python # -*- coding:Utf-8 -*- # Fichier: pix.py # Cree le 08 juin 2011 18:52:52 # Derniere modification: 08 juin 2011 18:52:52 """ Auteur : thuban (thuban@singularity.fr) licence : GNU General Public Licence Description : Permet d'uploader une image sur pix.isalo.org Pratique en utilisation avec un gestionnaire de fichier """ try: import sys import os import urllib2 import re except ImportError as err: print ("Couldn't load module. {0}".format(err)) sys.exit(2) try: from poster.encode import multipart_encode from poster.streaminghttp import register_openers except ImportError as err: print ("Couldn't load module. {0}. Have you python-poster package installed?".format(err)) sys.exit(2) def help(): print('usage : '+os.path.basename(sys.argv[0])+' [all|page|url|minforum|forum|minhtml|html] image') print(' all (default) : affiche toutes les autres url') print(' page : url de la page de cette image sur le site') print(' url : url de l\'image') print(' minforum : BBCode pour afficher une miniature sur un forum PhpBB') print(' forum : BBCode pour afficher l\'image sur un forum PhpBB') print(' minhtml : code html pour afficher une miniature dans un site web') print(' html : code html pour afficher l\'image dans un site web') sys.exit(1) def verif(argument): image = argument if (os.path.isfile(image)): return image else: print("Commande ou fichier invalide") sys.exit(2) def affiche(adresses, opt): if opt == 'page': print(adresses[0]) elif opt == 'url': print(adresses[1]) elif opt == 'minforum': print(adresses[2]) elif opt == 'forum': print(adresses[3]) elif opt == 'minhtml': print(adresses[4]) elif opt == 'html': print(adresses[5]) else: print('Afficher l\'image : ' + adresses[0]) print('Accéder à l\'image : ' + adresses[1]) print('Insérer la miniature dans un forum : ' + adresses[2]) print('Insérer l\'image dans un forum : ' + adresses[3]) print('Insérer la miniature à votre site : ' + adresses[4]) print('Insérer l\'image à votre site : ' + adresses[5]) def upload(image, aff): register_openers() with open(image, 'rb') as img: d, h = multipart_encode({'MAX_FILE_SIZE' : 15360000, 'img' : img}) req = urllib2.Request('http://pix.isalo.org/?action=upload', d, h) f = urllib2.urlopen(req).read() adresses=re.findall(r'<textarea>(.*?)</textarea>', f) affiche(adresses, aff) return(0) def main(): options=['page', 'url', 'minforum', 'forum', 'minhtml', 'html'] aff='all' if len(sys.argv) == 1 or sys.argv[1] == "help" or sys.argv[1] == "-h" or sys.argv[1] == "--help": help() elif len(sys.argv) >= 3: aff=sys.argv[1] if aff in options: for i in range(2, len(sys.argv)): image = verif(sys.argv[i]) upload(image, aff) else: for i in range(1, len(sys.argv)): image = verif(sys.argv[i]) upload(image, aff) else: image = verif(sys.argv[1]) upload(image, aff) return 0 if __name__ == '__main__': main()
Exemples d'utilisation
En ligne de commande
Pour uploader votre script directement à partir de la ligne de commande, il vous suffit d'enregistrer le script dans le fichier pixup dans un des dossier de votre $PATH. Ensuite vous avez plusieurs utilisation possible :
- Pour avoir toutes les informations :
$ pixup fichier.png
- Pour ne récupérer que l'adresse de l'image :
$ pixup url fichier.png
- Vous pouvez obtenir l'aide du script en le lançant sans paramètre :
$ pixup usage : pixup [all|page|url|minforum|forum|minhtml|html] image all (default) : affiche toutes les autres url page : url de la page de cette image sur le site url : url de l'image minforum : BBCode pour afficher une miniature sur un forum PhpBB forum : BBCode pour afficher l'image sur un forum PhpBB minhtml : code html pour afficher une miniature dans un site web html : code html pour afficher l'image dans un site web