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.

#1 Le 30/07/2015, à 16:22

RoKN

Besoin d'aide pour un script bash

Bonjour !

Je me suis lancé dans l'écriture d'un script bash qui a pour seul but existentiel de scanner les images d'un dossier, d'uploader chaque image sur twitter (en utilisant twurl) et ensuite déplacer chaque image uploadée dans un dossier "uploaded".
Seulement voilà, bien que j'ai quelques bases en bash, là je rencontre quelques difficultés notamment dans la gestion des variables et la récupération de retour de commande.
Je m'explique :
Pour uploader avec twurl, il faut d'abord entrer une commande "d'annonciation" qui retourne un ID, ID qui servira à l'upload final (je me suis aidé de ce post) :

$ twurl -H upload.twitter.com "/1.1/media/upload.json" -f ~/Desktop/B05iXOYCUAAGns4.jpg_large.jpg -F media -X POST

ce qui retourne :

{
  "image": {
    "w": 1024,
    "h": 576,
    "image_type": "image/jpeg"
  },
  "media_id": 588185299844370432,
  "media_id_string": "588185299844370432",
  "size": 105489
}

Il faut ensuite utiliser "media_id_string" pour finaliser l'upload :

twurl "/1.1/statuses/update.json" -d "media_ids=588185299844370432&status=Sample Tweet with media_ids and twurl" 

Le fonctionnement du script :
- Toutes les X minutes (ou secondes), scanner le dossier et comptabiliser le nombre d'images présentes,
- Créer un tableau de taille égal au nombre d'image présente et envoyer dans chaque case le nom d'une image (qui sera nommée genre "157845.jpg", "22684.jpg", ...)
- Initialiser une variable "IMAGE" qui sera une des images prise au hasard et qui sera utilisée pour être envoyée,
- entrer la première commande de Twurl,
- récupérer l'ID de l'image,
- finaliser l'envoi avec la deuxième et dernière commande de twurl.

Voilà. Pour le moment je sèche totalement sur l'inclusion d'une variable dans une commande composée, mais j'imagine que ça se passe comme cela (?) :

$ IMAGE=/home/user/Images/machin.jpg
$ twurl -H upload.twitter.com "/1.1/media/upload.json" -f $IMAGE -F media -X POST

Pour le reste, j'ai besoin d'aide...
Merci beaucoup par avance ! big_smile

Dernière modification par RoKN (Le 30/07/2015, à 17:10)


On dit "chiffrer" : https://chiffrer.info/

Hors ligne

#2 Le 30/07/2015, à 16:49

erresse

Re : Besoin d'aide pour un script bash

Bonjour,
C'est quoi pour toi tes "[ b ]" et "[ / b ]" qui encadrent IMAGE ???
(Dans le forum ce sont les balises pour "gras", mais dans un script ?)
Sinon, cela excepté, oui, c'est bien ainsi qu'on passe une variable dans le script :

variable="machin bidule tartemprion"
echo variable contient "${variable}"

note: l'utilisation des guillemets encadrant la citation de la variable permet de prendre en compte d'éventuels espaces contenus...

Dernière modification par erresse (Le 30/07/2015, à 16:50)


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

#3 Le 30/07/2015, à 17:15

RoKN

Re : Besoin d'aide pour un script bash

erresse a écrit :

C'est quoi pour toi tes "[ b ]" et "[ / b ]" qui encadrent IMAGE ???

Oups, je les aient rajoutées dans le post pour faire ressortir, mais entre les balises  ça marche pas, c'est corrigé roll

Je suis en train de tester tout un tas de solutions pour ne serait-ce que retourner un int correspondant au nombre de fichiers présents.

Je suis tombé sur ça :

for file in $VARIABLE
do
    # actions a effectuer...
done

mais cette condition ne doit pas s'exécuter lorsqu'il n'y a pas de fichier .jpg dans le dossier.
J'essaye donc :

if [ $(test -e *.jpg) != 0 ]; then
        for file in $VARIABLE
        do
                mv $file ./fichier
        done
else
        echo "nan rien"
fi

Mais ça ne marche pas :

ls: impossible d'accéder à *.jpg: Aucun fichier ou dossier de ce type

./test.sh: ligne 8 : [: != : opérateur unaire attendu
nan rien

On dit "chiffrer" : https://chiffrer.info/

Hors ligne

#4 Le 30/07/2015, à 17:34

erresse

Re : Besoin d'aide pour un script bash

Je ne saurais trop t'inviter à te documenter sur l'écriture des script shell, il te manque trop de bases pour t'en sortir...
Regarde ici pour voir les commandes, la gestion de tableau, etc...


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

#5 Le 30/07/2015, à 20:15

RoKN

Re : Besoin d'aide pour un script bash

Ouais c'est vrai qu'il me manque des bases et j'ai vachement de mal avec la syntaxe bash, va savoir pourquoi... sad
J'arrive a me débrouiller en C et un peu en Python, mais alors bash...


On dit "chiffrer" : https://chiffrer.info/

Hors ligne