• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Frühling ist auch in den eingesandten Fotos deutlich zu erkennen. Zeigt uns, wer Euer Favorit ist! hier geht es lang für Euer Voting --> Klick

Liste aller Genres

desh

Luxemburger Triumph
Registriert
23.06.10
Beiträge
504
Hallo
(Mein Wissensstand bzgl. Applescript ist leider nicht sehr gut)

Ich scheitere Gerade bei dem Versuch, mir eine Liste von allen Genres (aus Playlist Music) ausgeben zu lassen:

tell application "iTunes"
set genreList to genre of every track
end tell

listet mir jedes Genre x-mal auf, ich will aber eine Liste im Sinne einer mathematischen Menge (kein Eintrag doppelt).
Auch scheitert

tell application "iTunes"
set genreList to genre of every track of playlist Music
end tell

(warum stört sich der Compiler nun an dem Schlüsselwort genre?!)

Eigentlich möchte ich ja für jedes Genre eine eigene Playlist mit nur diesem Genre erstellen. Vielleicht denke ich da zu kompliziert (bzgl. der Programmierung, ich möchte es nicht über intelligente Playlists o.ä. erledigen, da das ganze Teil eines etwas größeren Programms werden soll)


Danke!
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.703
Keine sinnvolle Antwort, ich weiß - aber: Will ich auch wissen!!!
Wobei ich mir bisher immer (ergebnislos und, ehrlich gesagt, auch ohne große Initiative) überlegt habe, aus der Librarydatei per Shellskript, Perl, Python o.ä. irgendwas auszulesen.
 

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Hallo!
Music muss "Music" heißen :)

Normalerweise erstellt man eine Liste und schaut, ob das Genre dort schon steht, ansonsten fügt man es zu. Bei sehr vielen abzuarbeitenden Titeln kann das aber einen Augenblick dauern. Deshalb ein Link, wo eine super Lösung präsentiert wird: Hier

Gruß
 
  • Like
Reaktionen: desh

desh

Luxemburger Triumph
Registriert
23.06.10
Beiträge
504
Danke, der Link sieht sehr vielversprechend aus! Auf dieses Forum bin ich beim googlen auch gestoßen, leider nicht auf diesen Thread.


@MacAlzenau: Wenn du diesen Weg gehen willst denke auch an sed/awk.
 

Guy.brush

Weißer Winterkalvill
Registriert
15.12.08
Beiträge
3.545
Bei Doug Adams gibt es folgendes Skript: http://dougscripts.com/itunes/scripts/ss.php?sp=makeatextlist

Du kannst es ja mal im AppleScriptEditor öffnen. Sind allerdings auch Filmgenres dabei, evtl. muss man es etwas abändern...

EDIT: die entscheidende Zeile ist wohl:
set the_command to "grep \"" & xml_tag & "\" " & my get_path_to_current_xml() & " | sort -fd | uniq | sed -e 's/" & xml_tag & "//g' -e 's///g' " & "-e 's/&/\\&/g' -e 's/ //g' | tr '
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Hallo,

freigesudeltes Beispiel:

