Mündəricat:

İstənməyən ITunes mahnılarını kompüterinizdən silin: 10 addım
İstənməyən ITunes mahnılarını kompüterinizdən silin: 10 addım

Video: İstənməyən ITunes mahnılarını kompüterinizdən silin: 10 addım

Video: İstənməyən ITunes mahnılarını kompüterinizdən silin: 10 addım
Video: Gmail Miqrasiya Vasitəsinə Outlook Gmail e-poçtlarını, kontaktlarını, Təqvimini Gmail-ə idxal edin 2024, Iyul
Anonim
İstənməyən ITunes mahnılarını kompüterinizdən silin
İstənməyən ITunes mahnılarını kompüterinizdən silin

Salam xanımlar və cənablar, bu mənim ilk kodlaşdırma təlimatımdır, buna görə də şərh edərkən silahlarınızı evdə qoyun (bıçaqlar məqbuldur). Mp3 pleyerlərin gəlməsi ilə insanların görünməmiş miqdarda yük daşıması mümkün oldu. musiqi ilə birlikdə ciblərində. İnsanların 5, 10, hətta 15 min mahnıdan ibarət kolleksiyalara sahib olduğunu eşitmək nadir deyil. Mp3 pleyerlərindən heç biri Apple -ın iPod -dan və iTunes -u işlədən proqramdan daha populyar deyil, lakin belə böyük musiqi kitabxanaları ilə, sadəcə yaxşı səslənməyən və cazibədar olmayan mahnılardan qurtulmaq bir qədər yorucu ola bilər. sən artıq. ITunes -dakı musiqi kolleksiyanızı izləmək və bəyənmədiyiniz mahnılardan qurtulmaq üçün illər tələb oluna bilər. Bu təlimat verən yer buradan gəlir. yaxşı dostum Perl -in köməyi ilə sadəcə dəhşətlidir. Perl haqqında yaxşı bir əsas bilik, lazım olmasa da bu təlimatı təkrar etməyə çalışarkən son dərəcə faydalıdır (əlbəttə ki, bitmiş kod məhsulunu götürüb kopyala/yapışdıra bilərsiniz) və yaxşı işləyəcək). Perl ilə maraqlananlar üçün O'Reilly -dən "Perl öyrənmə" kitabını çox tövsiyə edirəm, yaxşı oxudum və oxumaq şansına sahib olduğum Perl haqqında yazılmış ən yaxşı kitablardan biridir. düzgün iş görsəniz, axmaq bir şey etsəniz və qiymətli mahnılarınızı silsəniz heç bir məsuliyyət daşımıram və qəbul etməyəcəyəm. Zəhmət olmasa aşağıdakı kimi bir skript yazmağa və ya yerinə yetirməyə başlamazdan əvvəl musiqi fayllarınızın ehtiyat nüsxəsini çıxarmağı ciddi şəkildə düşünün. Diqqətlə yanılırsınız, əgər hiss etməsəniz incitməyəcəyik, təşəkkürlər. Xəbərdarlığı oxuyun? (Bəli, hətta sən, xəbərdarlığı oxumayan adam) Əla! Başlayaq:-) Yeniləmə: Bəzi perl skriptçilərinin iTunes skriptlərini yazmaqda çox çətin olduğu görünür. ITunes ilə əlaqəli müxtəlif skriptlər üçün Teridon Scripts-ə baxın.

Addım 1: Başlayın

Başlanğıc
Başlanğıc

Hər şeydə olduğu kimi, bu ssenarini işə salmadan əvvəl bir az hazırlıq görülməlidir. Beləliklə, mahnıları iTunes -dan avtomatik silmək üçün lazım olacaq şeylər: 1) Bir kompüter (duh) 2) iTunes (ikiqat duh) 3) Perl (Perl olmadan Perl skriptini işlətmək çətindir, deməzsinizmi?) 4) Sizin sevdiyim redaktor (mən özüm vi və vim tərəfdarıyam, amma hər hansı bir mətn redaktoru hiylə işini görməlidir) 5) iPod (məcburi deyil, amma tezliklə aydınlaşdırılacaq səbəblərə görə çox xoşdur) Perl əldə etmək: Buradakı təlimatlar kifayət qədər sadə olmalıdır: https://www.perl.com/download.cspPerl'i yüklədikdən, quraşdırdıqdan və getməyə hazır olduqdan sonra, nə etdiyimizə dair bir az məlumat istəyəcəyik. Qeyd etmək lazımdır ki, skript əvvəlcə Mac OS X üçün hazırlanmışdır, baxmayaraq ki, eyni üsullar Windows kimi Unix əsaslı olmayan ƏS-lərdə işləməlidir. Təlimatlandırmanın cansıxıcı, "təhsilli" hissəsi üçün vaxt gəldi.

Addım 2: Əsas Script Fikri

iTunes, istifadəçilərə mahnıları qiymətləndirməyə imkan verən 5 ulduzlu bir qiymətləndirmə sisteminə malikdir. 5 ulduzlu mahnılar ən yaxşı mahnılar, 1 ulduzlu mahnılar isə ən pis mahnılardan sayılır. Məqsədimiz üçün, reytinqi olmayan hər hansı bir mahnının (aka 0 ulduz) istifadəçinin hələ qiymətləndirmə şansının olmadığı bir mahnı olduğunu güman edəcəyik. Şəxsən mahnıları qiymətləndirərkən, bir mahnının 1 ulduzlu reytinqi varsa, Mahnının tutduğu qiymətli sabit disk sahəsinə layiq olmadığı üçün yəqin ki, kifayət qədər pis olduğunu tapın. Buna görə də, bu Təlimat kitabında sizə təqdim edəcəyim Perl Script, iTunes Kitabxanasını təhlil edəcək və 1 ulduzlu reytinq verilmiş hər hansı bir parçanı siləcəkdir. iPod istifadə edərək. Bu şəkildə, mahnıları yolda olarkən sadəcə reytinq verərək silmək üçün seçə bilərsiniz və iPodunuzu sonradan kompüterinizə sinxronizasiya etdikdə avtomatik olaraq silinəcəkdir (iPodunuzu kompüterinizə avtomatik olaraq sinxronizasiya etsəniz). edirik, görək iTunes -dan Perl Script üçün mahnı məlumatlarını necə çəkəcəyik.

Addım 3: XML Kitabxanası: ITunes Goto Guy

XML Kitabxanası: ITunes Goto Guy
XML Kitabxanası: ITunes Goto Guy

Mahnını reytinqinə görə kompüterdən silmək üçün 2 məlumat lazımdır: mahnının reytinqi və mahnının yeri. Xoşbəxtlikdən bizim üçün iTunes haqqında istədiyimiz bütün məlumatları əldə edə biləcəyimiz lazımlı bir fayl var: iTunes Musiqi Kitabxanası XML faylı. XML faylı "iTunes Music Library.xml" adlanır və əsas Sabit Diskinizdəki Musiqi qovluğunda yerləşməlidir.

XML faylı haqqında: iTunes xml faylı iTunes tərəfindən saxlanılan və hər zaman aktual olan bir növ verilənlər bazasıdır. İTunes -da bir dəyişiklik edildikdə, iTunes XML faylının müvafiq hissəsi bu dəyişikliyi qeyd etmək üçün dəyişdirilir. İTunes XML faylımdan nümunə giriş aşağıda verilmişdir: 1218Track ID1218NameTake On MeArtistA-HaGenre80's KindMPEG audio fileSize3682382Total Time230138Date Modified2007-09-24T02: 11: 30ZDate Added2008-05-28T0lePlay88Play88Pr2Play88 25T01: 26: 58ZRating40Album Reytinq40Album Reytinqi HesablanmışDararlı ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20AlnFolded XML faylı HTML stil etiketləri ilə əhatə olunmuş dəyərlərdən ibarətdir. Ssenarinin məqsədləri üçün Track ID, Ad, Artist, Reytinq və Yer məlumatları ilə maraqlanacağıq. XML faylına baxırsınızsa, yuxarıdan bu mahnının 40 "reytinqi" olduğunu görə bilərsiniz. İTunes hər mahnıya 0 ilə 100 arasında bir tam ədəd təyin edir və hər 20 bal reytinq üçün əlavə ulduzdur. Beləliklə, 20 reytinqi 1 ulduzlu reytinqə, 40 reytinqi 2 ulduzlu reytinqə və s. 100-ü 5 ulduzlu bir reytinqə uyğundur. İndi XML faylı haqqında bildiyimizə görə, skript yazmağa başlayaq

Addım 4: Dostunuz Hash (Amsterdamda olmasanız belə)

Dostunuz Hash (Amsterdamda olmasanız belə)
Dostunuz Hash (Amsterdamda olmasanız belə)

Faylları ləğv etməzdən əvvəl, bütün mahnı məlumatlarını bir araya gətirən işçi bir verilənlər bazasına ehtiyacımız var. Bir sıra karma və ya karma hash kimi daha mürəkkəb məlumat quruluşlarından istifadə oluna bilsə də, bu skript sadə bir hash siyahısının istifadəsinə layiq olacaq qədər sadədir. simlər və ya qarışıq açar/dəyər cütləri ilə indekslənir. Bir hash, içərisində şeylər (dəyərlər) olan böyük bir barel kimi düşünülə bilər və məcazi çəlləkdəki hər şeyə bir etiket (düymələr) yapışdırılır. Barelin içindəki hər hansı bir əşyanı sadəcə etiketini taparaq çıxara bilərsiniz. Qarışıqlar haqqında daha çox məlumat üçün aşağıdakı link faydalı ola bilər: https://www.tutorialspoint.com/perl/perl_hashes.htm iTunes XML faylındakı hər bir mahnıya izləmək üçün unikal bir track ID verildiyi haqqında məlumatlardan istifadə edə bilərik. mahnılar. Bu səbəbdən trackID, hashlar üçün ideal bir açar yaradır. Bu səbəbdən, mahnı adı, sənətçi, reytinq və yer üçün 4 hash qura bilərik. Bunlar qurulduqdan sonra, faylı tarayabilir və bir az daimi ifadələrdən istifadə edərək hash verilənlər bazamızı doldura bilərik.

Addım 5: Daimi İfadələr haqqında (çox) Qısa Dərs

XML sənədlərimizdən hash girişlərimizi əldə etmək və axtarışa bir az vaxt ayırmaq üçün Perl -in daha güclü xüsusiyyətlərindən birinin köməyinə müraciət etmək istəyirik: normal ifadə. Müntəzəm ifadələr haqqında çox qısa bir dərs verəcəyəm, ancaq daha ətraflı izahat istəyənlər üçün internetdə çoxlu yaxşı müntəzəm ifadə dərsləri var. Yaxşı bir müntəzəm ifadə dərsliyi üçün https://perldoc.perl.org/perlretut.html ünvanına baxın. Qısacası, müntəzəm ifadələr bizə sətirləri keçmək, bir simli başqa bir simli ilə əvəz etmək və ya hissələrini saxlamaq üçün bir sıra alətlər təqdim edir. sonradan istifadə üçün bir sim. Daimi ifadələr, bu layihə üçün istifadə ediləcək uyğunluq (m //) və əvəzetmə (lər) operatorları olan 2 funksiyanı təmin edir. Tapşırıq kontekstində bu funksiyalardan birini istifadə etmək üçün, Perl -in bağlama operatorunu (= ~) istifadə edəcəyik ki, bu da nümunəni seçdiyimiz simli dəyişənə bağlamaq üçün istifadə olunur.

$ comment = ~ /Purduecer /; $ şərh sətrində "Purduecer" s/[a-z]/[A-Z]/ifadəsi varsa # #qaytarılır. #bütün kiçik hərfləri simli alın və $ _ simli ilə böyük hərflərlə yazınDaimi ifadələrin ikinci faydalı xüsusiyyəti yaddaş dəyişənləridir. Müntəzəm ifadələrdə, müəyyən elementləri parantezə yerləşdirə bilərsiniz və sonra bu hissələrə uyğun gələn sətirlərə daxil olmaq üçün $ 1, $ 2 və s.

/(Təlimatlar) Robot/; #İstənilən satırı "Instructables Robot" ifadəsi ilə uyğunlaşdırın $ website = $ 1; #Parenlərin ilk dəstində olan #uğurlu nümunə uyğunluğunun nəticəsini qeyd edin (bu halda $ 1 dəyişənində "Təlimatlar" var)Nəhayət, müntəzəm ifadələrdə xüsusi bir məqsədə xidmət edən müəyyən xarakterlər var. Bunlar arxa cızma qaçışları (hamısı C proqramçılarına tanış görünməlidir), xarakter sinifləri və metakarakterlərdir. Məsələn, hər iki tərəfində nişanı olan hər hansı bir hərfə uyğun gəlmək üçün deyə bilərik

/\ t [a-zA-Z] t/Bu kvadrat mötərizələr bir xarakter sinifini təyin etmək üçün müntəzəm ifadələrdə istifadə olunur. Fərz edək ki, xəttin içərisində kvadrat mötərizədə olan mətn tapmaq istədik. Aşağıda göstərildiyi kimi olduğu kimi yaza bilmədik

/

/

Addım 6: ITunes Scriptinə Daimi İfadələr Tətbiqi

ITunes Scriptinə Daimi İfadələrin Tətbiqi
ITunes Scriptinə Daimi İfadələrin Tətbiqi

