Përmbajtje:

Fshini ato këngë të padëshiruara të ITunes nga kompjuteri juaj: 10 hapa
Fshini ato këngë të padëshiruara të ITunes nga kompjuteri juaj: 10 hapa

Video: Fshini ato këngë të padëshiruara të ITunes nga kompjuteri juaj: 10 hapa

Video: Fshini ato këngë të padëshiruara të ITunes nga kompjuteri juaj: 10 hapa
Video: Живое прослушивание: полная коллекция #BringYourWorth (официальное аудио) 2024, Korrik
Anonim
Fshini ato këngë të padëshiruara të ITunes nga kompjuteri juaj
Fshini ato këngë të padëshiruara të ITunes nga kompjuteri juaj

Përshëndetje zonja dhe zotërinj, ky është kodimi im i parë i udhëzueshëm, kështu që ju lutemi, kur komentoni, lërini armët në shtëpi (thikat janë të pranueshme, megjithatë). Me ardhjen e mp3 player -eve, është bërë e mundur që njerëzit të mbajnë sasi të pashembullt të muzikës me ta në xhepat e tyre. Nuk është e pazakontë të dëgjosh njerëz që kanë koleksione prej 5, 10, madje 15 mijë këngësh (dhe disa njerëz, edhe më shumë). Nga lojtarët mp3, asnjë nuk është më i popullarizuar se iPod i Apple dhe softueri që e drejton atë, iTunes. Megjithatë, me biblioteka të tilla të mëdha muzikore, mund të bëhet disi e lodhshme të heqësh qafe këngët që thjesht nuk tingëllojnë mirë ose tërheqëse ti më Mund të duhen vite për të ecur me këngë përmes koleksionit tuaj të muzikës në iTunes dhe për të hequr qafe këngët që nuk ju pëlqejnë. Këtu hyn ky udhëzues. Në këtë udhëzues, unë do t'ju tregoj një mënyrë për të hequr qafe automatikisht këngët që janë thjesht të tmerrshme, me ndihmën e mikut tim të mirë, Perl. Një njohuri e mirë bazë e Perl është jashtëzakonisht e dobishme kur përpiqeni të përsërisni këtë udhëzues, edhe pse nuk kërkohet (ju me siguri mund të merrni vetëm produktin e përfunduar të kodit dhe kopjoni/ngjisni dhe do të funksionojë mirë). Për ata që janë të interesuar për Perl, unë rekomandoj shumë librin "Learning Perl" nga O'Reilly, është një lexim i mirë dhe një nga librat më të mirë të shkruar në Perl kam pasur rastin të lexoj. E RORTNDSISHME: Ndërsa metodat e paraqitura këtu do të funksionojnë nëse bëhet siç duhet, unë nuk mund dhe thjesht nuk do të pranoj asnjë përgjegjësi nëse bëni diçka marrëzi dhe fshini këngët tuaja të çmuara. Ju lutemi konsideroni me forcë kopjen rezervë të skedarëve tuaj muzikorë para se të përpiqeni të shkruani ose ekzekutoni një skenar siç është më poshtë. Vetëm gaboni në anën e kujdesit në mënyrë që të mos kemi ndonjë ndjenjë të lënduar nëse nuk e bëni, faleminderit. Lexoni paralajmërimin? (Po, edhe ju, personi që nuk e lexuat paralajmërimin) Mirë! Le të fillojmë:-) Përditësim: Duket se disa skripterë perl kanë qenë të vështirë në punë duke shkruar skriptet iTunes. Për një sërë skriptesh të lidhura me iTunes, shikoni Shkrimet e Teridon.

Hapi 1: Fillimi

Fillimi
Fillimi