Code:
[B]tell[/B] [COLOR=#1141fc][I]application[/I][/COLOR] "iTunes"	
	[B]set[/B] [COLOR=#518e13]allGenres[/COLOR] [B]to[/B] [COLOR=#803ad9]genre[/COLOR] [B]of[/B] [B]every[/B] [COLOR=#1141fc][I]track[/I][/COLOR]
	
[B]end[/B] [B]tell[/B]


[COLOR=#518e13][COLOR=#000000][B]set[/B] [/COLOR]textDelimiter[COLOR=#000000] [B]to[/B] "[/COLOR][/COLOR]
"


[COLOR=#518e13][COLOR=#000000][B]set[/B] [/COLOR]genresText[COLOR=#000000] [B]to[/B] [/COLOR]textDelimiter[/COLOR]


[B]repeat[/B] [B]with[/B] [COLOR=#518e13]nGenre[/COLOR] [B]in[/B] [COLOR=#518e13]allGenres[/COLOR]
	
[COLOR=#518e13][COLOR=#000000]	[B]set[/B] [/COLOR]dirtyGenre[COLOR=#000000] [B]to[/B] [/COLOR]textDelimiter[COLOR=#000000] & [/COLOR]nGenre[COLOR=#000000] & [/COLOR]textDelimiter[/COLOR]
	
	[B]if[/B] ([COLOR=#518e13]genresText[/COLOR] [B]does not[/B] [B]contain[/B] [COLOR=#518e13]dirtyGenre[/COLOR]) [B]then[/B]
		
[COLOR=#518e13][COLOR=#000000]		[B]set[/B] [/COLOR]genresText[COLOR=#000000] [B]to[/B] [/COLOR]genresText[COLOR=#000000] & [/COLOR]nGenre[COLOR=#000000] & [/COLOR]textDelimiter[/COLOR]
		
	[B]end[/B] [B]if[/B]
	
[B]end[/B] [B]repeat[/B]


[COLOR=#518E13][COLOR=#000000][B]return[/B] [/COLOR]genresText[/COLOR]

Es ist auch möglich den Abgleich mit "is not it" in einer zweiten Liste durchzuführen.
Das funktioniert bei mir aber seit Lion gar nicht mehr korrekt. Textoperationen funktionieren da viel besser.

Viele Grüße
 
  • Like
Reaktionen: desh

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Hallo LittlePixel!
Danke für das "freigesudelte" Beispiel (*grins)

genre of every track dauert
schneller ist auf jeden Fall
genre of tracks of library playlist 1 (oder playlist "Musik" o.ä.)

aber noch viel schneller ist das verlinkte Beispiel:

script o
property genres : ""
end script

tell application "iTunes"
set o's genres to (get genre of tracks of library playlist 1)
end tell
set genreList to {}

repeat with i from 1 to count o's genres
set g to item i of o's genres
if g is not in genreList then set end of genreList to g
end repeat
genreList


Und ja: mit dem Tune•Instructor kann man das Gewünschte sehr bequem erledigen :)
... nur, ob sich das als Teil eines "größeren Programms" implementieren lässt?

Gruß
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Da hast Du Recht.

Ich gestehe ein, dass ich es nur überflogen habe.

Viele Grüße
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Ich habe schon lange nichts mehr mit AS umgesetzt.

Mache mal aus dem:

Code:
[B]repeat[/B] [B]with[/B] [COLOR=#529100]i[/COLOR] [B]from[/B] 1 [B]to[/B] [COLOR=#311fff][B]count[/B][/COLOR] [COLOR=#529100]o[/COLOR]'s [COLOR=#529100]genres[/COLOR]
[B]set[/B] [COLOR=#529100]g[/COLOR] [B]to[/B] [COLOR=#311fff][I]item[/I][/COLOR] [COLOR=#529100]i[/COLOR] [B]of[/B] [COLOR=#529100]o[/COLOR]'s [COLOR=#529100]genres[/COLOR]
[B]if[/B] [COLOR=#529100]g[/COLOR] [B]is not[/B] [B]in[/B] [COLOR=#529100]genreList[/COLOR] [B]then[/B] [B]set[/B] [B]end[/B] [B]of[/B] [COLOR=#529100]genreList[/COLOR] [B]to[/B] [COLOR=#529100]g[/COLOR]
[B]end[/B] [B]repeat[/B]

… das:

Code:
[B]repeat[/B] [B]with[/B] [COLOR=#518e13]g[/COLOR] [B]in[/B] [COLOR=#518e13]o[/COLOR]'s [COLOR=#518e13]genres
[/COLOR]	[B]if[/B] [COLOR=#518e13]g[/COLOR] [B]is not[/B] [B]in[/B] [COLOR=#518e13]genreList[/COLOR] [B]then[/B] [B]set[/B] [B]end[/B] [B]of[/B] [COLOR=#518e13]genreList[/COLOR] [B]to[/B] [COLOR=#518e13]g[/COLOR]
[B]end[/B] [B]repeat[/B]

Was passiert da bei Dir?

Viele Grüße
 

sedna

Schweizer Glockenapfel
Registriert
22.10.08
Beiträge
1.375
Hallo!

Die items von o's genres werden in die Liste gepackt...
Man könnte etwas in dieser Art voranstellen:
set g to g as string/ bzw. text

Gruß
 

desh

Luxemburger Triumph
Registriert
23.06.10
Beiträge
504
Hallo liebe User
Ich sehe schon, hier sind Profis unterwegs, danke vielmals für eure Hilfe und Anregungen bisher. Leider fehlt mir im Moment etwas die Zeit mich weiter damit zu beschäftigen, aber ich bin sicher ihr hört im neuen Jahr noch von mir ;)
Jedenfalls danke bis hierhin!
 

MacAlzenau

Golden Noble
Registriert
26.12.05
Beiträge
22.703