Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#326 Le 07/03/2017, à 16:01

enebre

Re : [script] Pixup : Poster une image rapidement sur un forum

oui je l'avais directement avec casimage, mais ce n'est plus le cas

Hors ligne

#327 Le 07/03/2017, à 16:10

erresse

Re : [script] Pixup : Poster une image rapidement sur un forum

enebre a écrit :

oui je l'avais directement avec casimage, mais ce n'est plus le cas

Tu veux peut-être dire dans la version précédente de PixUp, la v3 ?
(Je crois qu'elle est encore disponible concurremment à la v4, non ?)
Mais on l'a entièrement refondue pour simplifier l'utilisation et uniformiser les fonctionnalités, si bien que des fonctions ont été supprimées pour certains services, parce-que d'autres ne les proposaient pas.
Cela dit, si tu veux pour ton usage personnel modifier le script et l'adapter à ton besoin propre, le spécialiser sur un service unique par exemple, il n'y a pas de problème, tu es libre...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#328 Le 07/03/2017, à 16:15

enebre

Re : [script] Pixup : Poster une image rapidement sur un forum

J'ai trouvé ou placer la ligne, à partir de 495, voir ligne 501 grace à Anonyme68 voir ici

"hostingpics")
			# argument de recherche des url de la miniature et de l'image pour insérer dans un forum
			pattern_url="value=\"\[url\([^>]*\)\""
			# argument de recherche de l'adresse de la miniature pour affichage
			pattern_adr="value=.*a href="
			# extraction des données du tampon
			urls="$(grep "${pattern_url}" "${tampon}" | sed 's/www/img4/;s/viewer\.php?id=/pics\//' | sed -e "s#\(.*\)value=['\"]\([^>]*\)['\"]\(.*\)#\2#g")"
			adrs="$(grep "${pattern_adr}" "${tampon}" | sed -e "s#\(.*\)img src=['\"]\([^>]*\)['\"] alt\(.*\)#\2#g")"
		    [ -z "${urls}" ] && F_serviceHS	# Service indisponible ?
			# dégroupage des retours en 3 liens correspondants
			echo "${urls}" > "/tmp/liens"
			echo "${adrs}" >> "/tmp/liens"
			readarray -t liens < "/tmp/liens"
			rm -f "/tmp/liens"

Dernière modification par enebre (Le 07/03/2017, à 16:19)

Hors ligne

#329 Le 07/03/2017, à 16:26

enebre

Re : [script] Pixup : Poster une image rapidement sur un forum

oui c'était avec l'ancienne version, voulez-vous que j'enlève un peu de mes posts pour laisser le fil propre ?
Merci pour votre script

Hors ligne

#330 Le 07/03/2017, à 18:59

erresse

Re : [script] Pixup : Poster une image rapidement sur un forum

Non, là tu tapes dans les instructions pour envoyer l'image au serveur, il te faut intervenir dans celles qui traitent le retour du serveur.
C'est plutôt à partir de 530, la ligne doit être en 536 ou 537.
Mais j'insiste : pour hostingpics, ta modification n'est pas sûre, la valeur "img4" n'est pas immuable !


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#331 Le 07/03/2017, à 19:06

enebre

Re : [script] Pixup : Poster une image rapidement sur un forum

je n'ai pu scinder qu'une partie la suite ici

Hors ligne

#332 Le 11/03/2017, à 09:09

kholo

Re : [script] Pixup : Poster une image rapidement sur un forum

salut,
petite coquille sur le site
https://framagit.org/PixUP/pixup

wget -N -t 5 -T 10 https://framagit.org/PixUP/pixup/raw/master/pixup_4.0 && chmod +x pixup

devrait être :

wget -N -t 5 -T 10 https://framagit.org/PixUP/pixup/raw/master/pixup_4.0 && chmod +x pixup_4.0

... ou en créant un lien vers une version courante : wink

wget -N -t 5 -T 10 https://framagit.org/PixUP/pixup/raw/master/pixup_current && chmod +x pixup_*

Hors ligne

#333 Le 11/03/2017, à 14:21

cracolinux

Re : [script] Pixup : Poster une image rapidement sur un forum

Merci smile


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#334 Le 11/03/2017, à 18:56

erresse

Re : [script] Pixup : Poster une image rapidement sur un forum

C'est vrai qu'on n'avait pas pensé à ça en créant deux versions identifiées par leur numéro, mais du coup, les appels qu'on voit dans la partie "Utilisation" en dessous, ne vont pas fonctionner si le nom du script est pixup_4.0 au lieu de pixup tout court... roll
Peut-être que la bonne astuce serait de suggérer de rebaptiser le script "pixup" une fois téléchargé, non ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#335 Le 13/03/2017, à 00:26

cracolinux

Re : [script] Pixup : Poster une image rapidement sur un forum

Encore merci! je viens d'ajouter un simple mv sur la ligne pour corriger ça


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#336 Le 05/09/2017, à 20:35

Nuliel

Re : [script] Pixup : Poster une image rapidement sur un forum

Bonjour,

J'ai une tite question: est ce que pixup supprime les métadonnées des photos (en particulier la position gps, je viens de remarquer que certaines photos postées sur le forum contiennent des données gps)? J'ai pas trop testé de peur de mettre mes coordonnées gps sur un site d'image.
Si ce n'est pas le cas, je pense que la commande suivante permet de supprimer ces métadonnées mais ça rajoute une dépendance:

exiftool -all= image.jpg

J'avoue que je ne comprends pas trop comment ce script est fait, donc je sais pas où il faudrait mettre cette commande.

En tout cas, chapeau pour ce script!

Hors ligne

#337 Le 06/09/2017, à 14:51

erresse

Re : [script] Pixup : Poster une image rapidement sur un forum

Salut,
Merci de ton retour mais, non, Pixup ne supprime ni n'ajoute rien à l'image que tu télécharges sur le serveur.
Si cette image contient des métadonnées, elles sont incorporées au fichier et seront donc également visibles pour quiconque téléchargera l'image depuis le serveur vers sa machine.
En principe, lorsque des images sont destinées à la publication sur le net, on en supprime les métadonnées avant de l'envoyer en ligne, c'est de la responsabilité de l'utilisateur de donner ou pas accès à certaines informations contenues dans ses images.
[HS]
Pour la petite histoire, j'ai parfois à récupérer des photos que mes correspondants mettent en ligne dans Messenger de Facebook.
Or, lorsque les images sont "uploadées", le serveur supprime d'autorité les métadonnées associées aux images, par mesure de sécurité ou de confidentialité je suppose.
Mais après, va donc trouver quand la photo a été prise ou quelle est son orientation, les conditions de prise vue...
Tout ça est détruit, et ce n'est pas de la tarte de reconstituer quelques-unes de ces données pour classer les photos, par exemple !
[/HS]


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#338 Le 16/05/2018, à 21:03

bishop

Re : [script] Pixup : Poster une image rapidement sur un forum

Bonsoir !
Pixup est-il mort ? yikes
Il n'y a quasiment plus rien qui fonctionne avec Pixup, voir Cata chez les hébergeurs d'images.
C'est bête car c'était un script qui rendait bien service et facilitait le téléversement d'images.

Merci à cracolinux et à tous ceux qui ont participé à la conception et aux mises à jour de Pixup... roll

Dernière modification par bishop (Le 16/05/2018, à 21:08)


La plus grande surprise que puisse faire un con c'est de faire une pause.

Hors ligne

#339 Le 16/05/2018, à 23:13

cracolinux

Re : [script] Pixup : Poster une image rapidement sur un forum

Salut, en effet, plus rien ne fonctionne ou quasiment car des services disparaissent...c'est la roue qui tourne!
Quelqu'un aurait le temps de faire un peu de maintenance du code ?


Pixup : postez vos images vite et bien - Wificheck : Aidez nous à vous aider

« Ne devenez jamais pessimiste. Un pessimiste a plus souvent raison qu'un optimiste, mais l'optimiste s'amuse plus — et aucun des deux ne peut arrêter la marche du monde. » R.Heinlein

Hors ligne

#340 Le 17/05/2018, à 10:16

erresse

Re : [script] Pixup : Poster une image rapidement sur un forum