Ashtu si për të gjitha gjërat, ka një përgatitje të vogël që duhet bërë para se të fillojmë këtë skenar. Pra, gjërat që do t'ju duhen për të fshirë automatikisht këngët nga iTunes: 1) Një kompjuter (duh) 2) iTunes (dyfish duh) 3) Perl (e vështirë për të ekzekutuar një skenar Perl pa Perl, nuk do të thonit?) 4) Your redaktori i preferuar (Unë jam një përkrahës i vi dhe vim vetë, por çdo redaktues teksti duhet të bëjë truk) 5) Një iPod (jo i detyrueshëm, por i këndshëm për arsye që do të sqarohen mjaft shpejt) Getting Perl: Ndiqni udhëzimet këtu, duhet të jenë mjaft të thjeshta: https://www.perl.com/download.csp Pasi të keni shkarkuar, instaluar dhe gati për të shkuar Perl, ne do të duam disa informacione në lidhje me atë që po bëjmë. Duhet të theksohet se skenari u krijua fillimisht për Mac OS X, megjithëse të njëjtat metoda duhet të funksionojnë në OS jo me bazë Unix siç janë Windows. Koha për pjesën e mërzitshme, "arsimore" të Udhëzueses.

Hapi 2: Ideja e Shkrimit bazë

iTunes përfshin një sistem vlerësimi me 5 yje për të lejuar përdoruesit të vlerësojnë këngët. Këngët me një vlerësim 5 yje konsiderohen këngët më të mira ndërsa këngët me një vlerësim 1 yll supozohet se janë disa nga këngët më të këqija. Për qëllimet tona, ne do të supozojmë se çdo këngë që i mungon një vlerësim (aka 0 yje) është ajo që përdoruesi nuk ka pasur shansin ta vlerësojë akoma. Personalisht, kur i vlerëson këngët, nëse një këngë ka një vlerësim me 1 yll, unë gjeni ndoshta është mjaft keq saqë nuk e meriton hapësirën e çmuar të hard diskut që zë kënga. Prandaj, Skenari Perl që do t'ju paraqes në këtë Instructable do të analizojë përmes Bibliotekës iTunes dhe do të fshijë çdo këngë që i është caktuar një vlerësim me 1 yll. Si një bonus shtesë, këngët mund të vlerësohen ndërsa përdoruesi është në lëvizje duke përdorur një iPod. Në këtë mënyrë, ju mund të zgjidhni këngë për fshirje ndërsa jeni në lëvizje thjesht duke i vlerësuar ato, dhe ato do të fshihen automatikisht kur sinkronizoni iPod -in tuaj me kompjuterin tuaj më vonë (nëse e sinkronizoni automatikisht iPod -in tuaj me kompjuterin tuaj). Tani që e dimë se çfarë po bëjmë, le të shohim se si do të tërheqim informacionin e këngës nga iTunes për Perl Script.

Hapi 3: Biblioteka XML: ITunes 'Goto Guy

Biblioteka XML: Goto Guy e ITunes
Biblioteka XML: Goto Guy e ITunes

Për të fshirë një këngë nga kompjuteri bazuar në vlerësimin e saj, ne kërkojmë 2 pjesë informacioni: vlerësimin e këngës dhe vendndodhjen e këngës. Për fat të mirë për ne ekziston një skedar i dobishëm nga i cili mund të marrim të gjithë informacionin që kemi dashur ndonjëherë për iTunes nga: skedari XML i Bibliotekës së Muzikës iTunes. Skedari XML quhet "iTunes Music Library.xml" dhe duhet të jetë i vendosur në drejtorinë tuaj të Muzikës në Hard Drive -in tuaj kryesor.

