Willkommen auf der Blog-Seite von hubionmac.com!
Alles rund um AppleScript und was mich sonst noch so interessiert ;-)!

Ich habe vor einiger Zeit mal diesen IPSW-Downloader geschrieben, damit man gerade als Apple-Supporter nicht immer erst die passende iOS-Software laden muss, wenn man mal einen iPod oder ein iPhone resetten möchte. Die Software lädt also einfach die neuesten Software-Versionen für alles iOS Devices, iPods und Apple-TVs herunter.
Bis zum Update von iOS 10, als auf einmal die Namensgebung so gar mehr mit dem übereinstimmte, was Apple bisher gemacht hatte.
Die neue Version kommt nun auch mit den neuen Dateinamen klar und anstelle auf jedem Client dieses riesen XML-Datei parsen zu lassen, fasst nun ein Script dieses Server-Seitig zusammen, so dass der Download noch schneller starten kann. Weitere Neuerungen sind:

  • Alte Dateien werden rot markiert und können so nachdem das Skript gelaufen ist, vom nutzer leicht identifiziert und gelöscht werden, damit man sich den Rechner nicht mit veralteten Versionen zumüllt.
  • Wenn mal ein Download-Abgebrochen wird (manchmal kicken einen die Server einfach raus), bricht das Skript nicht mehr ab, sondern fängt den Fehler ab. Der angebrochene Download wird gelöscht und wenn man das Skript später noch einmal laufen lässt, wird dann die fehlende Datei erneut geladen. So gehören zumindest defekte Dateileichen der Vergangenheit an ;-)

ipsw downloader 4.zip

Continue reading...


Kleines Skript, welches einen einstellbaren Ordner in iTunes importiert und im Anschluss die iTunes Mediatheak auch von nicht mehr vorhandenen Tracks bereinigt.

try
  set defaultFolder to my decode_octal(do shell script "defaults read com.hubionmac.syncfolder2itunes defaultFolder")
  display alert "Change default folder?" & return & return & defaultFolder buttons {"Change", "no changes"} default button {"no changes"} giving up after 2
  if (button returned of the result) as text = "Change" then
    error
  end if
on error
  set defaultFolder to POSIX path of (choose folder)
  do shell script "defaults write com.hubionmac.syncfolder2itunes defaultFolder " & quoted form of defaultFolder
end try
set thefolder to (POSIX file defaultFolder) as alias

with timeout of 99999 seconds
  tell application "iTunes"
    --add thefolder to library
    add thefolder to playlist 1 of source 1
  end tell
end timeout
my remove_missing()

display notification "Done"
on remove_missing()
  tell application "iTunes"
    set the stored_setting to fixed indexing
    set fixed indexing to true
    set sourcename to name of source 1
    tell source sourcename
      set libname to name of playlist 1
      tell playlist libname
        repeat with i from the (count of tracks) to 1 by -1
          try
            if the location of track i is missing value then
              delete track i
              set the remove_counter to the remove_counter + 1
            end if
          end try
        end repeat
      end tell
    end tell
    set fixed indexing to the stored_setting
  end tell
end remove_missing

on decode_octal(str)
  set str to quoted form of str
  set cmd to quoted form of "#!/usr/bin/python 
import sys 

x = sys.argv[1] 
x = x.decode('unicode_escape' ) 
x=x.encode('utf-8') 
print x"
  set cmd_full to "python -c " & cmd & " " & str
  set r to do shell script cmd_full
  return r
end decode_octal

Continue reading...

In bestimmten Fällen möchten Unternehmen und Bildungseinrichtungen ihre Geräte möglicherweise mithilfe von iTunes aktivieren, ohne dass zusätzliche Inhalte synchronisiert oder gesichert werden. In diesem Artikel wird beschrieben, wie der Modus “Nur aktivieren” eingeschaltet wird.

Nun das schreibt Apple hier. Aber wer möchte schon immer diese Modus in iTunes aktiviert haben? Dieses Skript aktiviert den Modus solange es als Anwendung gespeichert (mit der Option “Nach Run-Handler anzeigen”)wurde, wenn man das Skript startet. Und deaktiviert die Einstellung sobald es wieder geschlossen wird.
iTunes wird von dem Skript automatisch neu gestartet, so dass die geänderte Einstellung direkt wieder aktiv wird.

### 11.09.2014 © hubionmac.com
### Applescript um iTunes in den StoreActivation Mode zu versetzten
### Damit wird jedes angeschlossene iOS Device direkt über iTunes aktiviert und wieder ausgeworfen
### Damit man iTunes normal weiter nutzen kann, ist dieses Setting nur solange aktiv, wie dieses Skript läuft (Als Anwendung gespeichert)

property setprefs : false

on run
  set theaction to button returned of (display alert "Activate StoreActivation Setting in iTunes? iTunes will restart?" buttons {"Activate", "nope quit"} default button {"Activate"})
  if theaction is "Activate" then
    tell application "System Events"
      repeat with i from 1 to 10
        if name of every process contains "iTunes" then
          tell application "iTunes" to quit
        else
          do shell script "defaults write com.apple.iTunes StoreActivationMode -integer 1"
          set setprefs to true
          exit repeat
        end if
        delay 1
      end repeat
      if setprefs is false then
        display alert "Error on resetting preferences... (could not quit iTunes in time) Restart and quit app to fix this"
      else
        tell application "iTunes" to activate
        do shell script "afplay /System/Library/Sounds/Pop.aiff "
      end if

    end tell
  else
    tell me to quit
  end if
end run

##Routine die beim Beendetn des Skript-Programmes durchlaufen wird
on quit
  ##es wird versucht die gesetzte Voreinstellung wieder zur löschen… kommt es zu einem Fehler, wird dieser angezeigt und das Programm beendet sich trotzdem...
  tell application "System Events"
    repeat with i from 1 to 10
      if name of every process contains "iTunes" then
        tell application "iTunes" to quit
      else
        do shell script "defaults write com.apple.iTunes StoreActivationMode -integer 0"
        set setprefs to false
        exit repeat
      end if
      delay 1
    end repeat
  end tell
  if setprefs is true then
    display alert "Error on resetting preferences... (could not quit iTunes in time) Restart and quit app to fix this"
  else
    tell application "iTunes" to activate
    do shell script "afplay /System/Library/Sounds/Pop.aiff "
  end if

  continue quit

end quit

Continue reading...

Ist wirklich ein geniales Projekt. Anscheinend wurde die Projektseite seit einiger Zeit nicht mehr gepflegt, aber die Software scheint wirklich gut zu sein.Einfach Handhabung und vor allen Dingen scheint es merklich schneller als iTunes zu sein!Ich teste es noch, aber so wie das gerade hier auf meinem iBook700 abgeht, denke ich, es ist eine gelungene Alternative zu der bisherigen iTunes-Sever-Lösung.Zudem kann ich jetzt auf die iTunes-Scripte verzichten, die immer regelmäßig die Ordner auf neu Dateien durchsucht haben.****

Continue reading...