Lottando con subroutine

0

Sto avendo, penso, un problema di subroutine. Voglio usare questo sistema 'Scegli dalla lista' per ordinare la musica appena acquisita. Dopo aver lasciato un gruppo di mp3, dovrebbe riprodurre l'mp3 (quindi posso decidere il genere), quindi visualizzare la prima finestra di dialogo "scegli da ...", che dovrebbe quindi passare a quella successiva, fino a quando non raggiunge il uno che richiede Finder per archiviare l'mp3. Quindi dovrebbe passare al prossimo mp3. Ma per qualche ragione si limita a riprodurre l'mp3.

Qualcuno può aiutarti? Mi scuso per la massa di codice, ma ho pensato che potrebbe essere utile. Forse l'ho complicato eccessivamente ... Ma suppongo che stia chiedendo è possibile passare da una subroutine 'scegli elenco' a un'altra prima di tornare al prossimo file nell'elenco?

Grazie

Tardy

property extension_list : {"mp3", "m4a", "mp4", "aac"}  
tell application "Finder"  
    --set folders as variables now...there are 15 folders  
    set f1 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/01 50s & 60s Rock"  
    set f2 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/02 70s & 80s Rock"  
    set f3 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/03 90s-now Rock"  
    set f4 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/04 Swing"  
    set f5 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/05 Soul"  
    set f6 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/06 Pop. Song"  
    set f7 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/07 Modern Jazz"  
    set f8 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/08 Comedy & Novelty & Christmas"  
    set f9 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/09 Spoken"  
    set f10 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/10 Blues, Gospel, Folk & World"  
    set f11 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/11 Classical"  
    set f12 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/12 Lounge & Exotica"  
    set f13 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/13 Rap"  
    set f14 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/14 Reggae"  
    set f15 to POSIX file "/Users/Tardy/Tardy Stuff/Scripts & Automator Actions/Music Pre-Filing System/15 Warped & Electronic"  
end tell  
--opens the dropped files  
on open these_items --these_items are the dropped ones  
    repeat with i from 1 to the count of these_items  
        set this_item to item i of these_items  
        process_item(this_item)  
    end repeat  
end open  
-- this sub-routine processes files; this is the initial menu  
on process_item(this_item)  
    -- NOTE that the variable this_item is a file reference in alias format   
    tell application "iTunes"  
        play this_item  
    end tell  
    tell application "Finder"  
        choose from list {"Rock", "Soul/Rap/Reggae", "Jazz/Pop. Song", "Other"} with title "Which genre?" with prompt "Identify genre from list:" cancel button name "Cancel"  
        if the result is {"Rock"} then  
            rockSubmenu(this_item)  
        else if the result is {"Soul/Rap/Reggae"} then  
            soulSubmenu(this_item)  
        else if the result is {"Jazz/Pop. Song"} then  
            jazzSubmenu(this_item)  
        else if the result is {"Other"} then  
            otherSubmenu(this_item)  
        end if  
    end tell  
end process_item  
--here are all the other submenus  
on rockSubmenu(this_item)  
    choose from list {"50s & 60s", "70s & 80s", "90s-Now"} with title "Which genre?" with prompt "Choose from the following categories:" cancel button name "Cancel"  
    if the result is {"50s & 60s"} then move this_item to f1  
    if the result is {"70s & 80s"} then move this_item to f2  
    if the result is {"90s-Now"} then move this_item to f3  
end rockSubmenu  
on soulSubmenu(this_item)  
    choose from list {"Soul", "Rap", "Reggae"} with title "Which genre?" with prompt "Choose from the following categories:" cancel button name "Cancel"  
    if the result is {"Soul"} then  
        move this_item to f5  
    else if the result is {"Rap"} then  
        move this_item to f13  
    else if the result is {"Reggae"} then  
        move this_item to f14  
    end if  
end soulSubmenu  
on jazzSubmenu(this_item)  
    choose from list {"Swing", "Modern", "Pop. Song", "Lounge/Exotica"} with title "Which genre?" with prompt "Choose from the following categories:" cancel button name "Cancel"  
    if the result is {"Swing"} then move this_item to f4  
    if the result is {"Modern"} then move this_item to f7  
    if the result is {"Pop. Song"} then move this_item to f6  
    if the result is {"Lounge/Exotica"} then move this_item to f12  
end jazzSubmenu  
on otherSubmenu(this_item)  
    choose from list {"Spoken", "Comedy/Novelty/Christmas", "Other"} with title "Which genre?" with prompt "Choose from the following categories:" cancel button name "Cancel"  
    if the result is {"Spoken"} then move this_item to f9  
    if the result is {"Comedy/Novelty/Christmas"} then move this_item to f8  
    if the result is {"Other"} then other2Submenu(this_item)  
end otherSubmenu  
--another other menu  
on other2Submenu(this_item)  
    choose from list {"Folk & World", "Classical", "Blues/Gospel", "Warped/Electronic"} with title "Which genre?" with prompt "Choose from the following categories:" cancel button name "Cancel"  
    if the result is {"Classical"} then move this_item to f11  
    if the result is {"Blues/Gospel/Folk"} then move this_item to f10  
    if the result is {"Warped/Electronic"} then move this_item to f15  
    --end of all submenus  
end other2Submenu  
    
posta tardy pigeon 09.10.2016 - 17:30
fonte

1 risposta

0

Dopo essermi intrattenuto per un po ', sono riuscito a trovare una soluzione più semplice. Lascerò qui per chiunque anche cercando di ordinare i loro file usando un sistema simile. Quando è attivo e funzionante, è molto più veloce del fare clic manualmente e cercare cartelle in cui ordinare le cose.

   --opens the dropped files
on open these_items 
--these_items are the dropped ones
    repeat with i from 1 to the count of these_items
        set this_item to item i of these_items
        process_item(this_item)
    end repeat
end open

on process_item(this_item)
    -- NOTE that the variable this_item is a file reference in alias format 
    --plays song so you can make a judgement
    tell application "iTunes"
        play this_item
    end tell
    --displays info of item to help decide genre
    tell application "Finder"
        set selectedItem to this_item
        set infoList to {}
        copy ("Displayed Name: " & displayed name of selectedItem) to end of infoList
    end tell
    set {od, AppleScript's text item delimiters} to {AppleScript's text item delimiters, return}
    set infoAsString to infoList as string
    set AppleScript's text item delimiters to od
    set the clipboard to infoAsString
    tell me to activate
    display dialog infoAsString giving up after 3.5
    --moves item
    tell application "Finder"
        set defaultFolder to alias "Macintosh HD:Users:Tardy:Tardy Stuff:Scripts & Automator Actions:Music Pre-Filing System"
    end tell
    tell application "Finder"
        choose folder default location (defaultFolder) with prompt "What genre?"
        set theDestination to result
        move this_item to theDestination
    end tell
  --stops music when sorting is complete
    tell application "iTunes"
        stop
    end tell
end process_item

Grazie per tutti coloro che stavano lavorando su una risposta.

Tardy

    
risposta data 09.10.2016 - 22:20
fonte

Leggi altre domande sui tag