Ümid edirik ki, müntəzəm ifadələri dəstəkləyən əsas təməl anlayışlar haqqında bəzi fikirlərimiz var, bunları iTunes skriptinə tətbiq etməyin vaxtı gəldi. Buna görə də m // operatorunun kodda istədiyiniz hər hansı ayırıcı seçməyindən istifadə edəcəyik (kvadrat mötərizələrdən istifadə edəcəyik, amma digər ayırıcılar əlbəttə işləyəcək) Əvvəlcə yalnız bir hissəsini oxumalıyıq. tam iTunes XML faylı. Faylın çalğı siyahıları və s. Kimi məlumatları ehtiva edən hissələrinə ehtiyac yoxdur. Mahnı məlumatlarından sonra gələn çalğı siyahıları bölməsinin birinci sətri belə görünür: Çalğı siyahılarıBuna görə də, bir müddətdə, bu sətirlə qarşılaşsanız, faylın oxunmasının sonuna tullanan bir bəyanat əlavə edə bilərik.

while () {#loop_instructions_here last if ($ _ = ~ m [Pleylistlər])}Bundan sonra, hash ID-lərini qurmaq üçün, dəyərləri hash-lərə saxlamaq üçün əvvəlki addımda öyrəndiyimiz yaddaş uyğunlaşdırma dəyişənlərindən istifadə edərək, verilənlər bazası hashlarımızı qurmaq üçün if-elsif ağacından istifadə edə bilərik.

əgər ($ _ = ~ m [(d+)]) {$ id = $ 1; } elsif ($ _ = ~ m [Reytinq (d+)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Ad (.+)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Rəssam (.+)]) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Locationfile: // localhost (.*)]) {$ loc_hash {$ id} = $ 1; }İndi hash verilənlər bazamızın əsasını qurduqdan sonra, 1 Ulduzlu faylların yerini və silinməsini əhatə edəcəyik, beləliklə növbəti mərhələyə keçək!

Addım 7: Bu 1 Ulduzlu Parçaların Tapılması və Silinməsi

Bu 1 Ulduzlu Parçaların Tapılması və Silinməsi
Bu 1 Ulduzlu Parçaların Tapılması və Silinməsi

Verilənlər bazası qurduğumuza görə, 1 ulduzlu parçaları axtarmağın vaxtı gəldi ki, onları silə bilək. Perl, hashes düymələrimizin hamısını təkrarlamaq üçün istifadə edilə bilən bir foreach loop adlı faydalı bir döngə quruluşu təqdim edir. Qeyd etmək lazımdır ki, iTunes kitabxananızdakı hər bir parçanın reytinq hash -də heç bir girişi olmayacaq. Bunun səbəbi, reytinqi olmayan mahnılara iTunes XML faylında mahnı reytinq xətti verilməməsidir. Buna görə də, həşəratlardan keçərkən aşağıdakı quruluşdan istifadə etmək istəyəcəyik:

foreach $ id (sıralama düymələri %rate_hash) { #… bura loop kodu daxil edin}Bundan sonra, aşağıdakı ifadəni istifadə etmək qədər sadədir

$ loc_hash {$ id} bağlantısını kəsin, əgər $ rate_hash {$ id} == 20;Yuxarıdakı nümunə kodunda istifadə olunan əlaqəni kəsmə funksiyası Perl -in faylları silmək üsuludur. Əməliyyat sisteminizin silmək funksiyasına bir sistem zəngindən istifadə etmək istəyiniz ola bilər, ancaq taşınabilirlik səbəbiylə yazdığım kod sistem zəngindən istifadə etmir. İndi kodumuz üçün əsas quruluşa sahibik. Aşağıdakı addımlarda, o sinir bozucu 1 ulduzlardan qurtulmaq üçün tam xüsusiyyətli, işlək bir skriptə sahib ola biləcəyiniz üçün kodda bəzi dəqiqləşdirmələr aparacağıq.

Addım 8: URI Qaçır və Onları Necə Əldə Edirsiniz

Skriptini olduğu kimi işə salmağa cəhd etsəniz, əməliyyat sisteminizdə çoxsaylı səhvlərlə üzləşəcəksiniz və silməyə çalışdığınız fayl yollarına baxsanız, arzuolunmaz yollara daxil edilmiş qeyri -adi simvollar tapa bilərsiniz. Bu yolların URI qaçış simvollarını ehtiva etməsi olduqca yaxşı bir şansdır. URI qaçışları nədir? HTML və XML -də, URI qaçış simvolları (aka URI qaçışları) bu xarakterin hərfi nümunələrini axtarmaq üçün istifadə olunan xüsusi metakariflərdir. Məsələn, XML simli sətirində heç vaxt sadə bir boşluq görməyəcəksiniz. Bununla birlikdə, sadə bir boşluğun %20 olan XML təsvirini görəcəksiniz. (Şübhəsiz ki, bunları brauzerinizin URL çubuğunda gördünüz və bunların nə olduğunu merak etdiniz. Yaxşı, indi bilirsiniz) URI qaçışı % işarəsindən ibarətdir və ardınca xarakterin ASCII dəyərini əks etdirən 2-rəqəmli onaltılı koddan ibarətdir. nöqtə, rastlaşdığınız hər mümkün metakarakteri əvəz etmək üçün yer hash -də bir çox dəyişdirmə ifadəsi yaza bilərsiniz (yəni $ loc_hash {$ id} = ~ s/%20//və s.). Perl, URI:: Escape adlı URI:: Escape adlı bir modulla birlikdə URI qaçışlarını aradan qaldırmaq işini görəcək.. Modulu istifadə etmək üçün kodunuzun yuxarısına aşağıdakı sətri əlavə edin:

URI istifadə edin:: Escape;İndi, $ loc_hash {$ id} arrayını XML fayl döngəsinə təyin etdikdən sonra aşağıdakı sətri əlavə edə bilərik

uri_unescape ($ loc_hash {$ id});Yuxarıdakı sətir hər hansı bir URI qaçış simvolunu avtomatik olaraq aradan qaldırır. Əlavə bir bonus olaraq, bəzi beynəlxalq simvolları da tərcümə edir. Ssenarini içərisində Yapon konji olan bir neçə filepath ilə işlədim və uri_unescape funksiyası həmin simvolların XML formatlarını orijinal simvollarına çevirdi ki, əlaqəni kəsmək faylı uğurla silə bilsin. Davam etməzdən əvvəl əlavə bir addım atılmalıdır.. Tam başa düşmədiyim səbəblərə görə, iTunes ampersand (&) simvolunu öz simlərində kodlaşdırır. Bunun səbəbini bilən varsa mənə bildirin. Bu arada, uri_unescape xəttinin altına aşağıdakı sətri əlavə edərək bu problemi aradan qaldırırıq

$ loc_hash {$ id} = ~ s/&#/&/;İndi skriptin qəribə simvollardan təmizlənmiş filepathları olacaq və əlaqəni kəsmə funksiyası onları silmək üçün lazımi yerlərdə tapa biləcək. Yaxşı, Mac OSX istifadə edirsinizsə (və ehtimal ki, digər Unix əsaslı OS-lər də). Skriptin digər əməliyyat sistemlərində (yəni Windows) uyğun olması üçün oxuyun.

Addım 9: Windows -a Script Uyğunluğu əlavə edin

Windows -a Script Uyğunluğu əlavə edin
Windows -a Script Uyğunluğu əlavə edin

Ssenari, indiyə qədər yazıldığı kimi, Unix əsaslı əməliyyat sistemlərindəki izləri effektiv şəkildə aradan qaldırır. Windows-da işləməsi üçün kiçik bir əlavə lazımdır: Mac və digər Unix əsaslı OS-lərdən fərqli olaraq Windows tək bir kök qovluğu anlayışını dəstəkləmir. Buna görə də, bütün yol adları kök qovluğundan fərqli olaraq bir həcmdən (C: və ya E: və ya düşünə biləcəyiniz hər hansı bir hərfdən) başlayır (/)O (bu, sıfır deyil, böyük bir başlıqdır), bizə hazırda hansı əməliyyat sistemindən istifadə etdiyimizi bildirir. Beləliklə, bu dəyişəndə saxlanılan dəyərdə "Qazan" varsa, XML yer filepathımızdakı aparıcı işarəni silmək istəyəcəyik. Bu, aşağıdakı kod xətti ilə edilə bilər (XML faylından bir parçanın yerini uğurla təhlil etdikdən sonra əlavə olunur):

$ loc_hash {$ id} = substr ($ loc_hash {$ id}, 1) əgər $^O = ~ /Win /i;İndi skript OS X və ya Windows -da işləsə də işləyəcək.

Addım 10: Tamamlanmış Script

Tamamlanmış Script
Tamamlanmış Script

Tamamlanmış iTunes autodeletion skriptinin mənim versiyam əlavə olunur, yalnız son məhsulu istəyənlər üçün və bunun necə işlədiyini izah etmir.

Skriptdən istifadə etmək üçün faylı perl faylı (.pl uzantısı) olaraq saxlamaq və sonra onu icra edilə bilən etmək istəyəcəksiniz (Unix -də chmod 751, Windows sistemləri üçün nə olduğuna əmin deyiləm).

Tövsiyə: