Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Table View content
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Scriptwidgets
•->
•->


Anmeldedatum: 22.02.2007
Beiträge: 14

BeitragVerfasst am: 24.02.2007 - 08:51    Titel: Table View content Antworten mit Zitat

Ich bin am verzweifeln, schon seit einer Ewigkeit versuche ich dieses Skript lauffähig zu machen. Es fragt einen nach einem Textfetzen und durchsucht dann die Bibliothek von iTunes nach den Songs die den eingegebenen Text in ihrem Song text enthalten. Das funktioniert auch, aber ich will das nun in einen "Table View" machen. Das geht komischerweise nicht!

Kann mir jemand helfen?
Hier ist das Script:

set cv to text returned of (display dialog "Geben sie den Songfetzen ein" default answer "" with icon 1)
show window "search"
tell application "iTunes"
set y to 1
set x to count of tracks in library playlist 1
end tell
repeat while y < x
tell application "iTunes"
if lyrics of track y in library playlist 1 contains cv then
set the_name to the name of track y of library playlist 1
--set the_data to the_data & the_name & "
--"
set the_data to the_data & ",{\"" & the_name & "\"}"
end if
end tell
set y to y + 1
end repeat
set the_data to the_data & " }"
delay 5
set the_data to the_data as string
set die_songs to the_data as text
die_songs as text
display dialog the_data

set the clipboard to the_data
tell table view 1 of scroll view 1 of window "search"
set the content to die_songs
end tell
set content of the table view 1 of scroll view 1 of window "search" to die_songs
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Scriptwidgets
•->
•->


Anmeldedatum: 22.02.2007
Beiträge: 14

BeitragVerfasst am: 25.02.2007 - 09:54    Titel: Antworten mit Zitat

weiß keiner etwas? Sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 25.02.2007 - 13:38    Titel: Re: Table View content Antworten mit Zitat

Scriptwidgets hat Folgendes geschrieben:
[…] aber ich will das nun in einen "Table View" machen. Das geht komischerweise nicht!

Hi, Scriptwidgets.
Was heisst denn: "es geht nicht"? Was für ein Fehler taucht auf?
Ausserdem bräucht man zum Testen dein "search"-window.
Aber vielleicht hilft die genaue Fehlermeldung ja schon bei der Fehlersuche.
Gruss, H =Surprised) L G I
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
ShooTerKo
•--->
•--->


Anmeldedatum: 21.03.2006
Beiträge: 221
Wohnort: Hamburg

BeitragVerfasst am: 25.02.2007 - 14:13    Titel: Antworten mit Zitat

Hast du schon statt "the content" "contents" probiert?

CU
ShooTerKo
_________________
"It is a mistake to think you can solve any major problems just with potatoes." - Douglas Adams
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden AIM-Name
Scriptwidgets
•->
•->


Anmeldedatum: 22.02.2007
Beiträge: 14

BeitragVerfasst am: 25.02.2007 - 15:01    Titel: Antworten mit Zitat

ShooTerKo hat Folgendes geschrieben:
Hast du schon statt "the content" "contents" probiert?

CU
ShooTerKo


Ja, hab ich. Aber dann geht es überhaupt nicht mehr.

Fehlermeldung:

NSUnknownKeyScriptError (7)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
chebfarid
•-->
•-->


Anmeldedatum: 10.02.2007
Beiträge: 106
Wohnort: Milano

BeitragVerfasst am: 26.02.2007 - 00:49    Titel: Antworten mit Zitat

Ciao,
ich habe keine Lyrics in meiner iTunes-Library um Dein Script ausprobieren zu koennen, aber mir scheint, dass das Scriptergebnis ein Textstring ist, den Du in Deinem Tableview abbilden willst. Ohne es in der ASS-Dokumentation ueberprueft zu haben, meine ich mich zu erinnern, dass die Inhaltsdaten fuer einen Tableview eine Liste sein muessen. Macht auch insofern Sinn, als multiple Scriptresultate ebenfalls immer im Listenformat ausgegeben werden.
Wenn Dein Script z.B. in der Variable die_songs folgende Suchergebnisse fuer "Rock" speichert: {"It's Only Rock and Roll But I Like it", "Rock Around the Clock", "I Am a Rock"}, wird diese Liste mit der bereits korrekt in Deinem Code enthaltenen Zeile in den Tableview geschrieben:
Code:
set content of table view 1 of scroll view 1 of window "search" to die_songs

(Eine Alternative zu dieser Methode ist, den Inhalt eine Tableviews ueber eine data source zu definieren, s. AppleScript Studio Reference, aber ich glaube, in Deinem Fall ist das nicht notwendig)

Good scripting
Farid
_________________
Abends lustig morgens triste
Das ist Leben von Artiste
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 26.02.2007 - 02:49    Titel: Antworten mit Zitat

also, das ergebnis des scripts liefert bei mir:
Code:
,{"In My Hood"} ... {"Beverly Hills"},{"Buddy Holly"} }

... fängt also mit einem Komma an. liegts vielleicht daran?
um die fehler-suche mal einzugrenzen: versuche doch zunächst einmal etwas anderes in deinem table view darzustellen, ganz unabhängig von deinem itunes-script.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
chebfarid
•-->
•-->


Anmeldedatum: 10.02.2007
Beiträge: 106
Wohnort: Milano

BeitragVerfasst am: 26.02.2007 - 03:05    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
also, das ergebnis des scripts liefert bei mir:
Code:
,{"In My Hood"} ... {"Beverly Hills"},{"Buddy Holly"} }

... fängt also mit einem Komma an. liegts vielleicht daran?

Das Komma wird wohl hier kreiert:
Zitat:
if lyrics of track y in library playlist 1 contains cv then
set the_name to the name of track y of library playlist 1
--set the_data to the_data & the_name & "
--"
set the_data to the_data & ",{\"" & the_name & "\"}"
end if

Ich denke, ein für den Tableview nützlicheres Ergebnis ließe sich so produzieren
Zitat:
set the_data to {}
tell application "iTunes"
     if lyrics of track y in library playlist 1 contains cv then
          set the_name to the name of track y of library playlist 1
          set end of the_data to the_name
     end if
end tell


Die Liste the_data müßte sich dann ohne Schwierigkeiten in den Tableview einlesen lassen.

Saluti
Farid
_________________
Abends lustig morgens triste
Das ist Leben von Artiste
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 26.02.2007 - 03:43    Titel: Antworten mit Zitat

und die schleife könnt man auch gleich noch etwas galanter gestalten:

Zitat:
set cv to text returned of (display dialog "Geben sie den Songfetzen ein" default answer "" with icon 1)
-- show window "search"
set the_data to {}
tell application "iTunes"
   repeat with y from 1 to (count of tracks in library playlist 1)
      if (lyrics of track y in library playlist 1) contains cv then
         set end of the_data to (the name of track y of library playlist 1)
      end if
   end repeat
end tell
display dialog the_data
set the clipboard to the_data

_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 26.02.2007 - 09:19    Titel: Antworten mit Zitat

Ich wollte mal wissen, ob das ganze nicht villeicht auch mit Filtern funktioniert. Allerdings: Bei mir liefert das Script eine Zeitüberschreitung. Ich frage mich, ob es wohl bei anderen funktioniert:
Zitat:
set cv to text returned of (display dialog "Geben sie den Songfetzen ein" default answer "" with icon 1)
-- show window "search"
set the_data to {}
tell application "iTunes"
   set the_data to a reference to (every track of playlist 1 whose lyrics contains cv)
   repeat with i from 1 to (count of the_data)
      set item i of the_data to (the name of item i of the_data)
   end repeat
end tell
display dialog the_data
set the clipboard to the_data

_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 26.02.2007 - 09:25    Titel: Antworten mit Zitat

Skeeve hat Folgendes geschrieben:
Ich wollte mal wissen, ob das ganze nicht villeicht auch mit Filtern funktioniert. Allerdings: Bei mir liefert das Script eine Zeitüberschreitung. Ich frage mich, ob es wohl bei anderen funktioniert.