Rreth skedarit XML: Skedari iTunes xml është një lloj baze të dhënash e mirëmbajtur nga iTunes, dhe e mbajtur gjithmonë e përditësuar. Kur bëhet një modifikim në iTunes, pjesa përkatëse e skedarit iTunes XML modifikohet për të vënë re këtë ndryshim. Një hyrje e mostrës nga skedari im iTunes XML jepet më poshtë: 1218Track ID1218NameTake On MeArtistA-HaGenre80's Skedari audio MPEGSize3682382 Koha totale230138Data e modifikuar2007-09-24T02: 11: 30Zatimi i shtuar2008-05-28T05: 0022482 25T01: 26: 58ZRating40Album Vlerësimi40Album Rating ComputedPeristent ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20Album3MeriteniFormëFormë20 skedari XML përbëhet nga vlera të rrethuara nga etiketa të stilit HTML. Për qëllimet e skenarit, ne do të jemi të interesuar në pjesët e informacionit të Track ID, Emri, Artisti, Vlerësimi dhe Vendndodhja. Nëse po shikoni skedarin XML, mund të vini re nga lart se kjo këngë ka një "vlerësim" prej 40. iTunes i cakton secilës këngë një numër të plotë, duke filluar nga 0 në 100, me çdo 20 pikë që është një yll shtesë për vlerësimin. Pra, një vlerësim prej 20 korrespondon me një vlerësim me 1 yll, një vlerësim prej 40 është një vlerësim me 2 yje, dhe kështu me radhë, me 100 që është një vlerësim me 5 yje. Pra, tani që dimë për skedarin XML, le të fillojmë skriptimin

Hapi 4: Miku juaj Hash (edhe nëse nuk jeni në Amsterdam)

Miku juaj Hash (edhe nëse nuk jeni në Amsterdam)
Miku juaj Hash (edhe nëse nuk jeni në Amsterdam)

Para se të mund të eliminojmë skedarët, na duhet një bazë të dhënash pune që lidh të gjitha informacionet e këngës së bashku. Ndërsa strukturat më të sofistikuara të të dhënave, të tilla si një grup hash ose hash hashes, mund të përdoren, ky skenar është mjaft i thjeshtë për të merituar përdorimin e një liste të thjeshtë të hashes. Për të pa inicuarit, një hash nuk është asgjë më shumë se një grup i cili indeksohet me vargje, ose një masë të përzier çiftesh çelës/vlerë. Dikush mund të mendojë për një hash si një fuçi të madhe me gjëra (vlera) në të, dhe gjithçka në fuçinë metaforike ka një etiketë (çelësat) të bashkangjitur. Ju mund të tërhiqni çdo send në fuçi thjesht duke gjetur etiketën e tij. Për më shumë informacion mbi hashet, lidhja e mëposhtme mund të jetë e dobishme: https://www.tutorialspoint.com/perl/perl_hashes.htmNe mund të përdorim informacionin që çdo kënge në skedarin iTunes XML i caktohet një ID unike e këngës për të mbajtur nën kontroll Kenget. Për shkak të kësaj, trackID bën një çelës ideal për hashet. Prandaj, ne mund të krijojmë 4 hash për titullin e këngës, artistin, vlerësimin dhe vendndodhjen. Pasi të jenë krijuar këto, ne mund të skanojmë skedarin dhe të mbushim bazën tonë të të dhënave hash duke përdorur disa shprehje të thjeshta të rregullta, të cilat do të shfaqen më tej.

Hapi 5: Një mësim (shumë) i shkurtër mbi shprehjet e rregullta

Në mënyrë që të kapim shënimet tona të hash nga skedari XML, dhe gjithashtu të kursejmë pak kohë në kërkim, ne do të dëshirojmë të kërkojmë ndihmën e një prej veçorive më të fuqishme të Perl: shprehjes së rregullt. Unë do të bëj një mësim shumë të shkurtër mbi shprehjet e rregullta, por për ata prej jush që duan shpjegime më të hollësishme, ka shumë mësime të mira të shprehjes së rregullt në internet. Shikoni https://perldoc.perl.org/perlretut.html për një mësim të mirë të shprehjes së rregullt. Me pak fjalë, shprehjet e rregullta na ofrojnë një sërë mjetesh për të kaluar nëpër vargje, duke zëvendësuar një varg me një varg tjetër, ose duke kursyer pjesë të një varg për përdorim të mëvonshëm. Shprehjet e rregullta ofrojnë 2 funksione, operatorët e përputhjes (m //) dhe zëvendësuesit (s //), që do të përdoren për këtë projekt. Për të përdorur njërën nga këto funksione në një kontekst të caktimit, ne do të përdorim operatorin lidhës të Perl (= ~), i cili përdoret për të lidhur një model me një variabël vargu të zgjedhur. Shembuj:

