Orodha ya maudhui:

Futa Nyimbo zile zisizohitajika za iTunes kutoka kwa Kompyuta yako: Hatua 10
Futa Nyimbo zile zisizohitajika za iTunes kutoka kwa Kompyuta yako: Hatua 10

Video: Futa Nyimbo zile zisizohitajika za iTunes kutoka kwa Kompyuta yako: Hatua 10

Video: Futa Nyimbo zile zisizohitajika za iTunes kutoka kwa Kompyuta yako: Hatua 10
Video: Spack & Tundaman - Nipe Repoti 2024, Julai
Anonim
Futa Nyimbo Hizo zisizotakikana za iTunes kutoka kwa Kompyuta yako
Futa Nyimbo Hizo zisizotakikana za iTunes kutoka kwa Kompyuta yako

Haya kuna mabibi na mabwana, hii ndio njia yangu ya kwanza ya kuweka nambari, kwa hivyo tafadhali, wakati wa kutoa maoni, acha bunduki zako nyumbani (visu vinakubalika, hata hivyo) Pamoja na ujio wa wachezaji wa mp3, imewezekana kwa watu kubeba kiasi ambacho hakijawahi kutokea ya muziki karibu nao mifukoni mwao. Sio kawaida kusikia juu ya watu kuwa na makusanyo ya nyimbo 5, 10, hata elfu 15 (na watu wengine, hata zaidi). Kati ya wachezaji wa mp3, hakuna maarufu zaidi kuliko iPod ya Apple na programu inayoiendesha, iTunes. Na kwa maktaba kubwa kama haya ya muziki, inaweza kuwa ngumu kuchomoa nyimbo ambazo hazionekani kuwa nzuri au zinavutia. wewe tena. Inaweza kuchukua miaka kufuata wimbo kupitia mkusanyiko wako wa muziki kwenye iTunes na kuondoa nyimbo ambazo hupendi. Hapo ndipo hii inaweza kufundishwa. Katika hii inayoweza kufundishwa, nitakuonyesha njia ya kuondoa nyimbo kiotomatiki hiyo ni mbaya tu, na msaada kutoka kwa rafiki yangu mzuri, Perl. Ujuzi mzuri wa kimsingi wa Perl husaidia sana wakati unajaribu kurudia hii inayoweza kufundishwa, ingawa haihitajiki na itafanya kazi vizuri). Kwa wale wanaopenda Perl, ninapendekeza sana kitabu "Learning Perl" kutoka kwa O'Reilly, ni kusoma vizuri na mojawapo ya vitabu vilivyoandikwa vyema juu ya Perl nimepata nafasi ya kusoma. MUHIMU: Wakati njia zilizowasilishwa hapa zitafanya kazi. ikiwa imefanywa kwa usahihi, siwezi na kwa urahisi sitakubali jukumu lolote ikiwa utafanya jambo la kijinga na kufuta nyimbo zako za thamani. Tafadhali fikiria kwa nguvu kuhifadhi faili zako za muziki kabla ya kujaribu kuandika au kutekeleza hati kama ifuatayo. Kosea tu upande wa tahadhari ili tusiwe na hisia zozote zikiumiza ikiwa sio, asante. Soma onyo? (Ndio, hata wewe, mtu ambaye haukusoma onyo) Kubwa! Wacha tuanze:-) Sasisha: Inaonekana waandikaji wengine wa perl wamekuwa wakifanya kazi ngumu kuandika maandishi ya iTunes. Kwa maandishi anuwai yanayohusiana na iTunes, angalia Hati za Teridon.

Hatua ya 1: Kuanza

Kuanza
Kuanza

Kama ilivyo kwa vitu vyote, kuna maandalizi kidogo ambayo yanahitajika kufanywa kabla ya kuanza hati hii. Kwa hivyo, vitu utahitaji kufuta otomatiki nyimbo kutoka iTunes: 1) Kompyuta (duh) 2) iTunes (mara mbili duh) 3) Perl (ngumu kuendesha hati ya Perl bila Perl, si ungesema?) 4) Yako mhariri kipenzi (mimi ni msaidizi wa vi na vim mwenyewe, lakini mhariri wa maandishi anapaswa kufanya ujanja) 5) iPod (sio lazima, lakini ni nzuri kuwa na sababu ambazo zitawekwa wazi hivi karibuni vya kutosha) Kupata Perl: Fuata Maagizo hapa, yanapaswa kuwa rahisi kwa kutosha: Ikumbukwe kwamba hati hiyo ilitengenezwa awali kwa Mac OS X, ingawa njia hizo hizo zinapaswa kufanya kazi kwenye OS zisizo za Unix kama vile Windows. Wakati wa sehemu ya kuchosha, ya "elimu" ya inayoweza kufundishwa.

Hatua ya 2: Wazo la Msingi la Hati

iTunes inajumuisha mfumo wa nyota 5 kuruhusu watumiaji kukadiria nyimbo. Nyimbo zilizo na ukadiriaji wa nyota 5 zinachukuliwa kuwa nyimbo bora wakati nyimbo zilizo na ukadiriaji wa nyota 1 zinachukuliwa kuwa nyimbo mbaya zaidi. Kwa madhumuni yetu, tutafikiria kwamba wimbo wowote ambao hauna kiwango (aka nyota 0) ni ule ambao mtumiaji bado hajapata nafasi ya kukadiria. Binafsi, wakati wa kukadiria nyimbo, ikiwa wimbo una alama ya nyota 1, mimi pata labda ni mbaya sana kwamba haistahili nafasi ya thamani ya diski ngumu ambayo wimbo unachukua. Kwa hivyo, Hati ya Perl nitakayowasilisha kwako katika Maagizo haya itapita kwenye Maktaba ya iTunes na kufuta wimbo wowote ambao umepewa ukadiriaji wa nyota 1. Kama bonasi iliyoongezwa, nyimbo zinaweza kupimwa wakati mtumiaji yuko safarini kutumia iPod. Kwa njia hii, unaweza kuchagua nyimbo za kufutwa ukiwa safarini kwa kuzipima, na zitafutwa kiatomati wakati unasawazisha iPod yako kwenye kompyuta yako baadaye (ikiwa unasawazisha iPod yako moja kwa moja kwenye kompyuta yako). Sasa tunajua nini tunafanya, wacha tuone ni vipi tutavuta habari za wimbo kutoka iTunes kwa Hati ya Perl.

Hatua ya 3: Maktaba ya XML: Goto Guy ya ITunes

Maktaba ya XML: IToto 'Goto Guy
Maktaba ya XML: IToto 'Goto Guy

Ili kufuta wimbo kutoka kwa kompyuta kulingana na ukadiriaji wake, tunahitaji vipande 2 vya habari: ukadiriaji wa wimbo na eneo la wimbo. Kwa bahati nzuri kwetu kuna faili rahisi ambayo tunaweza kupata habari zote ambazo tumewahi kutaka kuhusu iTunes kutoka: faili ya XML ya Maktaba ya Muziki ya iTunes. Faili ya XML inaitwa "Maktaba ya Muziki ya iTunes.xml" na inapaswa kuwa kwenye saraka yako ya Muziki kwenye Hifadhi yako kuu ya Hard.

Kuhusu faili ya XML: Faili ya xml ya iTunes ni aina ya hifadhidata inayotunzwa na iTunes, na kila wakati inaendelea kusasishwa. Wakati muundo unafanywa katika iTunes, sehemu inayolingana ya faili ya iTunes XML inarekebishwa ili kutambua mabadiliko haya. Kiingilio cha mfano kutoka kwa faili yangu ya iTunes XML imepewa hapa chini: 1218Track ID1218NameTake On MeArtistA-HaGenre80'sKindMPEG faili ya sautiSize3682382Total Time230138Date Modified2007-09-24T02: 11:30 25T01: 26: 58ZRating40Album Rating40Album Rating IliyokadiriwaSifa ya ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20Album/Take%20On%20Me.mp31 faili ya XML ina maadili yaliyozungukwa na vitambulisho vya mtindo wa HTML. Kwa madhumuni ya hati, tutavutiwa na Kitambulisho cha Kufuatilia, Jina, Msanii, Ukadiriaji, na Sehemu za habari. Ikiwa unatafuta faili ya XML, unaweza kugundua kutoka juu kuwa wimbo huu una "rating" kati ya 40. iTunes inapeana kila wimbo kuwa nambari kamili, kuanzia 0 hadi 100, na kila alama 20 ikiwa nyota ya ziada kwa ukadiriaji. Kwa hivyo, alama ya 20 inalingana na ukadiriaji wa nyota 1, alama ya 40 ni alama ya nyota 2, na kadhalika, na 100 ikiwa alama ya nyota 5. Kwa hivyo sasa kwa kuwa tunajua juu ya faili ya XML, wacha tuanze kuandikia

Hatua ya 4: Rafiki yako Hash (hata ikiwa hauko Amsterdam)

Rafiki yako Hash (hata ikiwa hauko Amsterdam)
Rafiki yako Hash (hata ikiwa hauko Amsterdam)

Kabla tunaweza kuondoa faili, tunahitaji hifadhidata inayofanya kazi inayohusiana habari zote za wimbo pamoja. Wakati miundo ya kisasa zaidi ya data, kama safu ya hashes au hash ya hashes, inaweza kutumika, hati hii ni rahisi kutosha kustahili matumizi ya orodha rahisi ya hashes. imeorodheshwa na nyuzi, au misa iliyochanganywa ya jozi muhimu / za thamani. Mtu anaweza kufikiria hash kama pipa kubwa iliyo na vitu (maadili) ndani yake, na kila kitu kwenye pipa la sitiari kina tepe (funguo) zilizoambatanishwa. Unaweza kuvuta kipengee chochote kwenye pipa nje kwa kutafuta lebo yake. Kwa habari zaidi juu ya hashes, kiunga kifuatacho kinaweza kuwa na manufaa: nyimbo. Kwa sababu ya hii, trackID hufanya ufunguo bora wa hashes. Kwa hivyo, tunaweza kusanidi hashes 4 za kichwa cha wimbo, msanii, ukadiriaji, na eneo. Mara tu hizi zikianzishwa, tunaweza kuchanganua faili na kujaza hifadhidata yetu ya hashi kwa kutumia maneno rahisi ya kawaida, ambayo yataonyeshwa baadaye.

Hatua ya 5: Somo fupi (sana) juu ya Maneno ya Kawaida

Ili kunyakua maingizo yetu ya hash kutoka kwa faili ya XML, na pia kuokoa muda kidogo utaftaji, tutataka kuomba msaada wa moja ya huduma zenye nguvu zaidi za Perl: usemi wa kawaida. Nitafanya somo fupi sana juu ya misemo ya kawaida, lakini kwa wale ambao wanataka maelezo ya kina, kuna mafunzo mengi mazuri ya usemi wa kawaida mkondoni. Angalia https://perldoc.perl.org/perlretut.html kwa mafunzo mazuri ya kujieleza mara kwa mara. kamba kwa matumizi ya baadaye. Maneno ya kawaida hutoa kazi 2, wafananishaji (m //) na waendeshaji badala (s //), ambazo zitatumika kwa mradi huu. Kutumia moja ya kazi hizi katika muktadha wa zoezi, tutatumia mwendeshaji wa kumfunga wa Perl (= ~), ambayo hutumiwa kumfunga muundo kwa utofautishaji wa kamba ya chaguo.

$ maoni = ~ / Purduecer /; #inarudi kweli ikiwa kamba ya maoni ya $ ina maneno "Purduecer" s / [a-z] / [A-Z] /; #chukua herufi zote ndogo katika kamba na uziwekeze kwa $ _ kambaKipengele cha pili muhimu cha usemi wa kawaida ni ile ya vigeuzi vya kumbukumbu. Katika usemi wa kawaida, unaweza kuweka vitu kadhaa kwenye mabano, na kisha utumie vigeuzi maalum vya kumbukumbu ya muundo wa $ 1, $ 2, n.k. kupata sehemu za kamba ambazo zililingana na sehemu hizi baadaye.

/ (Maagizo) Roboti /; #Match mstari wowote na kifungu "Roboti ya Maagizo" $ tovuti = $ 1; # Hifadhi matokeo ya mechi iliyofanikiwa iliyo kwenye seti ya kwanza ya parens # (katika kesi hii, $ 1 inayobadilika ina "Maagizo")Mwishowe, katika misemo ya kawaida, kuna wahusika fulani ambao hutimiza kusudi maalum. Hizi ni kutoroka kwa kurudi nyuma (ambayo yote inapaswa kuonekana kuwa ya kawaida kwa waandaaji wa C), darasa za tabia na metacharacters. Kwa mfano, kulinganisha barua yoyote ambayo ina tabo upande wowote, tunaweza kusema

/ / t [a-zA-Z] t /Mabano hayo ya mraba hutumiwa katika misemo ya kawaida kufafanua darasa la tabia. Tuseme, hata hivyo, kwamba tulitaka kupata maandishi yaliyofungwa kwenye mabano ya mraba kwenye mstari. Hatungeweza tu kuiandika kama ilivyo, kama inavyoonyeshwa hapa chini

/

/

Hatua ya 6: Kutumia Maneno ya Kawaida kwa Hati ya ITunes

Kutumia Maneno ya Kawaida kwa Hati ya ITunes
Kutumia Maneno ya Kawaida kwa Hati ya ITunes

Sasa kwa kuwa tunatumahi kuwa na maoni juu ya dhana za kimsingi zinazowezesha misemo ya kawaida, ni wakati wa kuyatumia kwa hati ya iTunes. Wakati wa kusoma nambari ya xml, wahusika fulani, kama vile kufyeka mbele, wanakutana mara kwa mara. Kwa hivyo, tutachukua faida ya ukweli kwamba m // mwendeshaji tuchague wachaghai wowote unaotaka kwenye nambari (tutatumia mabano ya mraba, ingawa watenguaji wengine watafanya kazi) Kwanza, tunahitaji kusoma sehemu ya faili kamili ya iTunes XML. Sehemu za faili iliyo na habari kama orodha za kucheza, nk sio lazima. Mstari wa kwanza wa sehemu ya orodha ya kucheza, ambayo huja baada ya habari ya wimbo, inaonekana kama ifuatavyo: Orodha za kucheza Kwa hivyo, kwa kitanzi kidogo, tunaweza kuongeza katika taarifa ambayo inaruka hadi mwisho wa usomaji wa faili ikiwa mstari huo unakutana.

wakati () {#upatao_maagizo_hapa mwisho ikiwa ($ _ = ~ m [Orodha za kucheza])}Ifuatayo, kujenga vitambulisho vya hashi, tunaweza kutumia mti wa if-elsif kujenga hesabu zetu za hifadhidata, tukitumia vigeuzi vya mechi ya kumbukumbu tuliyojifunza katika hatua ya awali ya kuokoa maadili kwenye hashes

ikiwa ($ _ = ~ m [( d +)]) {$ id = $ 1; } elsif ($ _ = ~ m [Ukadiriaji ( d +)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Jina (. +)] {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Msanii (. +)] {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Faili ya mahali: // localhost (. *)]) {$ loc_hash {$ id} = $ 1; }Sasa kwa kuwa tumeunda msingi wa hifadhidata yetu ya hashi, tutashughulikia kutafuta na kuondoa faili za 1-Star, na kuendelea kwa hatua inayofuata!

Hatua ya 7: Kupata na Kufuta Nyimbo hizo za 1-Star

Kupata na Kufuta Nyimbo hizo za 1-Star
Kupata na Kufuta Nyimbo hizo za 1-Star

Sasa kwa kuwa database yetu imewekwa, ni wakati wa kuwinda nyimbo za nyota 1, ili tuweze kuzifuta. Perl hutoa ujenzi unaofaa unaoitwa kitanzi cha foreach ambacho kinaweza kutumiwa kupunguzia juu ya funguo zote za hashes zetu. Ikumbukwe kwamba sio kila wimbo kwenye maktaba yako ya iTunes utakuwa na kiingilio katika upimaji wa alama. Hii ni kwa sababu nyimbo ambazo hazina ukadiriaji hazijapewa laini ya ukadiriaji wa wimbo katika faili ya iTunes XML. Kwa hivyo, wakati tunatembea kwa haraka, tutataka kutumia ujenzi ufuatao:

foreach $ id (panga vitufe% rate_hash) {#… weka nambari ya kufungua hapa}Baada ya hapo, ni rahisi kama kutumia taarifa ifuatayo

ondoa $ loc_hash {$ id} ikiwa $ rate_hash {$ id} == 20;Kazi ya kutenganisha iliyotumiwa katika nambari ya mfano hapo juu ni njia ya Perl ya kufuta faili. Unaweza kushawishika kutumia simu ya mfumo kwa kazi ya kufuta ya mfumo wako wa uendeshaji, lakini kwa sababu za kuaminika kificho nilichoandika hakitumii simu ya mfumo. Sasa tuna muundo wa msingi wa nambari yetu. Katika hatua zifuatazo, tutafanya marekebisho kadhaa kwa nambari ili uweze kuwa na maandishi kamili, ya kazi ili kuondoa nyota hizo zenye uchungu 1.

Hatua ya 8: URI Inatoroka na Jinsi ya Kuzunguka

Ukijaribu kutumia hati kama ilivyo, utapata makosa mengi kutoka kwa mfumo wako wa kufanya kazi, na ukiangalia njia za faili unazojaribu kufuta, unaweza kupata herufi zisizo za kawaida zilizowekwa katika njia ambazo hazifai. Kuna nafasi nzuri sana kwamba njia hizi zina wahusika wa kutoroka URI. Katika HTML na XML, herufi za kutoroka URI (kutoroka kwa URI) ni metacharacter maalum zinazotumiwa kutafuta visa halisi vya mhusika huyo. Kwa mfano, hautawahi kuona nafasi nyeupe kwenye kamba ya herufi ya XML. Hata hivyo, utaona uwakilishi wa XML wa nafasi nyeupe nyeupe,% 20. (Hakika umeyaona haya kwenye mwambaa wa URL kwenye kivinjari chako na ukajiuliza ni nini. Kweli, sasa unajua) Kutoroka kwa URI kuna ishara% ikifuatiwa na nambari ya hexadecimal yenye nambari 2 inayowakilisha mhusika Thamani ya ASCII. uhakika, unaweza kuandika rundo zima la taarifa juu ya eneo hashi kuchukua nafasi ya metacharacter inayowezekana ambayo unakutana nayo (yaani $ loc_hash {$ id} = ~ s /% 20 / /; na kadhalika). Kwa bahati nzuri, ingawa, Perl hutoa njia bora ya kutunza vitu hivi. Perl huja pamoja na moduli iitwayo URI:: Escape, ambayo ina kazi ya kujengwa, uri_unescape, ambayo itafanya kazi ya kutenganisha kutoroka kwa URI kwetu. Kutumia moduli, ongeza tu laini ifuatayo juu ya nambari yako:

tumia URI:: Escape;Sasa, baada ya kugawa safu ya $ loc_hash {$ id} katika kitanzi cha faili cha XML, tunaweza kuongeza laini ifuatayo baadaye

uri_unescape ($ loc_hash {$ id});Mstari hapo juu huondoa kiwambo herufi zozote za kutoroka za URI. Kama bonasi iliyoongezwa, inatafsiri wahusika wengine wa kimataifa pia. Niliendesha maandishi na njia kadhaa za faili ambazo zilikuwa na konji ya Kijapani, na kazi ya uri_unescape ilitafsiri fomati za XML za herufi hizo kwa herufi zao za asili ili unganisho lifaulu kufuta faili. Kabla ya kuendelea, hatua moja ya ziada lazima ichukuliwe. Kwa sababu ambazo sielewi kabisa, iTunes husimba alama ya ampersand (&) kama & katika nyuzi zake. Ikiwa mtu yeyote anajua ni kwanini hii, tafadhali nijulishe. Wakati huo huo, tunamaliza suala hili kwa kuongeza laini ifuatayo chini ya laini ya uri_unescape

$ loc_hash {$ id} = ~ s / &#/ & /;Sasa hati itakuwa na njia za faili wazi wahusika wa kushangaza, na kazi ya kutenganisha itaweza kupata faili katika maeneo yao sahihi kuzifuta. Vizuri, itakuwa ikiwa unatumia Mac OSX (na labda OS nyingi zenye msingi wa Unix pia). Soma juu ya kufanya hati kuendana na mifumo mingine ya uendeshaji (ambayo ni, Windows).

Hatua ya 9: Kuongeza Utangamano wa Hati kwa Windows

Kuongeza Utangamano wa Hati kwa Windows
Kuongeza Utangamano wa Hati kwa Windows

Hati hiyo, kama ilivyoandikwa hadi sasa, inaondoa vyema nyimbo kwenye mifumo ya uendeshaji inayotegemea Unix. Ili kuifanya ifanye kazi kwenye Windows, nyongeza moja ndogo inahitajika. Tofauti na Mac na OS zingine zenye msingi wa Unix, Windows haiungi mkono dhana ya saraka moja ya mizizi. Kwa hivyo, majina yote ya njia huanza na ujazo (C: au E: au barua nyingine yoyote unayoweza kufikiria, kwa jambo hilo) kinyume na saraka ya mizizi (/). Kwa bahati nzuri kwetu, Perl ana tofauti maalum, $O (hiyo ni mtaji o, sio sifuri), ambayo inatuambia ni mfumo gani wa uendeshaji tunatumia sasa. Kwa hivyo, ikiwa dhamana iliyohifadhiwa katika ubadilishaji huo ina "Shinda", tutataka kuondoa upigaji risasi kwenye njia yetu ya faili ya XML. Hii inaweza kufanywa na laini ifuatayo ya nambari (imeongezwa baada ya kufanikisha eneo la wimbo kutoka kwa faili ya XML):

$ loc_hash {$ id} = substr ($ loc_hash {$ id}, 1) ikiwa $ ^ O = ~ / Win / i;Sasa, hati itafanya kazi ikiwa inaendeshwa kwenye OS X au Windows.

Hatua ya 10: Hati iliyokamilika

Hati iliyokamilika
Hati iliyokamilika

Kilichoambatishwa ni toleo langu la hati iliyokamilika ya utaftaji wa iTunes, kwa wale ambao walitaka tu bidhaa ya mwisho na sio maelezo juu ya jinsi inavyofanya kazi.

Kutumia hati utataka kuhifadhi faili kama faili ya perl (ugani wa.pl) na kisha uifanye kutekelezwa (chmod 751 katika Unix, usijui ni nini kwa mifumo ya Windows).

Ilipendekeza: