2015-02-28 1 views
0

J'utilise JXA (javascript for automation) sur mon Mac pour essayer d'automatiser les téléchargements de captures d'écran d'iTunes Connect. Pour cette raison, je veux automatiser l'acquisition de chaque image et le télécharger, mais pour iTunes Connect pour permettre cela (en utilisant iTMSTransporter), je dois éditer un fichier XML et ajouter la taille de chaque image en bits, ainsi que la somme de contrôle (type = "md5").JXA obtient la taille et la somme de contrôle du fichier?

Je sais que je pourrais le faire manuellement, mais je veux l'automatiser car cela me fera gagner beaucoup de temps à long terme, avec des tonnes de captures d'écran différentes pour chaque localisation.

J'ai utilisé JXA pour saisir les images et obtenir leurs dimensions, mais je n'arrive pas à obtenir la taille &. Peut-être que quelqu'un peut aider? Ou si vous n'utilisez pas JXA, il y a peut-être un autre script que JXA peut exécuter (comme un script shell, dont je n'ai aucune expérience en ce moment), ou peut-être un script que je pourrais lancer à l'avance exporter le XML dans un fichier manuellement. De là, je pourrais utiliser JXA pour analyser ce fichier.

Voici ce que j'ai à ce jour pour ce qu'il faut pour obtenir le fichier image:

desktopPath = finder.desktop.url(); 
desktopPath = desktopPath.substring(7, desktopPath.length); 
var imagePath = Application('System Events').folders.byName(desktopPath + '/myImage.png'); 

imageEvents = Application("Image Events"); 
imageEvents.launch(); 
imageEvents.name(); 

img = imageEvents.open(Path(imagePath)); 
// now I don't know what to do with the image as the documentation is quite difficult for me to understand 

Répondre

0

I figured it out. J'ai dû utiliser des scripts shell pour accéder à cette information. Idk s'il y a un autre moyen, mais de cette manière travaillé ...

// to get the size (newString is the path (as a string) to the file I am getting the size for 
var theSize = app.doShellScript("stat -f%z " + newString.replace(" ", "\\ ")); 

// to get the MD5 checksum (newString is again the path (as a string) to the file I am getting the checksum for 
var md5String = newString; 
md5String = md5String.replace(" ", "\\ "); 
var checksum = app.doShellScript("md5 " + md5String); 
checksum = checksum.replace(/\/$/, "").split(' ').pop(); 
// I popped because I had to format the returned string so it's just the MD5 and not the file path as well. Maybe there is an easier way in shell script, but I'm a newbie to shell scripting