Tartalomjegyzék:

A nem kívánt ITunes dalok törlése a számítógépről: 10 lépés
A nem kívánt ITunes dalok törlése a számítógépről: 10 lépés

Videó: A nem kívánt ITunes dalok törlése a számítógépről: 10 lépés

Videó: A nem kívánt ITunes dalok törlése a számítógépről: 10 lépés
Videó: Automatikus javítási hurok javítása a Windows 10-ben [Oktatóprogram] 2024, November
Anonim
Törölje azokat a nem kívánt ITunes dalokat a számítógépről
Törölje azokat a nem kívánt ITunes dalokat a számítógépről

Helló, hölgyeim és uraim, ez az első kódolható utasításom, ezért kérjük, kommenteléskor hagyja otthon a fegyvert (a kések azonban elfogadhatók). Az mp3 -lejátszók megjelenésével soha nem látott összeget vihettek az emberek zene körülöttük a zsebükben. Nem ritkán hallani olyan emberekről, akik 5, 10, sőt 15 ezer dalból állnak (és néhány ember még ennél is több). Az mp3 lejátszók közül egyik sem népszerűbb, mint az Apple iPodja és az azt futtató szoftver, az iTunes. Ilyen nagy zenei könyvtáraknál azonban kissé unalmassá válhat, hogy megszabaduljunk azoktól a daloktól, amelyek egyszerűen nem hangzanak jól vagy vonzóak te már. Évekig eltarthat, amíg zeneszámonként végigmegy az iTunes zenei gyűjteményén, és megszabadul a nem tetsző zeneszámoktól. Ez az utasítás adható. Ebben az utasításban megmutatom, hogyan lehet automatikusan megszabadulni a daloktól amelyek egyszerűen csak borzasztóak, egy jó barátom, Perl segítségével. A Perl jó alapismeretei rendkívül hasznosak, ha megpróbáljuk megismételni ezt az utasítást, bár nem kötelező (természetesen elviheti a kész kódterméket, és másolhatja/beillesztheti és jól fog működni). Azok számára, akik érdeklődnek a Perl iránt, nagyon ajánlom az O'Reilly "Learning Perl" című könyvét, jó olvasmány, és az egyik legjobban írt könyv a Perlről, amelyet valaha is olvastam. FONTOS: Bár az itt bemutatott módszerek működni fognak ha helyesen csinálják, nem tudok és egyszerűen nem is vállalok felelősséget, ha hülyeséget csinál, és törli értékes dalait. Kérjük, alaposan fontolja meg a zenei fájlok biztonsági mentését, mielőtt megpróbálna írni vagy végrehajtani egy, az alábbihoz hasonló szkriptet. Csak tévedjen az óvatosság részéről, hogy ne fájjanak érzéseink, ha nem, köszönöm. Olvassa el a figyelmeztetést? (Igen, még te is, aki nem olvasta el a figyelmeztetést) Remek! Kezdjük:-) Frissítés: Úgy tűnik, néhány perl-szkriptor keményen dolgozott az iTunes-szkriptek felírásán. A különféle iTunes-szkriptekhez tekintse meg a Teridon Scripts című dokumentumát.

1. lépés: Első lépések

Elkezdeni
Elkezdeni

Mint minden dologhoz, egy kis előkészítést is meg kell tenni, mielőtt futtathatjuk ezt a szkriptet. Tehát, amire szüksége lesz, hogy automatikusan törölje a dalokat az iTunes -ból: 1) Számítógép (duh) 2) iTunes (dupla duh) 3) Perl (nehéz lenne Perl -szkriptet futtatni Perl nélkül, nem mondaná?) 4) kedvenc szerkesztő (magam is a vi és a vim támogatója vagyok, de minden szövegszerkesztőnek meg kell tennie a trükköt) Az itt olvasható utasításoknak elég egyszerűnek kell lenniük: https://www.perl.com/download.cspAmikor letöltötte, telepítette és készen áll a Perl használatára, szeretnénk némi háttérinformációt arról, hogy mit csinálunk. Meg kell jegyezni, hogy a szkriptet eredetileg a Mac OS X rendszerhez fejlesztették ki, bár ugyanezeknek a módszereknek működniük kell a nem Unix alapú operációs rendszereken, például a Windowson is. Ideje az Instructable unalmas, er, "oktató" részének.

