Satura rādītājs:

Izdzēsiet šīs nevēlamās iTunes dziesmas no datora: 10 soļi
Izdzēsiet šīs nevēlamās iTunes dziesmas no datora: 10 soļi

Video: Izdzēsiet šīs nevēlamās iTunes dziesmas no datora: 10 soļi

Video: Izdzēsiet šīs nevēlamās iTunes dziesmas no datora: 10 soļi
Video: РЕЦЕПТ МЕНЯ ПОКОРИЛ ТЕПЕРЬ ГОТОВЛЮ ТОЛЬКО ТАК ШАШЛЫК ОТДЫХАЕТ 2024, Jūlijs
Anonim
Izdzēsiet šīs nevēlamās iTunes dziesmas no sava datora
Izdzēsiet šīs nevēlamās iTunes dziesmas no sava datora

Sveiki, dāmas un kungi! Šī ir mana pirmā pamācāmā kodēšana, tāpēc, komentējot, lūdzu, atstājiet ieročus mājās (naži tomēr ir pieņemami). Līdz ar mp3 atskaņotāju parādīšanos cilvēkiem ir izdevies pārvadāt vēl nebijušas summas. mūziku apkārt ar viņiem kabatā. Nereti ir dzirdēts, ka cilvēkiem ir 5, 10, pat 15 tūkstošu dziesmu kolekcijas (un dažiem cilvēkiem pat vairāk). No mp3 atskaņotājiem neviens nav populārāks par Apple iPod un programmatūru, kas to vada, iTunes. Tomēr ar tik lielām mūzikas bibliotēkām var kļūt nedaudz apnicīgi atbrīvoties no dziesmām, kas vienkārši neizklausās labi vai pievilcīgi tu vairs. Var paiet ilgums, lai ietu pa dziesmām pa iTunes mūzikas kolekciju un atbrīvotos no dziesmām, kas jums nepatīk. Tieši šeit ir šī pamācība. Šajā pamācībā es jums parādīšu veidu, kā automātiski atbrīvoties no dziesmām kas ir vienkārši šausmīgi, palīdzot manam labam draugam Perlam. Labas pamatzināšanas par Perlu ir ārkārtīgi noderīgas, mēģinot atkārtot šo pamācību, lai gan tas nav nepieciešams (jūs noteikti varētu vienkārši paņemt gatavo kodu un nokopēt/ielīmēt un tas darbosies lieliski). Tiem, kurus interesē Perl, es ļoti iesaku O'Reilly grāmatu "Learning Perl", tā ir laba lasāmviela un viena no vislabāk rakstītajām grāmatām par Perlu, ko man ir bijusi iespēja izlasīt. SVARĪGI: Lai gan šeit piedāvātās metodes darbosies ja tas tiek darīts pareizi, es nevaru un vienkārši neuzņemšos nekādu atbildību, ja izdarīsit kaut ko stulbu un izdzēsīsit savas dārgās dziesmas. Lūdzu, stingri apsveriet mūzikas failu dublēšanu, pirms mēģināt rakstīt vai izpildīt šādu skriptu. Vienkārši kļūdieties piesardzīgi, lai mums nebūtu sāpīgas sajūtas, ja jums tas nenotiek, paldies. Lasīt brīdinājumu? (Jā, pat jūs, persona, kas brīdinājumu neizlasīja) Lieliski! Sāksim darbu:-) Atjauninājums: Šķiet, ka daži perl skriptori ir smagi strādājuši, rakstot iTunes skriptus. Lai uzzinātu dažādus ar iTunes saistītus skriptus, skatiet Teridona skriptus.

1. darbība. Darba sākšana

Darba sākšana
Darba sākšana

Tāpat kā ar visām lietām, pirms skripta palaišanas ir jāveic neliela sagatavošanās. Tātad, lietas, kas jums būs nepieciešams, lai automātiski izdzēstu dziesmas no iTunes: 1) dators (duh) 2) iTunes (dubultā duh) 3) Perl (vai nebūtu teikts, ka ir grūti izpildīt Perl skriptu bez Perl?) 4) Jūsu iecienītākais redaktors (es pats esmu vi un vim piekritējs, bet jebkuram teksta redaktoram tas jādara) instrukcijām, jābūt pietiekami vienkāršām: https://www.perl.com/download.csp Kad esat lejupielādējis, instalējis un gatavs darbam Perl, mēs vēlamies iegūt pamatinformāciju par to, ko mēs darām. Jāatzīmē, ka skripts sākotnēji tika izstrādāts operētājsistēmai Mac OS X, lai gan tām pašām metodēm vajadzētu darboties arī operētājsistēmās, kas nav balstītas uz Unix, piemēram, Windows. Laiks Instructable garlaicīgajai, er, "izglītojošajai" daļai.

2. darbība: skripta pamatideja

iTunes ietver 5 zvaigžņu vērtēšanas sistēmu, kas ļauj lietotājiem novērtēt dziesmas. Dziesmas ar 5 zvaigžņu vērtējumu tiek uzskatītas par labākajām dziesmām, savukārt dziesmas ar 1 zvaigžņu vērtējumu tiek uzskatītas par vienu no sliktākajām dziesmām. Mūsu nolūkā mēs pieņemsim, ka jebkura dziesma, kurai trūkst vērtējuma (aka 0 zvaigznes), ir tāda, kuru lietotājam vēl nav bijusi iespēja novērtēt. Personīgi, vērtējot dziesmas, ja dziesmai ir 1 zvaigznes vērtējums, es atrast, iespējams, ir pietiekami slikti, ka tā nav pelnījusi dārgo vietu cietajā diskā, ko dziesma aizņem. Tāpēc Perl skripts, ko es jums parādīšu šajā pamācībā, analizēs iTunes bibliotēku un izdzēsīs visus ierakstus, kuriem ir piešķirts 1 zvaigžņu vērtējums. Kā papildu bonuss dziesmas var novērtēt, kamēr lietotājs ir ceļā izmantojot iPod. Tādā veidā jūs varat izvēlēties dziesmas dzēšanai, atrodoties ceļā, vienkārši novērtējot tās, un tās tiks automātiski izdzēstas, kad vēlāk sinhronizēsit savu iPod ar datoru (ja automātiski sinhronizēsit savu iPod ar datoru). Tagad mēs zinām, kas mēs redzēsim, kā mēs iegūsim informāciju par dziesmām no iTunes Perla skriptam.

3. darbība: XML bibliotēka: ITunes Goto Guy

XML bibliotēka: ITunes Goto Guy
XML bibliotēka: ITunes Goto Guy

Lai izdzēstu dziesmu no datora, pamatojoties uz tās vērtējumu, mums ir nepieciešami divi dati: dziesmas vērtējums un dziesmas atrašanās vieta. Par laimi, mums ir ērts fails, no kura mēs varam iegūt visu informāciju, ko jebkad esam gribējuši par iTunes: no iTunes mūzikas bibliotēkas XML faila. XML failu sauc par "iTunes Music Library.xml", un tam jāatrodas jūsu galvenā cietā diska mūzikas direktorijā.

Par XML failu: iTunes xml fails ir sava veida datubāze, kuru uztur iTunes un kas vienmēr tiek atjaunināta. Kad iTunes tiek veiktas izmaiņas, tiek mainīta atbilstošā iTunes XML faila daļa, lai atzīmētu šīs izmaiņas. Ieraksta paraugs no mana iTunes XML faila ir norādīts zemāk: 1218Track ID1218NameTake On MeArtistA-HaGenre80'sKindMPEG audio fails Izmērs3682382Kopējais laiks 25T01: 26: 58ZRating40Album Rating40Album Rating ComputedPastistent ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20Album/Take%20e.info. XML fails sastāv no vērtībām, ko ieskauj HTML stila tagi. Skripta nolūkos mūs interesēs dziesmas ID, vārds, izpildītājs, vērtējums un atrašanās vietas informācijas biti. Ja skatāties XML failu, no augšas varat pamanīt, ka šīs dziesmas "vērtējums" ir 40. iTunes katrai dziesmai piešķir veselu skaitli, kas svārstās no 0 līdz 100, un katrs 20 punkts ir vērtējuma papildu zvaigzne. Tātad, vērtējums 20 atbilst 1 zvaigznes vērtējumam, 40 vērtējums ir 2 zvaigžņu vērtējums un tā tālāk, 100 ir 5 zvaigžņu vērtējums. Tagad, kad mēs zinām par XML failu, sāksim skriptēšanu

4. solis: jūsu draugam ir jācenšas (pat ja neesat Amsterdamā)

Tavs draugs hash (pat ja tu neatrodies Amsterdamā)
Tavs draugs hash (pat ja tu neatrodies Amsterdamā)

Lai mēs varētu izdzēst failus, mums ir nepieciešama darba datu bāze, kas apvieno visu informāciju par dziesmām. Lai gan var tikt izmantotas sarežģītākas datu struktūras, piemēram, jaucējmateriālu masas vai jaucējtiesas, šis skripts ir pietiekami vienkāršs, lai būtu lietderīgi izmantot vienkāršu jaucēju sarakstu. Nezinātājiem hash ir nekas cits kā masīvs, kas tiek indeksēts ar virknēm vai sajauktu atslēgu/vērtību pāru masu. Hashu var uzskatīt par lielu mucu, kurā ir lietas (vērtības), un visam, kas atrodas metaforiskajā mucā, ir pievienota atzīme (atslēgas). Jūs varat izvilkt jebkuru priekšmetu mucā, vienkārši atrodot tā tagu. Lai iegūtu plašāku informāciju par jaucējkrāniem, var noderēt šī saite: https://www.tutorialspoint.com/perl/perl_hashes.htm Mēs varam izmantot informāciju, ka katrai dziesmai iTunes XML failā ir piešķirts unikāls celiņa ID, lai izsekotu dziesmas. Šī iemesla dēļ trackID ir ideāla atslēga jaukšanai. Tāpēc mēs varam iestatīt 4 hash dziesmas nosaukumam, izpildītājam, vērtējumam un atrašanās vietai. Kad tie ir izveidoti, mēs varam skenēt failu un aizpildīt jaucējubāzi, izmantojot dažas vienkāršas regulāras izteiksmes, kas tiks parādītas tālāk.

5. solis: (ļoti) īsa nodarbība par regulārajām izteiksmēm

Lai izvilktu jaucējus no XML faila un ietaupītu arī laiku meklēšanai, mēs vēlamies lūgt palīdzību no vienas no Perla jaudīgākajām funkcijām - regulārās izteiksmes. Es darīšu ļoti īsu nodarbību par regulārajām izteiksmēm, bet tiem no jums, kuri vēlas detalizētākus paskaidrojumus, tiešsaistē ir daudz labu regulārās izteiksmes pamācību. Lai iegūtu labu regulārās izteiksmes pamācību, skatiet vietni https://perldoc.perl.org/perlretut.html. Īsāk sakot, regulārās izteiksmes sniedz mums virkni rīku, lai izietu virknes, aizstājot vienu virkni ar citu virkni vai saglabājot daļu virkne vēlākai lietošanai. Regulārās izteiksmes nodrošina 2 funkcijas - saskaņošanas (m //) un aizstāšanas (s //) operatorus, kas tiks izmantoti šim projektam. Lai kādu no šīm funkcijām izmantotu piešķiršanas kontekstā, mēs izmantosim Perla saistošo operatoru (= ~), kas tiek izmantots, lai saistītu modeli ar izvēlētu virknes mainīgo. Piemēri:

$ komentārs = ~ /Purduecer /; #atgriežas taisnība, ja $ komentāru virknē ir frāze "Purduecer" s/[a-z]/[A-Z]/; #Ievadiet visus mazos burtus virknē un rakstiet ar lielajiem burtiem $ _ virknēOtra noderīga regulāro izteiksmju iezīme ir atmiņas mainīgie. Regulārajās izteiksmēs varat ievietot noteiktus vienumus iekavās un pēc tam izmantot īpašos modeļa atbilstības atmiņas mainīgos $ 1, $ 2 utt., Lai vēlāk piekļūtu šīm daļām atbilstošajām virkņu daļām.

/(Instrukcijas) Robots/; #Saskaņojiet jebkuru rindu ar frāzi "Instructables Robot" $ website = $ 1; #Saglabāt veiksmīgas modeļa atbilstības rezultātu, kas ietverts pirmajā cilņu komplektā #(šajā gadījumā mainīgais $ 1 satur “Instructables”)Visbeidzot, regulārajās izteiksmēs ir noteiktas rakstzīmes, kurām ir īpašs mērķis. Tie ir slīpsvītras aizbīdņi (tiem visiem vajadzētu būt pazīstamiem C programmētājiem), rakstzīmju klases un meta rakstzīmes. Piemēram, lai atbilstu jebkuram burtam, kura abās pusēs ir cilne, mēs varētu teikt

/\ t [a-zA-Z] t/Šīs kvadrātiekavas tiek izmantotas regulārajās izteiksmēs, lai noteiktu rakstzīmju klasi. Pieņemsim, ka tomēr mēs vēlējāmies atrast rindā kvadrātiekavās ievietotu tekstu. Mēs nevarējām vienkārši uzrakstīt to tādu, kāds tas ir, kā parādīts zemāk

/

/

6. darbība. Regulāro izteiksmju lietošana ITunes skriptam

Regulāro izteiksmju piemērošana ITunes skriptam
Regulāro izteiksmju piemērošana ITunes skriptam

Tagad, kad mēs ceram, ka mums ir kāda nojausma par pamatjēdzieniem, kas nodrošina regulāras izteiksmes, ir pienācis laiks tos piemērot iTunes skriptam. Lasot xml kodu, noteiktas rakstzīmes, piemēram, slīpsvītra, sastopamas diezgan bieži. Tāpēc mēs izmantosim to, ka m // operators ļaus jums izvēlēties kodus, kādus norobežotājus vēlaties (mēs izmantosim kvadrātiekavas, lai gan citi atdalītāji noteikti darbosies) Pirmkārt, mums ir jāizlasa tikai daļa no pilnu iTunes XML failu. Faila daļas, kas satur informāciju, piemēram, atskaņošanas saraksti utt., Nav nepieciešamas. Atskaņošanas sarakstu sadaļas pirmā rinda, kas atrodas pēc informācijas par dziesmām, izskatās šādi: Atskaņošanas saraksti Tāpēc pēc kāda laika cikla mēs varam pievienot paziņojumu, kas pāriet uz faila nolasīšanas beigām, ja tiek konstatēta šī rinda.

kamēr () {#loop_instructions_here last if, ja ($ _ = ~ m [Atskaņošanas saraksti])}Tālāk, lai izveidotu jaukšanas ID, mēs varam izmantot koku if-elsif, lai izveidotu mūsu datu bāzes jaucējus, izmantojot atmiņas atbilstības mainīgos, par kuriem uzzinājām iepriekšējā solī, lai saglabātu vērtības jaucējkrānos

ja ($ _ = ~ m [(d+)]) {$ id = $ 1; } elsif ($ _ = ~ m [Vērtējums (d+)]) {$ rate_hash {$ id} = 1 USD; } elsif ($ _ = ~ m [Vārds (.+)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Izpildītājs (.+)]) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Locationfile: // localhost (.*)]) {$ loc_hash {$ id} = $ 1; }Tagad, kad esam izveidojuši savas hash datu bāzes pamatu, mēs apskatīsim vienas zvaigznes failu atrašanu un noņemšanu, tāpēc pārejiet pie nākamās darbības!

7. solis: vienas zvaigznes ierakstu atrašana un dzēšana

Šo 1 zvaigžņu ierakstu atrašana un dzēšana
Šo 1 zvaigžņu ierakstu atrašana un dzēšana

Tagad, kad mums ir izveidota datu bāze, ir pienācis laiks meklēt vienas zvaigznes ierakstus, lai tos varētu izdzēst. Perl nodrošina noderīgu cilpas konstrukciju, ko sauc par foreach cilpu, ko var izmantot, lai atkārtotu visas mūsu jaucējtaustiņas. Jāatzīmē, ka ne katram iTunes bibliotēkas ierakstam būs ieraksts vērtējumu jaukšanā. Tas ir tāpēc, ka dziesmām, kurām nav vērtējuma, iTunes XML failā netiek piešķirta celiņu vērtējuma līnija. Tāpēc, veicot cilpas, mēs vēlēsimies izmantot šādu konstrukciju:

foreach $ id (kārtošanas taustiņi %rate_hash) { #… ievietojiet šeit cilpas kodu}Pēc tam viss ir tik vienkārši, kā izmantot šo paziņojumu

atsaistīt $ loc_hash {$ id}, ja $ rate_hash {$ id} == 20;Iepriekšējā parauga kodā izmantotā atsaistīšanas funkcija ir Perl veids, kā izdzēst failus. Jums var rasties kārdinājums izmantot sistēmas izsaukumu uz jūsu operētājsistēmas dzēšanas funkciju, taču pārnesamības dēļ mans uzrakstītais kods neizmanto sistēmas izsaukumu. Tagad mums ir mūsu koda pamatstruktūra. Turpmākajās darbībās mēs nedaudz uzlabosim kodu, lai jums būtu pilnvērtīgs, funkcionāls skripts, lai atbrīvotos no šīm nepatīkamajām 1 zvaigznēm.

8. solis: URI aizbēg un kā tos apiet

Ja mēģināt palaist skriptu tādu, kāds tas ir, jūs sasniegsit daudzas kļūdas no savas operētājsistēmas, un, aplūkojot failu ceļus, kurus mēģināt izdzēst, ceļos var atrast neparastas rakstzīmes, kas ir nevēlamas. Pastāv diezgan liela iespēja, ka šajos ceļos ir URI aizbēgšanas rakstzīmes. Kas ir URI aizbēgšana? HTML un XML formātā URI aizbēgšanas rakstzīmes (pazīstamas arī kā URI aizbēgšanas rakstzīmes) ir īpašas meta rakstzīmes, ko izmanto, lai meklētu šī rakstura burtiskos gadījumus. Piemēram, jūs nekad neredzēsit vienkāršu atstarpi XML rakstzīmju virknē. Tomēr jūs redzēsit vienkāršas atstarpes XML attēlojumu, %20. (Protams, jūs esat tos redzējis pārlūkprogrammas URL joslā un domājis, kas tie ir. Nu, tagad jūs zināt) URI aizbēgšana sastāv no % zīmes, kam seko 2 ciparu heksadecimāls kods, kas apzīmē rakstzīmes ASCII vērtību. punktā, jūs varētu uzrakstīt veselu virkni aizstājēju paziņojumu par atrašanās vietas sajaukšanu, lai aizstātu visas iespējamās metasrakstzīmes, ar kurām saskaraties (ti, $ loc_hash {$ id} = ~ s/%20//un tā tālāk). Par laimi, tomēr Perl nodrošina labāku veidu, kā parūpēties par šīm lietām. Perl ir komplektā ar moduli ar nosaukumu URI:: Escape, kuram ir iebūvēta funkcija uri_unescape, kas mums veiks URI aizbēgšanas novēršanu. Lai izmantotu moduli, koda augšdaļā vienkārši pievienojiet šādu rindu:

izmantot URI:: Escape;Tagad, kad XML failu cilpā esam piešķīruši masīvu $ loc_hash {$ id}, pēc tam varam pievienot šādu rindu

uri_unescape ($ loc_hash {$ id});Augšējā rindiņa automātiski novērš visas URI aizbēgšanas rakstzīmes. Kā papildu bonuss tas tulko arī dažas starptautiskas rakstzīmes. Es palaidu skriptu ar dažiem failu ceļiem, kuros bija japāņu konji, un funkcija uri_unescape tulkoja šo rakstzīmju XML formātus to sākotnējās rakstzīmēs, lai atsaistīšana varētu veiksmīgi izdzēst failu. Pirms mēs turpinām, ir jāveic vēl viens papildu solis. Man līdz galam nesaprotamu iemeslu dēļ iTunes kodē ampersand (&) simbolu kā & tajā. Ja kāds zina, kāpēc tas tā ir, lūdzu, dariet man to zināmu. Tikmēr mēs novēršam šo problēmu, zem rindas uri_unescape pievienojot šādu rindu

$ loc_hash {$ id} = ~ s/&#/&/;Tagad skriptā būs failu ceļi, kuros nav dīvainu rakstzīmju, un atsaistīšanas funkcija varēs atrast failus savās vietās, lai tos izdzēstu. Tas notiks, ja izmantojat Mac OSX (un, iespējams, arī lielāko daļu citu uz Unix balstītu OS). Lasiet tālāk, lai skripts būtu saderīgs ar citām operētājsistēmām (proti, Windows).

9. darbība. Skriptu saderības pievienošana operētājsistēmai Windows

Skriptu saderības pievienošana operētājsistēmai Windows
Skriptu saderības pievienošana operētājsistēmai Windows

Skripts, kā rakstīts līdz šim, efektīvi noņem ierakstus operētājsistēmās, kuru pamatā ir Unix. Lai tas darbotos operētājsistēmā Windows, ir nepieciešams viens neliels papildinājums. Atšķirībā no Mac un citām operētājsistēmām, kuru pamatā ir Unix, Windows neatbalsta viena saknes direktorija jēdzienu. Tāpēc visi ceļu nosaukumi sākas ar tilpumu (C: vai E: vai jebkuru citu burtu, par kuru varat iedomāties), nevis saknes direktoriju (/). Par laimi, Perl ir īpašs mainīgais $O (tas ir lielais o, nevis nulle), kas norāda, kādu operētājsistēmu mēs pašlaik izmantojam. Tātad, ja šajā mainīgajā saglabātā vērtība satur "Win", mēs vēlamies noņemt slīpsvītru mūsu XML atrašanās vietas faila ceļā. To var izdarīt ar šādu koda rindu (pievienota pēc tam, kad esam veiksmīgi parsējuši celiņa atrašanās vietu no XML faila):

$ loc_hash {$ id} = apakšstruktūra ($ loc_hash {$ id}, 1), ja $^O = ~ /Win /i;Tagad skripts darbosies neatkarīgi no tā, vai tas darbojas OS X vai Windows.

10. darbība: pabeigtais skripts

Pabeigtais skripts
Pabeigtais skripts

Pielikumā ir mana pabeigtā iTunes automātiskās dzēšanas skripta versija tiem no jums, kuri vienkārši vēlējās galaproduktu, nevis skaidrojumu par tā darbību.

Lai izmantotu skriptu, jūs vēlaties saglabāt failu kā perl failu (paplašinājumu.pl) un pēc tam padarīt to izpildāmu (chmod 751 Unix, neesat pārliecināts, kas tas ir Windows sistēmām).

Ieteicams: