Ok.
Et ça plait… Activity > High
Ok.
Et ça plait… Activity > High
Je propose une modification :
[code]#!/usr/bin/env python
“”"
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 install python-poster package ?”.format(err))
sys.exit(2)
def help():
print(‘usage : ‘+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 main():
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]
image = verif(sys.argv[2])
else :
image = verif(sys.argv[1])
# upload de l'image
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
if name == ‘main’:
main()[/code]
Quand poster n’est pas installé il le dis et pour ceux comme moi il permet d’afficher unisquement l’une des url, ce qui permet d’envoyer ça directement à xclip -i et de coller le tout immédiatement sur le forum. J’ai aussi ajouté un message d’aide et j’en ai profité pour corriger un p’tit bug quand on lui passait pas de paramètre.
Super!!! Tu l’as mis sur le wiki?
It’s done. J’ai un peu remis en page la page, mais l’image passe mal (et j’ai la flemme de plus regarder comment améliorer).
C’est très bien! Du coup j’ai rajouté une précision disant bien que avec le script bash (qui appelle le script python, je ne sais pas si c’est très clair), on peut sélectionner et uploader plusieurs images d’un coup.
Autant gérer de multiples images directement dans le script python, c’est plus performant et plus pratique pour les autres utilisations.
Du coup il va falloir utiliser autre chose que sys.argv[] pour récupérer les arguments. Il y a optparse qui fait ça, mais ça sera encore moins portable à python3…
Pourquoi ? Ça le fait aussi. Si tu veut je le ferrais dans la semaine quand j’aurais le temps.
Oui c’est vrai, faut que j’arrête avec les solutions toutes prêtes.
Tu fais comme tu le sens, en ce qui me concerne à partir de ce midi je n’ai plus vraiment de temps, je pars bosser dans le nord pendant 2 semaines. Donc si ça te fais plaisir vas-y, sinon je pense y arriver à mon retour .
Bon j’ai eu du temps, du coup c’est fait, peut-être pas aussi proprement que si ça avait été toi ceci dit. Je te laisse corriger si l’envie te prends.