$ koment = ~ /Purduecer /; #kthehet e vërtetë nëse vargu i komenteve $ përmban frazën "Purduecer" s/[a-z]/[A-Z]/; #merr të gjitha shkronjat e vogla në varg dhe kapitalizoji ato në vargun $ _Një tipar i dytë i dobishëm i shprehjeve të rregullta është ai i variablave të kujtesës. Në shprehjet e rregullta, mund të vendosni artikuj të caktuar në kllapa, dhe më pas të përdorni variablat e kujtesës së modelit të përshtatjes së veçantë $ 1, $ 2, etj. Për të hyrë në pjesët e vargjeve që përputhen me këto pjesë më vonë.

/(Udhëzues) Roboti/; #Përputhni çdo rresht me frazën "Robot udhëzues" $ website = $ 1; #Ruani rezultatin e përputhjes së suksesshme të modeleve të përfshira në grupin e parë të parens #(në këtë rast, variabli $ 1 përmban "Instructables")Së fundi, në shprehjet e rregullta, ka disa karaktere që i shërbejnë një qëllimi të veçantë. Këto janë arratisje të pasme (të gjitha duhet të duken të njohura për programuesit C), klasa personazhesh dhe metakarakterë. Për shembull, për të përputhur çdo shkronjë të vetme që ka një skedë në të dyja anët, mund të themi

/\ t [a-zA-Z] t/Ato kllapa katrore përdoren në shprehje të rregullta për të përcaktuar një klasë karakteri. Supozoni, megjithatë, se ne donim të gjenim tekst të mbyllur në kllapa katrorë në rresht. Ne nuk mund ta shkruajmë ashtu siç është, siç tregohet më poshtë

/

/

Hapi 6: Zbatimi i shprehjeve të rregullta në Skenarin ITunes

Aplikimi i shprehjeve të rregullta në Skenarin ITunes
Aplikimi i shprehjeve të rregullta në Skenarin ITunes

Tani që shpresojmë se kemi një ide mbi konceptet themelore themelore që fuqizojnë shprehjet e rregullta, është koha t'i zbatojmë ato në skenarin iTunes. Kur lexoni kodin xml, disa karaktere, të tilla si pjerrësia përpara, hasen mjaft shpesh. Prandaj, ne do të përfitojmë nga fakti që operatori m // ju lejon të zgjidhni çfarëdo kufizues që dëshironi në kod (ne do të përdorim kllapa katrore, megjithëse përcaktuesit e tjerë me siguri do të funksionojnë) Së pari, ne vetëm duhet të lexojmë një pjesë të skedarin e plotë iTunes XML. Pjesët e skedarit që përmbajnë informacione si listat për luajtje, etj. Nuk janë të nevojshme. Linja e parë e seksionit të listave për luajtje, e cila vjen pas informacionit të këngës, duket si në vijim: Listat për luajtje Prandaj, në një lak kohor, ne mund të shtojmë në një deklaratë që hidhet në fund të leximit të skedarit nëse haset në atë linjë.

ndërsa () {#loop_instructions_here fundit nëse ($ _ = ~ m [Lista për luajtje])}Tjetra, për të ndërtuar ID-të e hash, ne mund të përdorim një pemë if-elsif për të ndërtuar hashet e bazës së të dhënave tona, duke përdorur variablat e përputhjes së kujtesës për të cilat mësuam në hapin e mëparshëm për të ruajtur vlerat në hashe

nëse ($ _ = ~ m [( d+)]) {$ id = $ 1; } elsif ($ _ = ~ m [Vlerësimi ( d+)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Emri (.+)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Artist (.+)]) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Skedari i vendndodhjes: // localhost (.*)]) {$ loc_hash {$ id} = $ 1; }Tani që kemi ndërtuar bazën e bazës së të dhënave tona hash, ne do të mbulojmë gjetjen dhe heqjen e skedarëve 1-Star, kështu që në hapin tjetër!

Hapi 7: Gjetja dhe Fshirja e atyre Gjurmëve me 1 Yje

Gjetja dhe fshirja e atyre gjurmëve me 1 yll
Gjetja dhe fshirja e atyre gjurmëve me 1 yll

Tani që kemi krijuar bazën e të dhënave tona, është koha për të kërkuar gjurmët me 1 yll, në mënyrë që t'i fshijmë ato. Perl siguron një strukturë të dobishme looping të quajtur një lak foreach që mund të përdoret për të përsëritur në të gjithë çelësat e hash -ve tanë. Duhet të theksohet se jo çdo këngë në bibliotekën tuaj iTunes do të ketë një hyrje në hash -in e vlerësimeve. Kjo ndodh sepse këngëve që nuk kanë një vlerësim nuk u jepet një linjë vlerësimi e pjesës në skedarin iTunes XML. Prandaj, kur bëjmë rreth nëpër hashe, ne do të duam të përdorim konstruktin e mëposhtëm:

$ foreach (rendit çelësat %rate_hash) { #… fut kodin e lakimit këtu}Pas kësaj, është aq e thjeshtë sa të përdorni pohimin e mëposhtëm

shkëput lidhjen $ loc_hash {$ id} nëse $ rate_hash {$ id} == 20;Funksioni i shkëputjes i përdorur në kodin e mësipërm është mënyra e Perl për fshirjen e skedarëve. Ju mund të tundoheni të përdorni një thirrje sistemi në funksionin e fshirjes së sistemit tuaj operativ, por për arsye transportueshmëri kodi që kam shkruar nuk përdor thirrjen e sistemit. Tani kemi strukturën bazë për kodin tonë. Në hapat e mëposhtëm, ne do të bëjmë disa përsosje të kodit në mënyrë që të keni një skenar me funksion të plotë, funksional për të hequr qafe ato yje të bezdisshëm 1.

Hapi 8: URI arratiset dhe si t’i kapërcejmë

Nëse përpiqeni të ekzekutoni skenarin ashtu siç është, do të hasni në gabime të shumta nga sistemi juaj operativ dhe nëse shikoni shtigjet e skedarëve që po përpiqeni të fshini, mund të gjeni karaktere të pazakonta të ngulitura në rrugët që janë të padëshirueshme. Ekziston një shans mjaft i mirë që këto shtigje të përmbajnë karaktere shpëtimi URI. Cilat janë arratisjet URI? Në HTML dhe XML, karakteret e arratisjes URI (aka arratisjet URI) janë metakarakterë të veçantë të përdorur për të kërkuar raste rastësore të atij karakteri. Për shembull, nuk do të shihni kurrë një hapësirë të bardhë të thjeshtë në një varg karakteresh XML. Sidoqoftë, do të shihni përfaqësimin XML të një hapësire të thjeshtë të bardhë, %20. (Me siguri i keni parë këto në shiritin e URL-së në shfletuesin tuaj dhe keni pyetur veten se çfarë ishin. Epo, tani e dini) Një arratisje URI përbëhet nga një shenjë % e ndjekur nga një kod heksadecimal 2-shifror që përfaqëson vlerën ASCII të personazhit. Në këtë pikë, mund të shkruani një bandë të tërë deklaratash zëvendësuese në hash -in e vendndodhjes për të zëvendësuar çdo metakarakter të mundshëm që hasni (p.sh. $ loc_hash {$ id} = s/%20//; dhe kështu me radhë). Për fat të mirë, megjithatë, Perl ofron një mënyrë më të mirë për t'u kujdesur për këto gjëra. Perl vjen së bashku me një modul të quajtur URI:: Escape, i cili ka një funksion të integruar, uri_unescape, që do të bëjë punën për të eleminuar arratisjet e URI për ne Me Për të përdorur modulin, thjesht shtoni rreshtin e mëposhtëm në krye të kodit tuaj:

përdorni URI:: Escape;Tani, pasi caktojmë grupin $ loc_hash {$ id} në lakun e skedarit XML, mund të shtojmë rreshtin e mëposhtëm më pas

uri_unescape ($ loc_hash {$ id});Linja e mësipërme eleminon automatikisht çdo karaktere shpëtimi URI. Si një bonus shtesë, ai përkthen gjithashtu disa karaktere ndërkombëtare. Unë e drejtova skenarin me disa skedarë që kishin konji japoneze në to, dhe funksioni uri_unescape përktheu formatet XML të atyre karaktereve në karakteret e tyre origjinale, në mënyrë që shkëputja të fshinte me sukses skedarin. Para se të vazhdojmë më tej, duhet të ndërmerret një hap shtesë Me Për arsye që nuk i kuptoj plotësisht, iTunes kodon simbolin ampersand (&) si & në vargjet e tij. Nëse dikush e di pse është kjo, ju lutem më tregoni. Ndërkohë, ne e eliminojmë këtë çështje duke shtuar rreshtin e mëposhtëm nën vijën uri_unescape

$ loc_hash {$ id} = ~ s/&#/&/;Tani skenari do të ketë shtigje skedari pa karaktere të çuditshme dhe funksioni i shkëputjes do të jetë në gjendje të gjejë skedarë në vendet e tyre të duhura për t'i fshirë ato. Epo, do të ndodhë nëse përdorni Mac OSX (dhe me sa duket edhe shumicën e OS-ve të tjera të bazuara në Unix). Lexoni për ta bërë skriptin të pajtueshëm me sisteme të tjera operative (domethënë, Windows).

Hapi 9: Shtimi i pajtueshmërisë së skriptit në Windows

Shtimi i pajtueshmërisë së skenarëve në Windows
Shtimi i pajtueshmërisë së skenarëve në Windows

Skenari, siç është shkruar deri më tani, heq efektivisht gjurmët në sistemet operative të bazuara në Unix. Për ta bërë atë të funksionojë në Windows, nevojitet një shtesë e vogël. Ndryshe nga Mac dhe sistemet e tjera të bazuara në Unix, Windows nuk e mbështet konceptin e një drejtorie të vetme rrënjë. Prandaj, të gjithë emrat e rrugëve fillojnë me një vëllim (C: ose E: ose ndonjë shkronjë tjetër që mund të mendoni, për këtë çështje) në krahasim me drejtorinë rrënjë (/). Për fatin tonë të mirë, Perl ka një ndryshore të veçantë, $O (ky është një kapital o, jo një zero), që na tregon se çfarë sistemi operativ po përdorim aktualisht. Pra, nëse vlera e ruajtur në atë ndryshore përmban "Win", ne do të dëshirojmë të heqim skajin kryesor në skedarin tonë të vendndodhjes XML. Kjo mund të bëhet me linjën e mëposhtme të kodit (e shtuar pasi kemi analizuar me sukses vendndodhjen e një pjese nga skedari XML):

$ loc_hash {$ id} = substr ($ loc_hash {$ id}, 1) nëse $^O = ~ /Win /i;Tani, skenari do të funksionojë nëse është i ekzekutuar në OS X ose Windows.

Hapi 10: Skenari i Plotësuar

Skenari i Përfunduar
Skenari i Përfunduar

Bashkangjitur është versioni im i skenarit të përfunduar të autodeletionit të iTunes, për ata prej jush që thjesht donin produktin përfundimtar dhe jo shpjegimin se si funksionon.

Për të përdorur skriptin, do të dëshironi ta ruani skedarin si një skedar perl (.pl extension) dhe më pas ta bëni atë të ekzekutueshëm (chmod 751 në Unix, nuk jam i sigurt se çfarë është për sistemet Windows).

Recommended: