#326 Le 07/03/2017, à 17: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, à 17:10
- erresse
Re : [script] Pixup : Poster une image rapidement sur un forum
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 le problème solutionné, 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, à 17: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, à 17:19)
Hors ligne
#329 Le 07/03/2017, à 17: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, à 19: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 le problème solutionné, 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, à 20: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, à 10: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 :
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, à 15:21
- cracolinux
Re : [script] Pixup : Poster une image rapidement sur un forum
Merci
Hors ligne
#334 Le 11/03/2017, à 19: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...
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 le problème solutionné, 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, à 01: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
Hors ligne
#336 Le 05/09/2017, à 21: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, à 15: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 le problème solutionné, 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, à 22:03
- bishop
Re : [script] Pixup : Poster une image rapidement sur un forum
Bonsoir !
Pixup est-il mort ?
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...
Dernière modification par bishop (Le 16/05/2018, à 22:08)
La plus grande surprise que puisse faire un con c'est de faire une pause.
Hors ligne
#339 Le 17/05/2018, à 00: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 ?
Hors ligne
#340 Le 17/05/2018, à 11: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...
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 ).
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.
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 le problème solutionné, 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, à 18: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, à 10: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, à 11: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
Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Réso|u] 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
En ligne
#344 Le 13/10/2018, à 21: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, à 19: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.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#346 Le 28/07/2021, à 21: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... ) 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, à 22:27
- Jarodd
Re : [script] Pixup : Poster une image rapidement sur un forum
Merci à toi de l'avoir repris et mis à jour
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, à 23:01
- lynn
Re : [script] Pixup : Poster une image rapidement sur un forum
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.
Et peut-être, ajouter un message à la fin, indiquant que l'url est prête à être copiée.
Ça me semble pourtant explicite, non ?
Dernière modification par lynn (Le 28/07/2021, à 23:02)
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#349 Le 29/07/2021, à 08: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, à 09: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