besonders performant ist es ja nicht, aber es läuft. hängt vielleicht von der grösse der bibliothek ab (bei mir "nur" 4900 songs).
ich hatte mich auch schon gefragt, ob's nicht besser wäre, spotlight zu bemühen, bin mir aber nicht sicher, ob die lyrics dort überhaupt mit geführt werden, und wenn, ob diese gezielt angesprochen werden könnten.

nachtrag: nö, spotlight ist da tump. nix gefunden.

@skeeve: hatte zuerst gar nicht gesehen, das du etwas geändert hattest. also deine version liefert bei mir den fehler:
Zitat:
iTunes got an error: Can't set item 1 of every track of playlist 1 whose lyrics of it contains "blabla" to name of item 1 of every track of playlist 1 whose lyrics of it contains "blabla". (-10006)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 26.02.2007 - 09:47    Titel: Antworten mit Zitat

Absolut inperformant. Bei mir sind es 10358 Titel. Allerdings liegt es daran, daß für den Lyrics auf die MP3 Dateien zugegriffen werden muß. Ich habe gerade mal probeweise einen grep nach einem Text laufen lassen:
Code:
grep -lr 'My Sunday feeling is coming on over me' Jethro\ Tull/This\ Was/

Das lief ratzfatz. Allerdings wußte ich ja, wo zu suchen ist.

Jetzt lasse ich den grep rekursiv über alles laufen und er ist noch nicht fertig.

Ich hänge hier dann mal an, wie lange er benötigt hat.

Ich denke aber, das Besste würde sein, wenn man so eine Suche öfter benötigt, alle Texte in einer Datenbank, zumindest aber in einer einzigen Text (XML) Datei zu halten und darauf zu suchen.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
iScript
•---->
•---->


Anmeldedatum: 29.03.2001
Beiträge: 1116

BeitragVerfasst am: 26.02.2007 - 09:54    Titel: Antworten mit Zitat

Skeeve hat Folgendes geschrieben:
'My Sunday feeling is coming on over me'

oh, mein gott, und das am montag Wink

die eingedampfte version von Scriptwidgets funktioniert aber, inclusive darstellung im "table view". eine mögliche eingrenzung der suche wäre allerdings sinnvoll.
_________________
- anholn deit kriegen -
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 26.02.2007 - 10:04    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
@skeeve: hatte zuerst gar nicht gesehen, das du etwas geändert hattest. also deine version liefert bei mir den fehler:
Zitat:
iTunes got an error: Can't set item 1 of every track of playlist 1 whose lyrics of it contains "blabla" to name of item 1 of every track of playlist 1 whose lyrics of it contains "blabla". (-10006)

Okay... Dann muß es so geändert werden:
Code:
   set the_result to {}
   repeat trck in  the_data
      cop (the name of trck) to the end of the_result
   end repeat

und dann muß the_result als Ergebnis genommen werden.

Meinen grep habe ich (kurz) nach Auffinden des Ergebnisses abgebrochen:
Code:
time grep -lr 'My Sunday feeling is coming on over me' .
Jethro Tull/This Was/01 My Sunday Feeling.mp3
^C

real    22m49.997s
user    0m59.517s
sys     1m35.067s

_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Scriptwidgets
•->
•->


Anmeldedatum: 22.02.2007
Beiträge: 14

BeitragVerfasst am: 26.02.2007 - 13:52    Titel: Antworten mit Zitat

iScript hat Folgendes geschrieben:
also, das ergebnis des scripts liefert bei mir:
Code:
,{"In My Hood"} ... {"Beverly Hills"},{"Buddy Holly"} }

... fängt also mit einem Komma an. liegts vielleicht daran?
um die fehler-suche mal einzugrenzen: versuche doch zunächst einmal etwas anderes in deinem table view darzustellen, ganz unabhängig von deinem itunes-script.


hab schon versucht andere Sachen darzustellen. Und es hat funktioniert. Nur bei dem Script hier mit den Variablen geht es nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter