FasdUAS 1.101.10 k l  "Random Tracks by Current Artist to Party Shuffle" for iTunes written by Damon Parker damonp@damonparker.org based on "Random Tracks by Artist to Playlist" for iTunes written by Doug Adams dougadams@mac.com v1.1 oct 14 2005 -- initial release  l  j 0 path_to_xml m /)~/Music/iTunes/iTunes\ Music\ Library.xml  p 0 num_of_tracks 0 done_tracks 0 artist_list l l O k l l $ check source, gotta be iTunes ! r"# "l$ $e% %n&' &1   pKnd 'n () (1  ctnr )n *+ *1  pPly +4,  cBrW ,m #o 0 the_source!-. -ZB/0 />12 1o 0 the_source 2m  eSrckLib 0k>3345 4Q;67 6I289 .sysodlogaskr**** 8b":; :l < <c => =b?@ ?mA A'!Select a track in iTunes, not in  @o 0 the_source >m  TEXT ;m !B B.9CD  btns CJ#&EEF Fm#$G G CancelDHI  dflt Hm'(IJK  disp Jm)*KL  givu Lm+, 7R .ascrerr ********5M ML<>.NO NlCCOPQ PlCCR R" get artist of current trackQST SrCPUV UnCLWX W1HL  pArt X1CH  pTrk Vo 0artTYZ YlQQZ[\ [lQQ] ] proceed....\^_ ^lQQ_`a `lQQb b)# get a list of all tracks by artistacd crQmef eIQigh .hookSrchcTrkcPly g4QWi  cLiP imUVhjk  pTrm joZ] 0artkl  pAre lm`c  eSrAkSrR fo 0 them_tracksdmn mlnno o/) filter out Artist names that aren't the npq plnnr rE? particular Artist (Don't want "Sugarcult" if it's "Sugar", eg)qst srntuv uJnp vo 0 found_trackstwx wXuyz yZ{| {=}~ }n 1  pArt o 0a_trk ~o 0art |r o 0a_trk n ; o 0 found_tracks 0a_trk zox{ 0 them_tracksx l l  how many ya want? r n I 0 get_a_number m  b b b b b b b b m 93Enter the number of random tracks you want in your  o 0art m  Playlist... o  ret m  (You have  l n 1  leng o 0 found_tracks m   o 0art m  tracks.) f o 0 num_of_tracks l l *$ establish variable for new playlist r 4  cPly m  Party Shuffle o 0party_playlist l =7 set shuffle of party_playlist to false -- just in case l l 82 got all tracks by selected artist in found_tracks l 4. num_of_tracks is the limit of tracks we want  l Z| B n 1  leng o 0 found_tracks o 0 num_of_tracks l X I  .coreclon******** o  0atraTr  insh o 0party_playlist 0atraTr o 0 found_tracks D> not enough/just enough tracks to meet criteria, so use em all l| k| r% J! o 0 done_tracks Q&| t)Q l-P W-P n=K I>K 0add_this_track o>A 0 found_tracks oAD 0 done_tracks oDG 0party_playlist f=> =1< n18 148  leng o14 0 done_tracks o8; 0 num_of_tracks VP it's possible to run into an infinite loop if all the track names are the same! m), R~} .ascrerr ********~} kY| QYz| I\q{ {.sysodlogaskr**** m\_ Couldn't create Playlist!z z btns J`ey m`c Cancelyx x dflt mfgwwv v disp mhiuuts t givu mjkrrs Rqpo q.ascrerr ********po|n l{{mlmln  select random tracks l}}kjkj l}}i i   show new playlist h  r}   o}g g0party_playlist  n   1f f pPly 4e e cBrW mddh mnull iTunes.app1@( })(0lP~hookalis4Root.HH+ iTunes.app$( ApplicationsxRoot:Applications:iTunes.app iTunes.app RootApplications/iTunes.app/ lcbcb i Ia` a0add_this_track o_ _0 found_tracks o^ ^0 done_tracks] o\ \0party_playlist]` O4 k3 !  l["[ " grab a random track!#$ #r %& %n'( '3Z Z cobj (oY Y0 found_tracks &oX X0 this_track$)W )Q 3*+V *Z *,-UT ,H . .E /0 /o S S0 done_tracks 0l1R 1n23 21Q Q pnam 3oP P0 this_trackR -l&45 4k&6678 7lONON89: 9IM;< M.coreclon******** ;oL L0 this_track<K=J K insh =oI I0party_playlistJ:>? >r$@A @l!BH Bn!CD C1!G G pnam DoF F0 this_trackH AnEF E;"# Fo!"E E0 done_tracks?GD Gl%%CBCBD 5 don't already have itUT +RA@? A.ascrerr ********@?VW mHI Hl>=>=IJK Jl<;<;KLM Ll:9:9MNO Ni PQ PI8R7 80 get_a_numberRST So6 6 0addendaTU5 Uo4 40txt57 QkGVVWX WI321 3.miscactvnullnull21XYZ Yr[\ [n]^ ]10 0 ttxt ^l_/ _I.`a ..sysodlogaskr**** `b bc bb de dmf f eo- - 0addenda co , ,0txta+gh + dtxt gm i ih*jk * btns jJllmn mmo o Cancelnp) pmq qOK)k(r' ( dflt rm&&'/ \o% %0mynumbermyNumberZst sl$#$#tu" uQGvwx vk *yyz{ zl #|! |c #}~ }o ! 0mynumbermyNumber ~m!"  long!{ L$( c$' o$% 0mynumbermyNumber m%&  nmbr l)) wR .ascrerr ******** xk2G r25 m23  o 0mynumbermyNumber n6G I7G 0 get_a_number b7B b7> m7: Enter only numbers... o:=  ret o>A  ret  oBC 0txt f67"O l   i  I  0 text_to_list o 0txt o  0delim  k3 r n 1  txdl 1  ascr o 0savedsaveD Q* k  r  J  o   0delim n 1   txdl 1   ascr r n 2  citm o 0txt o 0thelisttheList R .ascrerr ******** o 0errstrerrStr  errn o 0errnumerrNum k* r# o 0savedsaveD n 1 "  txdl 1  ascr R$* .ascrerr ******** o() 0errstrerrStr  errn o&' 0errnumerrNum r+0 o+, 0savedsaveD n 1-/  txdl 1,-  ascr L13 l12 o12 0thelisttheList l  0 path_to_xml 0add_this_track 0 get_a_number 0 text_to_list .aevtoappnull**** 0add_this_track 0 found_tracks 0 done_tracks 0party_playlist 0 found_tracks 0 done_tracks 0party_playlist 0 this_track  cobj  pnam  insh .coreclon********51.EO", l O,6FOPYhWXhUQ 0 get_a_number 0addenda 0txt 0addenda 0txt 0mynumbermyNumberfioq .miscactvnullnull  dtxt  btns  dflt .sysodlogaskr****  ttxt  long  nmbr  ret 0 get_a_numberH*j O%%lvl ,EO&O&OPWX EO)a_%_%l+ 0 text_to_list 0txt 0delim 0txt 0delim 0savedsaveD 0thelisttheList 0errstrerrStr 0errnumerrNum  ascr  txdl  citm 0errstrerrStr  errn 0errnumerrNum  errn4,EOkv,FO-EWX,FO)lO,FO .aevtoappnull**** k 0a_trk 0atraTr6ABG~}|{zyxwvutsr  cBrW  pPly  ctnr  pKnd 0 the_source  eSrckLib  TEXT  btns  dflt  disp  givu .sysodlogaskr****  pTrk  pArt 0art  cLiP  pTrm  pAre  eSrAkSrR .hookSrchcTrkcPly 0 them_tracks 0 found_tracks  kocl ~ cobj }.corecnte******** | ret { leng z0 get_a_number y0 num_of_tracks x cPly w0party_playlist v insh u.coreclon******** t0 done_trackss r0add_this_track*k/,,,EEO+%&%kvkla WXhOhYhO*a,a,E`O*ak/a_aaa E`OjvE`O0_[aa l !kha,_ _6FYh[OYO)a"a#_%a$%_%%a&%_a',%a(%_%a)%l+*E`+O*a,a-/E`.O_a',_++%_[aa l !kha/_.l 0[OYY_jvE`1O-a2n"h_1a',_+)__1_.m+3[OYoW*Xa4a5kvkla WXhOPO_.*k/,FUascr ޭ