Bonjour,
Ne noircissons pas le tableau plus que nécessaire, il y a des défections en effet, mais tout n'est pas encore hors d'usage... wink
J'ai fait un tour d'horizon rapide de l'état des lieux :
- "casimages" fonctionne toujours et à ma connaissance, de façon satisfaisante (c'est celui que j'utilise par défaut).
- "debianfr" semble aussi fonctionner correctement.
- "framapic" fonctionne encore mais : 1) il n'offre plus qu'une durée limitée de conservation, ce qui ne convient pas pour les messages du forum qui sont censés y demeurer ad vitam æternam et 2) il ne propose pas de miniature, qui est dorénavant la formule souhaitée pour le forum.
- "hostingpics" ne fonctionne plus, le service est supprimé.
- "lutim" ne fonctionne plus, le service est supprimé.
- "toilelibre" fonctionne toujours, puisque c'est ce service qui est suggéré sur le forum lorsqu'un utilisateur demande comment publier une image (sauf que ce matin il doit être temporairement indisponible roll ).
Nous disposons donc encore de trois services opérationnels et correspondant aux exigences du forum (les miniatures), on pourrait en effet nettoyer PixUp des trois services obsolètes ou non conformes.
Petit souci, je n'ai pas pour ma part bricolé sur le git depuis un bon bout de temps, et je ne sais plus trop comment m'y remettre. tongue
Par ailleurs, si on veut étendre l'offre à d'autres services hébergeurs (personnellement je n'en connais pas me contentant de ceux déjà implantés dans PixUp), cela suppose un train d'essais pour analyser les retours sur le web lors du dépôt d'une image, et ce n'est pas une mince affaire (à condition encore que le service le permette) !


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#341 Le 17/05/2018, à 17:11

moko138

Re : [script] Pixup : Poster une image rapidement sur un forum

Attention !
Si hostingpics ne permet plus le téléversement, il permet toujours la consultation des images antérieurement téléversées.
Donc le script doit garder cette fonction pour ce site.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#342 Le 12/10/2018, à 09:56

Jarodd

Re : [script] Pixup : Poster une image rapidement sur un forum


Ubuntu 22.04.3 LTS (64 bits)

Hors ligne

#343 Le 12/10/2018, à 10:02

xubu1957

Re : [script] Pixup : Poster une image rapidement sur un forum

Bonjour,   

Cette info, relevée dans une image :           

pix.debian-fr.xyz sera DEFINITIVEMENT fermé d'ici peu
Pensez à récupérer vos images MAINTENANT

> forum.ubuntu-fr.org/viewtopic.php?pid=21985449#p21985449


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

Hors ligne

#344 Le 13/10/2018, à 20:05

grandtoubab

Re : [script] Pixup : Poster une image rapidement sur un forum

j'utilise parfois https://www.noelshack.com/


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#345 Le 09/12/2018, à 18:32

lynn

Re : [script] Pixup : Poster une image rapidement sur un forum

Bonjour,

Le service toile-libre ne fonctionnait plus chez moi; J'ai regardé dans la script et à la fin de la ligne 80, j'ai changé

"http://pix.toile-libre.org")

par

"https://pix.toile-libre.org")

et depuis, ce service refonctionne. smile


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#346 Le 28/07/2021, à 20:07

lynn

Re : [script] Pixup : Poster une image rapidement sur un forum

Bonjour,

J'ai fais un peu (beaucoup?) de ménage dans le script de l'ami cracolinux en enlevant les services qui ne fonctionnaient plus (en fait tous... lol) et y ai ajouté le site d'hébergement d'images cyber-nux dont on parle ici.
En espérant que ce site tienne dans le temps et qu'il y ait d'autres sites à ajouter dans ce petit script bien pratique.

N.B : Avant utilisation, il faut penser à supprimer le fichier de configuration en place.

rm ~/.config/Pixup/pixup.conf

Éditer le fichier /usr/bin/pixup avec les droits appropriés et remplacer tout son contenu par ce qui suit.

#!/bin/bash

#set -x	# décommenter pour activer le débogage

# PixUp : version 4.0

# Script d'upload d'image vers des services d'hébergement
#  lancez pixup --help pour plus d'info
#
# Services disponibles :
#
# - pix.cyber-nux.fr
#
# Auteurs:
#   Sébastien Charpentier   alias "cracolinux"  <cracolinux@mailoo.org>
#   Roger Sauret            alias "eresse"      <rogersauret@free.fr>
#
# Contributeur:
#   HUC Stéphane            alias "PengouinPdt" <devs@stephane-huc.net>
#
# Dépôt GitHub:
#   https://framagit.org/PixUP/pixup (en développement dans .../PixUP/redo)
#
# Copyleft - 2012 → 2016
# Date: 16/06/2016
#
# Dépendances : curl, zenity, xclip
#
# Merci de l'aide de byte_bucket reçue sur le canal #curl de freenode
# Merci à Ansuzpeorth ;)
# et à Hush !
#
# N'hésitez pas à proposer vos idées pour améliorer ce script...

# LICENCE:
#Configuration
# LICENCE PUBLIQUE RIEN À BRANLER
#   Version 1, Mars 2009
#   Copyright (C) 2009 Sam Hocevar
#   14 rue de Plaisance, 75014 Paris, France
#
#   La copie et la distribution de copies exactes de cette licence sont
#   autorisées, et toute modification est permise à condition de changer
#   le nom de la licence.
#
#   CONDITIONS DE COPIE, DISTRIBUTION ET MODIFICATION
#   DE LA LICENCE PUBLIQUE RIEN À BRANLER
#
#   0. Faites ce que vous voulez, j’en ai RIEN À BRANLER.

###
# constantes diverses
###
MAX_FILE_SIZE=15360000			# taille maximale du fichier (Toile Libre)
# codes couleurs et effets d'affichage
NORMAL="$(tput sgr0)"	# RESET
BLEU="$(tput setaf 6)"	# CYAN
ROUGE="$(tput setaf 1)"	# RED
VERT="$(tput setaf 2)"	# GREEN
# Quelques codes générés à titre d'exemple :
# #BLEU="\e[1;34m" #NORMAL="\e[0;39m" #ROUGE="\e[1;31m" #VERT="\e[0;32m"
# pour le changement de couleur dans les "sed"
SED_NORMAL="\\\\e[0;39m"
SED_VERT="\\\\e[0;32m"

# paramètres de la configuration
DIR_CFG="$HOME/.config/Pixup"	# répertoire de configuration
CONFIG="${DIR_CFG}/pixup.conf"	# fichier de configuration

###
# Variables
###
version="v 4.0"
title="Pix^ :: PixUP - Vos images sur les forums"
log_name="${DIR_CFG}/Pixup.historique.html"	# fichier journal/historique
nom_serv=("Cybernux")
services=("cybernux")
url_serv=("https://pix.cyber-nux.fr")

#############################################################################
# Fonctions !
#############################################################################

# Cette fonction arrête le script
stop() {

	echo -e "Le script va s'arrêter !"
	exit 1
    }

# Cette fonction vérifie les dépendances nécessaires
F_check_dependances() {

	crd=false
	for name in curl xclip zenity; do
		if [[ ! -x $(which ${name}) ]]; then
			printf "[ \\33[1;31m%s\\33[0;39m ] %s \n" "KO" "Manque: ${name}; installez-la s.v.p !"
			crd=true
		fi
	done
	if ${crd}; then stop; fi
	}

# Cette fonction charge la configuration
F_loadconf() {

	search=""
	[[ -f "${CONFIG}" ]] &&	search="$(grep "PixUp>=v4" "${CONFIG}")"
	if [[ -z "${search}" ]]; then
		# (re)création du fichier de config
	    if [[ ! -d "${DIR_CFG}" ]]; then mkdir "${DIR_CFG}"; fi	# création du répertoire
		cfg="##### PixUp>=v4 ##### Valeurs modifiables ############################
# mode graphique complet : true pour activer ou false pour la désactiver
## si graphedit est true, les choix de fonction et de service sont gérés
## si graphedit est false, le fichier sera téléversé dans service_defaut
graphedit=true
# journalisation : true pour activer ou false pour la désactiver
journal=true
# localisation du journal dans votre répertoire personnel
logname=\"${log_name}\"
# sens de lecture du journal historique : 'normal' ou 'inverse'
chronologie=\"inverse\"
# service par défaut :
## \"cybernux\"
service_defaut=\"cybernux\"
# taille de la vignette dans le journal :
mini_width=100
# Sortie console en couleur : true pour activer ou false pour la désactiver
output_color=true"
		echo -e "${cfg}" > "${CONFIG}"
	fi
	# initialisation des valeurs
	source "${CONFIG}"
	}

# Cette fonction vérifie le fichier historique
F_checklog () {

	# si le fichier de log n'existe pas, on le crée
	if [ ! -f "${logname}" ] ; then
		F_create_log
	fi
	# si le log est v3.0, on change le nom de fichier
	if [[ "${logname}" == "${DIR_CFG}/Pixup.log.html" ]]; then
		mv "${DIR_CFG}/Pixup.log.html" "${DIR_CFG}/Pixup.historique.html"
	fi
	# si un log v2.4 existe, on le deplace vers .config
	if [[ -f "${HOME}/pixupLog.html" ]]; then
		mv "${HOME}/pixupLog.html" "${DIR_CFG}"
		# et on crée un chaînage dans l'historique
		ancienlog="<article><h3>Ancien fichier log <em>(v2.4)</em></h3><p><strong><a href=\"${DIR_CFG}/pixupLog.html\">${DIR_CFG}/pixupLog.html</a> </strong></p></article>"
		sed -i -e "s#</body>#${ancienlog}\n</body>#g" "${logname}"
	fi
	}

# Crée le fichier historique
F_create_log () {

	echo '<!doctype html>
<html lang="fr">
<head>
<title>${title}</title>
<meta charset="utf-8">
<style type="text/css"> a img { border:0; } </style>
</head>
<body>
</body>
</html>' > "${logname}"
    }

# Cette fonction permet d'afficher l'aide
F_aide () {

	mssg="${ROUGE}Syntaxe${NORMAL} : pixup [option] fichier

${ROUGE}Options${NORMAL} :
    -s ou --service
        p → pix.cyber-nux.fr
    -j ou --journal   afficher le journal (${logname})
    -c ou --config    afficher le fichier de config
    -h ou --help      afficher l'aide
Si l'option -s n'est pas fournie, le script utilisera le service par défaut :
    - ${service_defaut} -
    Celui-ci est modifiable dans le fichier de config.

${ROUGE}Fichier${NORMAL} :
    Le fichier à uploader

${ROUGE}Exemples${NORMAL} :
    pixup /home/john/rambo/tutu.png
        → upload du fichier /home/john/rambo/tutu.png vers le service par défaut
    pixup -s c toto.jpg
        → upload du fichier ./toto.jpg vers casimages.com
"
	echo -e "${mssg}"
	}

# Cette fonction permet de choisir la fonction
F_fonction() {

	fonction=$(zenity --list --radiolist --title "PixUp ${version}" --text "Fonctions disponibles" \
		--column="Bouton" --column="Libellé" --column="Valeur" --hide-column="3" --print-column="3" \
		--hide-header \
		true "Téléverser une image" "UPLOAD" \
		false "Visualiser l'historique" "LSTLOG" \
		false "Editer la configuration" "EDCONF")
	[[ "$?" != 0 ]] && stop	# si non OK, on sort !
	case "${fonction}" in
		UPLOAD)
			;;    # continuer en séquence
		LSTLOG)
			x-www-browser "${logname}" &
			exit 0 ;;
		EDCONF)
			xdg-open "${CONFIG}" &
			exit 0 ;;
	esac
	}

# Cette fonction acquiert les données de téléversement
F_launcher () {

    if ${versionconsole} ; then
		# en mode console ou "Ouvrir avec..."
		if [[ -f "${PARAMS[0]}" ]]; then
			fichier="${PARAMS[0]}"
			service_choisi="${service_defaut}"
			[[ ${xpixup} = true ]] && versionconsole=false
		else
			case "${PARAMS[0]}" in
				-h|--help)
					F_aide ; exit 0
				;;
				-s|--service)
					crd=false
					for name in "${services[@]}"; do
						if [[ "${name:0:1}" = "${PARAMS[1]:0:1}" ]]; then
							service_choisi="${name}"
							crd=true; break
						fi
					done
					if ${crd}; then
						if [[ -f "${PARAMS[2]}" ]]; then
							fichier="${PARAMS[2]}"
						else
							echo -e "${ROUGE}Fichier non valide${NORMAL} : ${PARAMS[2]}"
							F_aide; exit 3
						fi
					else
						echo -e "${ROUGE}Service non valide${NORMAL} : ${PARAMS[1]}"
						F_aide; exit 3
					fi
				;;
				-j|--journal|--historique)
					x-www-browser "${logname}" &
					exit 0
				;;
				-c|--config)
					xdg-open "${CONFIG}" &
					exit 0
				;;
				*)
					echo -e "${ROUGE}Argument non valide${NORMAL} : ${PARAMS[0]}"
					F_aide; exit 3
				;;
			esac
		fi
	else
		# en mode graphique
		if ${graphedit} ; then
			valeurs=""	# construction de la liste des services
			for idx in "${!services[@]}"; do
				if [[ "${service_defaut}" = "${services[idx]}" ]]; then
					valeurs="${valeurs} true"
				else
					valeurs="${valeurs} false"
				fi
				valeurs="${valeurs} ${nom_serv[idx]} ${services[idx]}"
			done
			service_choisi=$(zenity --list --radiolist --title="PixUp ${version}" --text="Services d'upload" \
            --width=200 --height=240 --column="Bouton" --column="Libellé" --column="Valeur" \
            --hide-column="3" --print-column="3" --hide-header \
			${valeurs})
			[[ "$?" != 0 ]] && stop	# si non OK, on sort !
		else
			service_choisi="${service_defaut}"
		fi
		# acquisition du fichier à téléverser
		F_selection_fichier
	fi
	}

# Cette fonction permet de sélectionner le fichier en mode graphique
F_selection_fichier() {

	fichier=$(zenity --file-selection --title="PixUp ${version}   -   Fichier à uploader" \
		--filename="${chemin:-$HOME}")
	[[ "$?" != 0 ]] && stop	# si non OK, on sort !
	}

# Cette fonction constitue le corps du script (amen !)
PixUp () {

	# Création d'un fichier de travail pour la réception des infos
	echo > "/tmp/tampon"
	# Création du fichier de communication "tube"
	echo -e "result=\"OK\"" > "/tmp/tube"
(
	tampon="/tmp/tampon"
	# Vérification de la validité du fichier et obtention du type de fichier
	F_checkfichier
	F_get_extension
	# Récupération de l'URL du service choisi
	urlserv_choisi=""
	for idx in "${!services[@]}"; do
		if [[ "${service_choisi}" = "${services[idx]}" ]]; then
			urlserv_choisi="${url_serv[idx]}"
			break
		fi
	done
	# Envoi du fichier sur le service choisi
	F_service_${service_choisi}
	# Traitement des retours
	F_build_results
	# Effacement du fichier de travail "${tampon}"
	rm -f "${tampon}"
	# Sauvegarde des variables dans "tube" (à cause du zenity progress)
	echo -e "idx=${idx}" >> "/tmp/tube"
	echo -e "absolufichier=\"${absolufichier}\"" >> "/tmp/tube"
	echo -e "fichier=\"${fichier}\"" >> "/tmp/tube"
	echo -e "ins_mini=\"${ins_mini}\"" >> "/tmp/tube"
	echo -e "ins_imag=\"${ins_imag}\"" >> "/tmp/tube"
	echo -e "aff_mini=\"${aff_mini}\"" >> "/tmp/tube"
) | F_patienter

	# Récupération des variables sauvegardées (par source "tube")
	. "/tmp/tube"

	# Afficher / historiser les résultats, si OK
	if [[ "${result}" = "OK" ]]; then F_show_results
	else cat "/tmp/mesg"; rm -f "/tmp/mesg"; fi
	# Effacement du fichier de communication "tube"
	rm -f "/tmp/tube"
	[[ ${xpixup} == true ]] && exit 0	# si mode "Ouvrir avec...", on sort !
	# Voir si un autre fichier est souhaité
	F_restart_service
	}

# Cette fonction crée, si nécessaire, le chemin de fichier absolu
F_checkfichier () {

	mssg="Le fichier ${absolufichier} n'existe pas !"
	if ${versionconsole} ; then
		if [ "${fichier:0:1}" = "/" ] ; then
			absolufichier="${fichier}"
			fichier="${fichier##*/}" # suppression de la plus longue chaine à gauche du caractère /
		elif [ "${fichier:0:2}" = ".." ] ; then
			cd "${PWD}/${fichier%/*}" # suppression de la plus courte chaine à droite du caractère /
			fichier="${fichier##*/}"
			absolufichier="${PWD}/${fichier}"
		else
			absolufichier="${PWD}/${fichier}"
		fi
	else
		# force le chemin absolu si le fichier seul est fourni (Ouvrir avec...)
		[[ ${xpixup} = true && "${fichier:0:1}" != "/" ]] && fichier="${PWD}/${fichier}"
		absolufichier="${fichier}"
		fichier="${fichier##*/}"
	fi
	# le fichier choisi n'existe pas
	[ ! -f "${absolufichier}" ] && F_fichierHS "${mssg}"
	# on conserve le chemin dans la conf
	chemin="${absolufichier%/*}/" # le dernier / est requis pour l'option filename de zenity
	if [[ -n $(grep 'chemin=' "${CONFIG}") ]]; then
		sed -i '/^chemin/d' "${CONFIG}" # supprime la ligne si elle existe déjà
	fi
	echo -e "chemin=\"${chemin}\"" >> "${CONFIG}"
	}

# Cette fonction extrait le type MIME du fichier
F_get_extension () {

	mssg="Le fichier ${absolufichier} n'est pas une image"
	typemime=$(file -bi "${absolufichier}")
	mime=${typemime%;*} # suppression de la plus courte chaine à droite de ;
	if [ "${mime%/*}" != "image" ]; then # suppression de la plus courte chaine à droite de /
		F_fichierHS "${mssg}"
	fi
	extension=${mime#*/} # suppression de la plus courte chaine à gauche de /
    }

# Cette fonction affiche une erreur si le fichier est incorrect
F_fichierHS () {

	if ${versionconsole} ; then
		echo "$1" > "/tmp/mesg"
	else
		zenity --warning --title="PixUp ${version}" --text="$1"
	fi
	echo -e "result=\"KO\"" > "/tmp/tube"
	exit 2
}

# Cette fonction envoie vers le service cybernux
F_service_cybernux () {

	curl -v -L -F "img=@${absolufichier};type=image/${extension};filename=${fichier}" -F "MAX_FILE_SIZE=${MAX_FILE_SIZE}" "${urlserv_choisi}/?action=upload" 2>/dev/null > "${tampon}"
	}

# Cette fonction affiche une erreur si le service n'est pas opérationnel
F_serviceHS () {

	text="Le service ${nom_serv[idx]} ne semble pas opérationnel !\nVotre image n'a pas pu être téléversée."
	if ! ${versionconsole} ; then
		zenity --warning --title "PixUp ${version}" --text "${text}"
	else
		echo -e "${ROUGE}ALERTE : PixUp ${version} \n\n${NORMAL}${text}" > "/tmp/mesg"
	fi
	echo -e "result=\"KO\"" > "/tmp/tube"
	exit 2
	}

# Cette fonction traite les retours des services
F_build_results() {

	# traitement du tampon

	declare -a liens

	case "${service_choisi}" in
		"cybernux")
			# argument de recherche des url de la miniature et de l'image pour insérer dans un forum
			pattern_url="<textarea>\[url.*</textarea>"
			# argument de recherche de l'adresse de la miniature pour affichage
			pattern_adr="<textarea>http.*\upload.*</textarea>"
			# extraction des données du tampon
			urls="$(grep "${pattern_url}" "${tampon}" | sed -e "s#\(.*\)<textarea>\([^>]*\)</textarea>\(.*\)#\2#g")"
			adrs="$(grep "${pattern_adr}" "${tampon}" | sed -e "s#\(.*\)<textarea>\([^>]*\)</textarea>\(.*\)#\2#g")"
		    [ -z "${urls}" ] && F_serviceHS	# Service indisponible ?
			# dégroupage des retours en 3 liens correspondants
			echo "${urls}" > "/tmp/liens"
			echo "${adrs}" >> "/tmp/liens"
			readarray -t liens < "/tmp/liens"
			rm -f "/tmp/liens"
# Note: A l'issue de ces opérations, le tableau liens contiendra dans l'ordre :
#		liens[0] : code url pour insérer la miniature dans un forum
#		liens[1] : code url pour insérer l'image en grand dans un forum
#		liens[2] : adresse de l'image en grand pour l'afficher
			# champs pour l'affichage des résultats (*** préparation résultat ***)
			ins_mini="${liens[0]}"
			ins_imag="${liens[1]}"
			aff_mini="${liens[2]}"
		;;

		*) ;;
	esac
	}

# Cette fonction montre et historise les résultats
F_show_results() {

	html="" # buffer de construction de l'historique
	mssg_mini="Code pour insérer la miniature dans un forum : "
	mssg_imag="Code pour insérer l'image dans un forum : "
	mssg_title="PixUp ${version} : ${nom_serv[idx]} - Fichier téléversé"
	time="<time datetime=\"$(date +%Y-%m-%d\ %H:%M:%S)\">$(date +%d-%m-%Y\ à\ %H:%M:%S)</time>"

	# préparation des choix possibles selon le service
	case "${service_choisi}" in
		"framapic" | "lutim")
			msglist=(true "Insérer l'image dans un forum" "I")
		;;
		*)	msglist=(true "Insérer la miniature dans un forum" "M" false "Insérer l'image dans un forum" "I")
		;;
	esac

	# affichage des résultats
	if ! ${versionconsole} ; then
		choix=$(zenity --list --radiolist --title "PixUp ${version}" \
			--text "${nom_serv[idx]} - Fichier téléversé\nPour copier le lien dans le presse-papier" \
			--ok-label "Copier" --column="Choix" --column="Libellé" --column="Clé" \
			--hide-column="3" --print-column="3" --hide-header "${msglist[@]}")
		[[ "$?" != 0 ]] && stop	# si non OK, on sort !

# Note: la commande pour copier "dans le clipboard" =  echo -n "${var}" | xclip -selection c
# l'utilisation de xclip sans "-selection c" copie dans le presse-papier "primaire" qui
# peut être récupéré via un "clic milieu" de la souris (et est différent du clipboard)

		case "${choix}" in
			"M")	echo -n "${ins_mini}" | xclip
					echo -n "${ins_mini}" | xclip -selection c	;;
			"I")	echo -n "${ins_imag}" | xclip
					echo -n "${ins_imag}" | xclip -selection c	;;
		esac
	else
		clear
		echo -e "${mssg_title}"
		if [[ "${output_color}" == "true" ]]; then
			printf '\n%s\n%s%s%s' "${mssg_mini}" "${VERT}" "${ins_mini}" "${NORMAL}"
			printf '\n%s\n%s%s%s\n' "${mssg_imag}" "${VERT}" "${ins_imag}" "${NORMAL}"
		else
			echo -e "\n${mssg_mini}\n${ins_mini}"
			echo -e "\n${mssg_imag}\n${ins_imag}"
		fi
	fi

	# si journalisation active, ajout du téléversement à l'historique
	if ${journal}; then
		if [[ "${chronologie}" == "inverse" ]]; then html="<body>\n"; fi
		html="${html}<article>"
		html="${html}<header><h2><strong>${absolufichier}</strong> envoyé sur <em>${nom_serv[idx]}</em></h2>${time}</header>"
		html="${html}<dl><dt><a href=\"${aff_mini}\" title=\"${fichier}\"><img src=\"${aff_mini}\" alt=\"${fichier}\" width=\"${mini_width}\"></a></dt>"
		html="${html}<dd>${mssg_mini}</dd><dd><strong>${ins_mini}</strong></dd>"
		html="${html}<dd>${mssg_imag}</dd><dd><strong>${ins_imag}</strong></dd>"
		html="${html}</dl><footer><hr></footer>"
		html="${html}</article>"
		if [[ "${chronologie}" == "normal" ]]; then html="${html}\n</body>"; fi
		search="$(grep "title" "${logname}")"
		readarray -t array < "${logname}"
		for index in "${!array[@]}"; do
			array[index]="$(sed -e 's#^ \+##g' <<< "${array[index]}")"
			if [[ "${array[index]}" =~ "<title>" ]]; then
				array[index]="<title>${title}</title>\n"
			elif [[ "${array[index]}" == "<body>" && "${chronologie}" == "inverse" ]]; then
				array[index]="${html}"
			elif [[ "${array[index]}" == "</body>" && "${chronologie}" == "normal" ]]; then
				array[index]="${html}"
			else
				array[index]="${array[index]}\n"
			fi
		done
		# réécriture du fichier historique
		echo -e "${array[*]}" > "${logname}"
	fi
	# suppression des lignes vides dans le fichier
	sed -i '/^$/d' "${logname}"	
	}

# Cette fonction permet de téléverser un autre fichier
F_restart_service() {

	text="Voulez-vous téléverser une autre image ?"
	if ! ${versionconsole} ; then
		zenity --question --title="PixUp ${version}" --text="${text}"
		[[ "$?" != 0 ]] && exit 0	# si non, on sort !
		F_selection_fichier
		PixUp
	else
		if F_question "${text}"; then
			text="Entrer le nom du fichier, s.v.p :"
			read -r -p "${text} " fichier
			PixUp
		fi
		exit 0
	fi
	}

# Cette fonction pose une question et retourne true ou false
F_question () {

	read -r -p "${1} [o|n] " reponse
	case "$reponse" in
		y|Y|o|O|1)	true ;;
		*)			false ;;
	esac
	}

# Cette fonction affiche la boite zenity "Patienter"
F_patienter() {

	zenity --progress --title="PixUp ${version}" --text="Traitement en cours, patientez s.v.p..." --pulsate --auto-close --no-cancel
	}


###############################################################################
# PROGRAMME PRINCIPAL - EXECUTION DU SCRIPT
###############################################################################

# vérification des dépendances
F_check_dependances

clear

# récupération des paramètres
NB_PARAMS=$#
PARAMS=("$@");

# test : lancement graphique ou console ?
versionconsole=false
[ -n "$1" ] && versionconsole=true

# test : lancement via un explorateur (Ouvrir avec...) ?
xpixup=false
[[ "${0##*/}" == "xpixup" ]] && xpixup=true

# chargement de la configuration
F_loadconf

# vérification de l'existence de l'historique
F_checklog

# si mode graphique complet, choix de la fonction
if [[ ${graphedit} = true && ${versionconsole} = false ]]; then
	F_fonction
fi
# acquisition des données de téléversement
F_launcher

# "Allez, cours... Forest ! Cours !"
PixUp

exit 0

«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#347 Le 28/07/2021, à 21:27

Jarodd

Re : [script] Pixup : Poster une image rapidement sur un forum

Merci à toi de l'avoir repris et mis à jour big_smile
Il faudrait rappeler la dépendance de xclip (inutile pour la màj).
Et peut-être, ajouter un message à la fin, indiquant que l'url est prête à être copiée.


Ubuntu 22.04.3 LTS (64 bits)

Hors ligne

#348 Le 28/07/2021, à 22:01

lynn

Re : [script] Pixup : Poster une image rapidement sur un forum

Jarodd a écrit :

Il faudrait rappeler la dépendance de xclip (inutile pour la màj).

Normalement, c'est pris en compte quand tu installes le .deb mais j'ai juste actualisé la partie script.

Jarodd a écrit :

Et peut-être, ajouter un message à la fin, indiquant que l'url est prête à être copiée.

Ça me semble pourtant explicite, non ?
1627505781.png

Dernière modification par lynn (Le 28/07/2021, à 22:02)


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#349 Le 29/07/2021, à 07:50

Jarodd

Re : [script] Pixup : Poster une image rapidement sur un forum

J'ai copié le script de ton message dans /usr/bin/pixup, je ne sais de quel .deb tu parles. En lançant le script la première fois, j'ai eu l'erreur de la dépendance manquante. C'est résolu après son installation.
Je parlais d'un message à la fin qui affiche l'url de l'image (pour voir l'url en question, sans les balises ajoutées), ça pourrait être une 3e option. Mais c'est juste une histoire de goût, c'est très bien comme c'est fait actuellement.


Ubuntu 22.04.3 LTS (64 bits)

Hors ligne

#350 Le 29/07/2021, à 08:03

lynn

Re : [script] Pixup : Poster une image rapidement sur un forum

Pour le .deb, il faut voir le post d'origine de cracolinux en #1.


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne