Upload random file hourly with photos.app and applescript

I have baby photos in a folder and I want to upload them one at a time about every hour (4000 secs not 3600 secs) to a shared iCloud album that all my relatives see on their iPhones and iPads and macs. Here is my applescript saved as an application with the keep open box checked. I think it's not quite right. What's wrong?

on idle

set importFolder to "Amac:Users:AbuDavid:Downloads:uploadBABY"
set extensionsList to {"jpg", "png", "tiff"}

tell application "Finder" to set theFiles to some file of importFolder whose name extension is in extensionsList

if (count of theFiles) < 1 then
    display dialog "No images selected!" buttons "OK"
else
    set albumName to "BabyDouDou"
    set timeNow to time string of (current date)
    set today to date string of (current date)
    set albumName to albumName & " " & timeNow & " " & today
    set imageList to theFiles

    tell application "Photos"
        activate
        delay 2
        import imageList into albumName skip check duplicates yes
    end tell

    tell application "Finder" to move theFiles to trash
end if
return 4000


end idle

Upvotes: 0

Views: 287

Answers (2)

Made a small change to only delete the image that was uploaded and not all the images. Thank you so much.

on idle set importFolder to (path to downloads folder as text) & "uploadBABY" set extensionsList to {"jpg", "png", "tiff"}

tell application "Finder" to set theFiles to files of folder importFolder whose name extension is in extensionsList

if (count theFiles) < 1 then
    display dialog "No images selected!" buttons "OK"
else
    set theFile to some item of theFiles
    set albumName to "testscript"
    set imageList to {theFile as alias}

    tell application "Photos"
        activate
        delay 2
        if not (exists container albumName) then
            set theAlbum to make new album
            set name of theAlbum to albumName
        else
            set theAlbum to container albumName
        end if
        import imageList into theAlbum skip check duplicates yes
    end tell

    tell application "Finder" to move theFile to trash
end if
return 7
end idle

Upvotes: 1

vadian
vadian

Reputation: 285079

There are some issues:

  • The Finder needs the keyword folder – not just a literal string – to specify a folder.
  • some file returns always one file so the count command fails and returns always 0.
  • albumName is a literal string as well rather than a object specifier.
  • Photos.app expects alias specifiers for the files to be imported rather than Finder object specifiers.

Try this

on idle
  set importFolder to (path to downloads folder as text) & "uploadBABY"
  set extensionsList to {"jpg", "png", "tiff"}

  tell application "Finder" to set theFiles to files of folder importFolder whose name extension is in extensionsList

  if (count theFiles) < 1 then
      display dialog "No images selected!" buttons "OK"
  else
      set theFile to some item of theFiles
      set albumName to "BabyDouDou"
      set timeNow to time string of (current date)
      set today to date string of (current date)
      set albumName to albumName & " " & timeNow & " " & today
      set imageList to {theFile as alias}

      tell application "Photos"
          activate
          delay 2
          if not (exists container albumName) then
              set theAlbum to make new album
              set name of theAlbum to albumName
          else
              set theAlbum to container albumName
          end if
          import imageList into theAlbum skip check duplicates yes
      end tell

      tell application "Finder" to move theFiles to trash
  end if
  return 4000
end idle

Upvotes: 1

Related Questions