editor
621
modifications
m (→En ligne de commande : chg "dossier" par "répertoires") |
m (<syntaxhighlight lang="python" line="line">) |
||
Ligne 10 : | Ligne 10 : | ||
Le contenu de ce fichier est à enregistrer dans un fichier texte dans l'un des répertoires de votre $PATH. | Le contenu de ce fichier est à enregistrer dans un fichier texte dans l'un des répertoires de votre $PATH. | ||
<syntaxhighlight lang="python" line="line"> | |||
#!/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() | |||
</syntaxhighlight> | |||
== Exemples d'utilisation == | == Exemples d'utilisation == |