2. lépés: Az alapvető szkriptötlet

Az iTunes 5 csillagos minősítési rendszert tartalmaz, amely lehetővé teszi a felhasználók számára a dalok értékelését. Az 5 csillagos minősítésű dalokat tekintik a legjobb daloknak, míg az 1 csillagos minősítésű dalokat a legrosszabb dalok közé sorolják. Céljaink szerint feltételezzük, hogy minden olyan dal, amelynek nincs minősítése (más néven 0 csillag), olyan, amelyet a felhasználónak még nem volt lehetősége értékelni. Személyesen, amikor dalokat értékel, ha egy dal 1 csillagos minősítéssel rendelkezik, valószínűleg elég rossz, hogy nem érdemli meg azt a drága merevlemez -helyet, amelyet a dal elfoglal. Ezért az ebben az utasításban bemutatandó Perl-szkript elemzi az iTunes könyvtárat, és törli az 1 csillagos besorolású számokat. További bónuszként a dalok értékelhetők, amikor a felhasználó útközben van iPod használatával. Ily módon útközben egyszerűen kiválaszthatja a törlendő dalokat, egyszerűen értékelheti őket, és automatikusan törlődnek, amikor később szinkronizálja iPod -ját a számítógéppel (ha automatikusan szinkronizálja iPod -ját a számítógéppel). Most már tudjuk, hogy mit nézzük, hogyan fogjuk a dalinformációkat lekérni az iTunes -ból a Perl Scripthez.

3. lépés: Az XML könyvtár: ITunes Goto Guy

Az XML könyvtár: ITunes Goto Guy
Az XML könyvtár: ITunes Goto Guy

Annak érdekében, hogy egy dalt a számítás alapján törölhessünk a számítógépről, két információra van szükségünk: a dal minősítésére és a dal helyére. Szerencsére számunkra van egy praktikus fájl, amelyből minden információt megszerezhetünk az iTunes -ról: az iTunes Music Library XML fájlból. Az XML fájl neve "iTunes Music Library.xml", és a fő merevlemez Zene könyvtárában kell lennie.

Az XML fájlról: Az iTunes xml fájl egyfajta adatbázis, amelyet az iTunes tart fenn, és mindig naprakész. Amikor módosítást végez az iTunes alkalmazásban, az iTunes XML fájl megfelelő része módosul, hogy ezt a változást figyelembe vegye. Példa az iTunes XML fájlomból: 1218Track ID1218NameTake On MeArtistA-HaGenre80'sKindMPEG audio file 25T01: 26: 58ZRating40Album Rating40Album Rating ComputedPersistent ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20Album/Take%20e.bejátszás. az XML fájl HTML-stílusú címkékkel körülvett értékekből áll. A szkript alkalmazásában érdekelni fog minket a sáv azonosítója, neve, előadója, minősítése és helyadatai. Ha az XML fájlt nézi, akkor felülről észreveheti, hogy ennek a dalnak a "minősítése" 40. Az iTunes minden számhoz 0-100 közötti egész számot rendel, minden 20 pont további csillag a minősítéshez. Tehát a 20-as értékelés 1 csillagos értékelésnek felel meg, a 40-es 2 csillagos értékelésnek és így tovább, a 100 pedig 5 csillagos minősítésnek felel meg. Most, hogy tudunk az XML fájlról, kezdjük el a szkriptelést

4. lépés: A barátod a pofátlanság (még akkor is, ha nem vagy Amszterdamban)

A barátod a pofát (még ha nem is Amszterdamban vagy)
A barátod a pofát (még ha nem is Amszterdamban vagy)

Mielőtt eltávolítanánk a fájlokat, szükségünk van egy működő adatbázisra, amely a dal összes információját összekapcsolja. Bár kifinomultabb adatstruktúrák, például hash -tömb vagy hash -kivonat is használhatók, ez a szkript elég egyszerű ahhoz, hogy megérdemelje egy egyszerű hash -lista használatát. Az avatatlanok számára a hash nem más, mint egy tömb, amely karakterláncok vagy a kulcs/érték párok összekevert tömege indexeli. A hash -t nagy hordónak lehet tekinteni, benne cuccokkal (értékekkel), és a metaforikus hordóban mindenhez címke (a kulcsok) van rögzítve. A hordóban lévő bármely elemet egyszerűen kihúzhatja, ha megtalálja a címkéjét. Ha többet szeretne megtudni a kivonatokról, akkor az alábbi link hasznos lehet: https://www.tutorialspoint.com/perl/perl_hashes.htm Használhatjuk azokat az információkat, amelyek szerint az iTunes XML fájlban lévő minden dalhoz egyedi zeneszám -azonosító tartozik. a dalok. Emiatt a trackID ideális kulcs a hash -hez. Ezért 4 hash -t állíthatunk be a dal címéhez, előadójához, értékeléséhez és helyéhez. Miután ezeket megállapítottuk, áttekinthetjük a fájlt, és néhány egyszerű reguláris kifejezés segítségével kitölthetjük a kivonatadatbázist, amelyek a következőkben láthatók.

5. lépés: Egy (nagyon) rövid lecke a reguláris kifejezésekről

Annak érdekében, hogy kivonjuk a hash -bejegyzéseket az XML -fájlból, és egy kis időt spóroljunk a kereséssel, a Perl egyik legerősebb szolgáltatását, a reguláris kifejezést szeretnénk igénybe venni. Nagyon rövid leckét fogok készíteni a reguláris kifejezésekről, de azoknak, akik részletesebb magyarázatokat szeretnének, rengeteg jó reguláris kifejezés oktatóanyag található az interneten. Nézze meg a https://perldoc.perl.org/perlretut.html címet egy jó reguláris kifejezés bemutatóért. Röviden, a reguláris kifejezések számos eszközt biztosítanak számunkra a karakterláncok áthaladásához, az egyik karakterlánc másik karakterlánccal való helyettesítéséhez vagy a karakterlánc későbbi használatra. A reguláris kifejezések két funkciót biztosítanak, az egyező (m //) és a helyettesítő (s) operátorokat, amelyeket ebben a projektben fognak használni. Ezen funkciók bármelyikének hozzárendelési környezetben történő használatához Perl kötési operátorát (= ~) fogjuk használni, amely arra szolgál, hogy egy mintát a kívánt karakterlánc -változóhoz kössön. Példák:

$ comment = ~ /Purduecer /; #visszatér, ha a $ komment karakterlánc "Purduecer" kifejezést tartalmaz s/[a-z]/[A-Z]/; #vegye ki az összes kisbetűt karakterláncban, és kezdje nagybetűvel $ _ karakterláncbanA reguláris kifejezések második hasznos jellemzője a memóriaváltozóké. A reguláris kifejezésekben bizonyos elemeket zárójelbe helyezhet, majd a speciális mintaegyezési memóriaváltozókkal $ 1, $ 2 stb. Elérheti a karakterláncok azon részeit, amelyek később illeszkedtek ezekhez a részekhez.

/(Utasítható) Robot/; #Párosítson minden sort az "Instructables Robot" kifejezéssel $ website = $ 1; #Mentse el a sikeres mintaegyeztetési eredményt az első szülőkészletben #(ebben az esetben az $ 1 változó tartalmazza az "Instructables" -t)Végül a reguláris kifejezésekben vannak bizonyos karakterek, amelyek különleges célt szolgálnak. Ezek fordított perjelek (mindezeknek ismerősnek kell lenniük a C programozóknak), karakterosztályok és metakarakterek. Például, ha bármilyen betűhöz illeszkedünk, amelynek mindkét oldalán fül található, mondhatjuk

/\ t [a-zA-Z] t/Ezeket a szögletes zárójeleket a reguláris kifejezésekben karakterosztály meghatározására használják. Tegyük fel azonban, hogy szögletes zárójelben lévő szöveget akartunk találni a sorban. Nem írhatnánk egyszerűen úgy, ahogy van, ahogy az alább látható

/

/

6. lépés: Rendszeres kifejezések alkalmazása az iTunes szkriptre

Rendszeres kifejezések alkalmazása az iTunes szkriptre
Rendszeres kifejezések alkalmazása az iTunes szkriptre

Most, hogy remélhetőleg van némi sejtésünk a reguláris kifejezéseket tápláló alapvető fogalmakról, itt az ideje, hogy ezeket alkalmazzuk az iTunes szkriptre. Az xml -kód olvasása során bizonyos karakterek, például az előrevágás, meglehetősen gyakran találkoznak. Ezért ki fogjuk használni azt a tényt, hogy az m // operátor válassza ki a kódban a kívánt határolóelemeket (szögletes zárójeleket fogunk használni, bár más határolók biztosan működni fognak) Először is csak egy részét kell elolvasnunk a teljes iTunes XML fájlt. A fájl olyan részei, amelyek információkat tartalmaznak, például lejátszási listák stb., Nem szükségesek. A lejátszási listák szakasz első sora, amely a dalinformációk után következik, a következőképpen néz ki: Lejátszási listák Ezért egy while ciklusban hozzáadhatunk egy olyan utasítást, amely a fájlolvasás végére ugrik, ha az adott sor felbukkan.

while () {#loop_instructions_ide utolsó, ha ($ _ = ~ m [Playlists])}Ezután a kivonat-azonosítók létrehozásához az if-elsif fát használhatjuk adatbázis-kivonataink létrehozásához, az előző lépésben ismertetett memóriaegyezési változók használatával értékeket menthetünk a kivonatokba

ha ($ _ = ~ m [(d+)]) {$ id = $ 1; } elsif ($ _ = ~ m [Értékelés (d+)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Név (.+)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Előadó (.+)]) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Locationfile: // localhost (.*)]) {$ loc_hash {$ id} = $ 1; }Most, hogy felépítettük a hash-adatbázisunk alapját, foglalkozunk az 1-csillagos fájlok keresésével és eltávolításával, így tovább a következő lépéshez!

7. lépés: Az 1 csillagos sávok keresése és törlése

Az 1 csillagos számok megkeresése és törlése
Az 1 csillagos számok megkeresése és törlése

Most, hogy adatbázisunk van beállítva, ideje vadászni az 1 csillagos számokra, hogy törölni tudjuk őket. A Perl egy hasznos looping konstrukciót kínál, amelyet foreach loop -nak hívnak, és amely felhasználható a kivonatok összes kulcsának iterálására. Meg kell jegyezni, hogy az iTunes könyvtárának nem minden zeneszáma tartalmaz bejegyzést a minősítési kivonatban. Ennek oka az, hogy a minősítéssel nem rendelkező dalok nem kapnak sávminősítési sort az iTunes XML fájlban. Ezért a hash -ek áthurkolása során a következő konstrukciót szeretnénk használni:

foreach $ id (rendezési kulcsok %rate_hash) { #… hurokkód beszúrása ide}Ezt követően olyan egyszerű, mint a következő állítás használata

szüntesse meg a $ loc_hash {$ id} összekapcsolását, ha $ rate_hash {$ id} == 20;A fenti mintakódban használt leválasztási funkció a Perl módja a fájlok törlésére. Lehet, hogy kísértést érez arra, hogy rendszerhívást használjon az operációs rendszer törlési funkciójához, de hordozhatósági okokból az általam írt kód nem használja a rendszerhívást. Most már rendelkezünk a kód alapvető struktúrájával. A következő lépésekben finomítunk a kódon, hogy teljes értékű, funkcionális szkriptje legyen, hogy megszabaduljon a bosszantó 1 csillagoktól.

8. lépés: URI menekülések és hogyan kerüljük meg őket

Ha úgy próbálja futtatni a szkriptet, ahogy van, számos hibába ütközhet az operációs rendszerből, és ha megnézi a törölni kívánt fájl elérési útjait, akkor szokatlan karaktereket találhat a nemkívánatos útvonalakba ágyazva. Nagyon jó esély van arra, hogy ezek az útvonalak URI menekülő karaktereket tartalmaznak. HTML -ben és XML -ben az URI escape karakterek (más néven URI escapes) speciális metakarakterek, amelyeket az adott karakter szó szerinti példányainak keresésére használnak. Például soha nem lát egyszerű szóközt egy XML karakterláncban. Látni fogja azonban egy egyszerű szóköz XML ábrázolását, %20. (Biztosan látta ezeket a böngésző URL-sávjában, és kíváncsi, hogy mik ezek. Nos, most már tudja) pontban, akkor írjon egy csomó helyettesítő utasítást a helykivonatra, hogy lecserélje az összes lehetséges metakaraktert (például $ loc_hash {$ id} = ~ s/%20//; és így tovább). Szerencsére azonban a Perl jobb módszert biztosít ezekről a dolgokról. Perl egy URI:: Escape nevű modullal van ellátva, amely beépített uri_unescape funkcióval rendelkezik, amely elvégzi az URI menekülések számunkra történő eltávolítását. A modul használatához egyszerűen adja hozzá a következő sort a kód tetejéhez:

URI használata:: Escape;Most, miután hozzárendeltük a $ loc_hash {$ id} tömböt az XML fájlhurokhoz, utólag hozzáadhatjuk a következő sort

uri_unescape ($ loc_hash {$ id});A fenti sor automatikusan megszünteti az URI menekülő karaktereket. További bónuszként néhány nemzetközi karaktert is lefordít. A szkriptet néhány fájlútvonallal futtattam, amelyekben japán konji szerepelt, és az uri_unescape függvény lefordította e karakterek XML formátumát az eredeti karaktereikre, hogy a leválasztás sikeresen törölhesse a fájlt. Mielőtt továbblépnénk, meg kell tenni egy további lépést. Olyan okok miatt, amelyeket nem teljesen értek, az iTunes az ampersand (&) szimbólumot kódolja a & karakterláncokban. Ha valaki tudja, miért van ez, kérem jelezze. Addig is megszüntetjük ezt a problémát azáltal, hogy a következő sort hozzáadjuk az uri_unescape sorhoz

$ loc_hash {$ id} = ~ s/&#/&/;Most a szkriptben a fájlútvonalak nem lesznek különös karakterek, és a leválasztás funkció képes lesz megtalálni a fájlokat a megfelelő helyen, hogy törölje őket. Nos, akkor lesz, ha Mac OSX-et használ (és valószínűleg a legtöbb más Unix-alapú operációs rendszert is). Olvassa el, hogy a szkript kompatibilis legyen más operációs rendszerekkel (nevezetesen Windows).

9. lépés: A szkriptkompatibilitás hozzáadása a Windows rendszerhez

Szkriptkompatibilitás hozzáadása a Windows rendszerhez
Szkriptkompatibilitás hozzáadása a Windows rendszerhez

Az eddig írt szkript hatékonyan eltávolítja a nyomokat a Unix-alapú operációs rendszerekről. Ahhoz, hogy a Windows rendszeren működjön, egy apró kiegészítésre van szükség. A Mac-től és más Unix-alapú operációs rendszerektől eltérően a Windows nem támogatja az egyetlen gyökérkönyvtár fogalmát. Ezért minden elérési út kötettel kezdődik (C: vagy E: vagy bármilyen más betű, ami eszedbe jut), szemben a gyökérkönyvtárral (/). Szerencsénkre a Perl rendelkezik egy speciális változóval, $O (ez egy nagy o, nem egy nulla), ami azt jelzi, hogy milyen operációs rendszert használunk jelenleg. Tehát, ha az adott változóban tárolt érték "Win" -t tartalmaz, akkor el akarjuk távolítani a vezető perjelet az XML hely fájlútvonaláról. Ezt a következő kódsorral lehet elvégezni (hozzáadva, miután sikeresen elemeztük egy sáv helyét az XML fájlból):

$ loc_hash {$ id} = alstruktúra ($ loc_hash {$ id}, 1), ha $^O = ~ /Win /i;Most a szkript működik, függetlenül attól, hogy OS X vagy Windows rendszeren fut.

10. lépés: A befejezett szkript

A befejezett szkript
A befejezett szkript

Az elkészült iTunes automatikus törlési szkript verzióját mellékeltem azoknak, akik csak a végterméket akarták, és nem a működésének magyarázatát.

A szkript használatához el kell menteni a fájlt perl fájlként (.pl kiterjesztés), majd végrehajthatóvá kell tenni (a chmod 751 a Unixban, nem biztos benne, hogy mi az a Windows rendszerekhez).

Ajánlott: