Агуулгын хүснэгт:

ITunes -ийн хүсээгүй дуунуудыг компьютерээсээ устгаарай: 10 алхам
ITunes -ийн хүсээгүй дуунуудыг компьютерээсээ устгаарай: 10 алхам

Видео: ITunes -ийн хүсээгүй дуунуудыг компьютерээсээ устгаарай: 10 алхам

Видео: ITunes -ийн хүсээгүй дуунуудыг компьютерээсээ устгаарай: 10 алхам
Видео: The Lemons - Dulguun 2024, Долдугаар сарын
Anonim
ITunes -ийн хүсээгүй дуунуудыг компьютерээсээ устга
ITunes -ийн хүсээгүй дуунуудыг компьютерээсээ устга

Эрхэмсэг ноёд оо, ноёд оо, энэ бол миний кодчилох анхны заавар юм, тиймээс сэтгэгдэл бичихдээ буугаа гэртээ үлдээгээрэй (хутга нь хүлээн зөвшөөрөгддөг). Mp3 тоглуулагч гарч ирснээр хүмүүс урьд өмнө байгаагүй их хэмжээгээр авч явах боломжтой болсон. хөгжим тэдний эргэн тойронд халаасандаа хийжээ. Хүмүүс 5, 10, бүр 15 мянган дууны цуглуулгатай байдаг гэж сонсох нь ховор тохиолддог зүйл биш юм. MP3 тоглуулагчдын дунд Apple -ийн iPod болон түүнийг ажиллуулдаг програм хангамж болох iTunes -ээс илүү алдартай нь байдаггүй. Ийм том хөгжмийн номын сантай боловч тийм ч сайн сонсогдоогүй дуунуудаас салах нь зарим талаар уйтгартай болдог. чи дахиж. ITunes дээрх хөгжмийн цуглуулгаа даган мөрдөж, дургүй дуунуудаасаа салахад олон жилийн хугацаа шаардагдана. Энэ зааварчилгаа эндээс гардаг. Энэ бол зүгээр л аймшигтай зүйл бөгөөд миний сайн найз Perl -ийн туслалцаатайгаар Perl -ийн талаархи анхан шатны мэдлэг нь энэ зааварчилгааныг давтах гэж оролдоход маш их тустай байдаг (гэхдээ та бэлэн кодын бүтээгдэхүүнийг аваад хуулбарлах/буулгах нь гарцаагүй. энэ нь маш сайн ажиллах болно). Perl -ийг сонирхож буй хүмүүст зориулан O'Reilly -ийн "Perl сурах" номыг санал болгож байна. Энэ бол сайн уншсан бөгөөд Perl -ийн талаар бичсэн шилдэг номуудын нэг юм. Хэрэв зөв хийсэн бол, хэрэв та тэнэг зүйл хийж, үнэ цэнэтэй дуунуудаа устгавал би ямар ч хариуцлага хүлээхгүй болно. Дараахь шиг скрипт бичих эсвэл ажиллуулахаасаа өмнө хөгжмийн файлуудаа нөөцлөх талаар сайтар бодож үзээрэй. Зүгээр л болгоомжтой байгаарай, ингэхгүй бол бидэнд ямар ч сэтгэл өвдөхгүй байх болно, баярлалаа. Анхааруулгыг уншина уу? (Тийм ээ, тэр ч байтугай та, анхааруулгыг уншаагүй хүн) Гайхалтай! Эхлээд үзье:-) Шинэчлэлт: Зарим perl скриптчид iTunes скриптүүдийг бичихэд хэцүү байсан бололтой. ITunes-тэй холбоотой олон төрлийн скриптүүдийг үзэхийн тулд Teridon-ийн скриптүүдийг үзнэ үү.

Алхам 1: Эхлэх

Эхлэх
Эхлэх

Бүх зүйлийн нэгэн адил энэ скриптийг ажиллуулахын тулд бага зэрэг бэлтгэл хийх шаардлагатай байна. Тиймээс, iTunes -ээс дууг автоматаар устгахад танд хэрэгтэй зүйлүүд: 1) Компьютер (duh) 2) iTunes (duh duh) 3) Perl (Perl -гүйгээр Perl скрипт ажиллуулахад хэцүү байна уу?) 4) Таны дуртай редактор (би өөрөө vi болон vim -ийг дэмжигч, гэхдээ ямар ч текст засварлагч энэ аргыг хийх ёстой) 5) iPod (заавал биш, гэхдээ удахгүй тодорхой болох шалтгаанаар сайхан байх болно) Perl авах: Энд байгаа заавар нь хангалттай энгийн байх ёстой: https://www.perl.com/download.cspPerl -ийг татаж аваад суулгаж, ашиглахад бэлэн болмогц бид юу хийж байгаа талаар тодорхой мэдээлэл авах шаардлагатай болно. Энэхүү скриптийг анх Mac OS X-д зориулан бүтээсэн гэдгийг тэмдэглэх нь зүйтэй боловч ижил аргууд нь Windows гэх мэт Unix дээр суурилсан бус OS дээр ажиллах ёстой. Зааварчилгааны хичээлийн уйтгартай, "боловсролын" хэсэг болох цаг болжээ.

Алхам 2: Скриптийн үндсэн санаа

iTunes нь хэрэглэгчдэд дуугаа үнэлэх боломжийг олгодог 5 одтой үнэлгээний системийг агуулдаг. 5 одтой дууг шилдэг дуу гэж үздэг бол 1 одтой дууг хамгийн муу дуу гэж үздэг. Бидний зорилгын үүднээс үнэлгээгүй дууг (0 од гэж нэрлэдэг) хэрэглэгч одоогоор үнэлэх боломж олгоогүй байгаа дуу гэж үзэх болно. Энэ нь дууны эзэлдэг хатуу дискний орон зайг хүртэх эрхгүй байх нь хангалттай муу байж магадгүй юм. Тиймээс энэхүү гарын авлагад танд танилцуулах Perl скрипт нь iTunes номын санг задлан шинжилж, 1 одтой үнэлгээ авсан бүх дууг устгах болно. iPod ашиглах. Ийм байдлаар та дуунуудыг зүгээр л үнэлгээ өгөх замаар сонгож болно, тэгээд дараа нь iPod -г компьютер дээрээ синхрончлоход автоматаар устгагдах болно (хэрэв та iPod -аа компьютер дээрээ автоматаар синхрончилдог бол) бид хийж байна, Perl скриптэд зориулж iTunes -ээс дууны мэдээллийг хэрхэн яаж авахыг үзье.

Алхам 3: XML номын сан: ITunes -ийн Goto Guy

XML номын сан: ITunes -ийн Goto Guy
XML номын сан: ITunes -ийн Goto Guy

Дууны үнэлгээнд үндэслэн дууг компьютерээс устгахын тулд бидэнд дууны үнэлгээ, дууны байршил гэсэн 2 мэдээлэл хэрэгтэй болно. Аз болоход бидний хувьд iTunes -ийн талаар хүссэн бүх мэдээллээ авах боломжтой хялбар файл байдаг: iTunes Music Library XML файлаас. XML файлыг "iTunes Music Library.xml" гэж нэрлэдэг бөгөөд таны үндсэн хатуу диск дээрх Хөгжмийн лавлах санд байх ёстой.

XML файлын тухай: iTunes xml файл нь iTunes -ийн хөтөлдөг мэдээллийн сан бөгөөд үргэлж шинэчлэгддэг. ITunes дээр өөрчлөлт хийх үед iTunes XML файлын харгалзах хэсгийг энэ өөрчлөлтийг тэмдэглэхийн тулд өөрчилдөг. Миний iTunes XML файлын жишээ оруулгыг доор өгөв: 1218 Track ID1218NameTake on MeArtistA-HaGenre80's KindMPEG аудио файлSize3682382 Нийт цаг230138Огноог өөрчилсөн2007-09-24T02: 11: 30ZDate Нэмэгдсэн2008-05-28T08Play8888 25T01: 26: 58ZRating40Album Rating40Album Rating ComputedPersistentent ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20AlbnFelFelFel XML файл нь HTML маягийн хаягаар хүрээлэгдсэн утгуудаас бүрдэнэ. Скриптийн зорилгоор бид Track ID, Нэр, Уран бүтээлч, Үнэлгээ, Байршлын мэдээллийг сонирхож үзэх болно. Хэрэв та XML файлыг үзэж байгаа бол энэ дууны "үнэлгээ" 40 байгааг iTunes дээрээс дуу тус бүрт 0 -ээс 100 хүртэлх бүхэл тоогоор оноодог бөгөөд 20 оноо тутамд үнэлгээ өгөх нэмэлт од болдог. Тиймээс, 20 гэсэн үнэлгээ нь 1 одтой, 40 гэсэн үнэлгээ нь 2 одтой гэсэн үг бөгөөд 100 нь 5 одтой гэсэн үг юм. Тиймээс одоо XML файлын талаар мэдэж байгаа болохоор скриптийг эхлүүлье

Алхам 4: Таны найз хэш (хэрвээ та Амстердамд байхгүй ч гэсэн)

Таны найз хэш (хэрвээ та Амстердамд байхгүй ч гэсэн)
Таны найз хэш (хэрвээ та Амстердамд байхгүй ч гэсэн)

Файлуудыг устгахаасаа өмнө бидэнд дууны бүх мэдээллийг нэгтгэсэн мэдээллийн сан хэрэгтэй болно. Хэшийн хэш эсвэл хэш гэх мэт илүү нарийн мэдээллийн бүтцийг ашиглаж болох боловч энэ скрипт нь хэшүүдийн энгийн жагсаалтыг ашиглахад хангалттай хялбар байдаг. тэмдэгт мөр эсвэл түлхүүр/утгын хосуудын массаар индексжүүлсэн болно. Хэшийг дотор нь ямар нэгэн зүйл (утга) агуулсан том торх гэж төсөөлж болох ба метафорик баррель доторх бүх зүйл хаяг (түлхүүр) хавсаргасан байдаг. Та баррель доторх аливаа зүйлийг хаягийг нь олох замаар гаргаж авах боломжтой. Хэшийн талаар дэлгэрэнгүй мэдээлэл авахыг хүсвэл дараах линк хэрэгтэй байж магадгүй: дуунууд. Ийм учраас trackID нь хэш хийхэд тохиромжтой түлхүүр болдог. Тиймээс бид дууны нэр, уран бүтээлч, зэрэглэл, байршлын 4 хэшийг тохируулж болно. Эдгээрийг байгуулсны дараа бид файлыг скан хийж, хэш мэдээллийн сангаа энгийн энгийн илэрхийлэл ашиглан бөглөх боломжтой бөгөөд үүнийг дараа нь харуулах болно.

Алхам 5: Тогтмол хэллэгийн талаархи (маш) товч хичээл

XML файлаас хэш оруулгыг авах, хайлт хийхэд бага зэрэг цаг хэмнэхийн тулд бид Perl -ийн хамгийн хүчирхэг шинж чанаруудын нэг болох ердийн илэрхийлэлийг дуудахыг хүсч байна. Би ердийн хэллэгүүдийн талаар маш товч хичээл хийх болно, гэхдээ илүү дэлгэрэнгүй тайлбар хийхийг хүсч буй хүмүүсийн хувьд онлайнаар тогтмол илэрхийлэх сайн хичээлүүд байдаг. Http://perldoc.perl.org/perlretut.html хаягаар орж сайн илэрхийлэх сайн гарын авлага авах боломжтой. Товчхондоо, тогтмол хэллэгүүд нь мөрүүдийг давах, нэг мөрийг өөр мөрөөр солих эсвэл хэсгүүдийг хадгалах олон хэрэгслээр хангадаг. хожим ашиглах утас. Тогтмол илэрхийлэл нь энэ төсөлд ашиглах гэж буй тохирох (m //) ба орлуулах (s //) оператор гэсэн 2 функцийг өгдөг. Энэ функцүүдийн аль нэгийг даалгаврын контекстэд ашиглахын тулд бид Perl -ийн холбох операторыг (= ~) ашиглах бөгөөд энэ нь загварыг сонгосон мөрийн хувьсагчтай холбоход хэрэглэгддэг.

$ comment = ~ /Purduecer /; $ комментийн мөрөнд "Purduecer" гэсэн хэллэг агуулагдсан бол #буцаана. s/[a-z]/[A-Z]/; #бүх жижиг үсгийг тэмдэгт мөрөнд бичээд $ _ тэмдэгтээр томоор бичээрэйТогтмол илэрхийллийн хоёр дахь ашигтай шинж чанар бол санах ойн хувьсагч юм. Тогтмол илэрхийлэлд та зарим зүйлийг хаалтанд байрлуулж, дараа нь эдгээр хэсгүүдэд тохирсон мөрүүдийн хэсгүүдэд хандахын тулд $ 1, $ 2 гэх мэт санах ойн хувьсагчийг ашиглаж болно.

/(Зааварлах боломжтой) Робот/; #Аливаа мөрийг "Instructables Robot" гэсэн хэллэгээр тааруулаарай $ website = $ 1; #Паренсын эхний багцад багтсан амжилттай загвар тохируулгын үр дүнг хадгалах #(энэ тохиолдолд $ 1 хувьсагч нь "Instructables" агуулна)Эцэст нь хэлэхэд, тогтмол илэрхийлэлд тусгай зориулалтаар үйлчилдэг тодорхой дүрүүд байдаг. Эдгээр нь арын зураасаас зугтах (бүгд С програмистуудад танил мэт санагдах ёстой), тэмдэгтийн анги, мета тэмдэгтүүд юм. Жишээлбэл, хоёр талдаа табтай ганц үсгийг тааруулахын тулд бид хэлж чадна

/\ t [a-zA-Z] t/Эдгээр дөрвөлжин хаалтуудыг тэмдэгтүүдийн ангиллыг тодорхойлохын тулд тогтмол илэрхийлэлд ашигладаг. Гэсэн хэдий ч бид мөрөнд дөрвөлжин хаалтанд бичсэн текстийг олохыг хүссэн гэж бодъё. Доор үзүүлсэн шиг бид үүнийг байгаагаар нь бичиж чадсангүй

/

/

Алхам 6: ITunes скриптэд тогтмол илэрхийлэл ашиглах

ITunes скриптэд тогтмол илэрхийлэл ашиглах
ITunes скриптэд тогтмол илэрхийлэл ашиглах

Тогтмол илэрхийлэлийг дэмждэг үндсэн ойлголтуудын талаар бага зэрэг ойлголттой болсон байгаа тул тэдгээрийг iTunes скриптэд ашиглах цаг болжээ. Тиймээс, m // оператор нь кодонд хүссэн хязгаарлагчийг сонгох боломжийг танд олгоно (бид дөрвөлжин хаалт ашиглана, гэхдээ бусад тусгаарлагч нь мэдээж ажиллах болно). Эхлээд бид зөвхөн нэг хэсгийг унших хэрэгтэй бүрэн iTunes XML файл. Тоглуулах жагсаалт гэх мэт мэдээлэл агуулсан файлын хэсэг шаардлагагүй. Дууны мэдээллийн дараа гарч ирэх тоглуулах жагсаалтын хэсгийн эхний мөр дараах байдлаар харагдаж байна: Тоглуулах жагсаалтууд Тиймээс хэсэг хугацааны дараа бид энэ мөртэй таарвал файлын уншилтын төгсгөл рүү үсрэх мэдэгдлийг нэмж болно.

while () {#loop_instructions_here in last if ($ _ = ~ m [Тоглуулах жагсаалт])}Дараа нь, хэш ID-г бүтээхийн тулд бид if-elsif модыг ашиглан өгөгдлийн сангийн хэшийг бий болгож, утгыг хэш рүү хадгалахын тулд өмнөх алхам дээр олж мэдсэн санах ойн тохирох хувьсагчдыг ашиглаж болно.

хэрэв ($ _ = ~ m [(d+)]) {$ id = $ 1; } elsif ($ _ = ~ m [Үнэлгээ (d+)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Нэр (.+)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Зураач (.+)]) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Байршлын файл: // localhost (.*)]) {$ loc_hash {$ id} = $ 1; }Одоо бид хэш мэдээллийн сангийнхаа суурийг тавьсны дараа 1 одтой файлуудыг хайж олох, устгах ажлыг хийх болно.

Алхам 7: Эдгээр 1 одтой замуудыг олох, устгах

Эдгээр 1 одтой замыг хайж олох, устгах
Эдгээр 1 одтой замыг хайж олох, устгах

Бид мэдээллийн сантай болсон тул 1 одтой замыг хайх цаг болжээ, ингэснээр бид тэдгээрийг устгах боломжтой болно. Perl нь манай хэшүүдийн бүх товчлуурыг давтахын тулд ашиглаж болох foreach loop гэж нэрлэгддэг ашигтай давталтын бүтцийг санал болгодог бөгөөд таны iTunes номын сангийн бүх зам дээр үнэлгээний хэш дээр оруулга байдаггүйг анхаарах хэрэгтэй. Учир нь рейтинггүй дуунуудад iTunes XML файлд дууны үнэлгээний шугам өгдөггүй. Тиймээс, хэшийг давтахдаа бид дараахь бүтцийг ашиглахыг хүсч байна.

foreach $ id (эрэмбэлэх түлхүүрүүд %rate_hash) { #… давталтын кодыг энд оруулна уу}Үүний дараа дараах мэдэгдлийг ашиглахтай адил хялбар болно

$ loc_hash {$ id} -г салгах бол $ rate_hash {$ id} == 20;Дээрх жишээ кодод ашигласан холбоосыг салгах функц нь Perl -ийн файлуудыг устгах арга юм. Та өөрийн үйлдлийн системийн устгах функцэд системийн дуудлага хийх хүсэлтэй байж магадгүй, гэхдээ зөөврийн шалтгаанаар миний бичсэн код нь системийн дуудлагыг ашигладаггүй бөгөөд одоо манай кодын үндсэн бүтэцтэй болсон. Дараах алхмуудад бид кодын зарим сайжруулалтыг хийх бөгөөд ингэснээр та эдгээр 1 однуудаас салах бүрэн боломжтой, ажиллагаатай скрипттэй болно.

Алхам 8: URI -ээс зугтах, тэдгээрийг тойрон гарах арга замууд

Хэрэв та скриптийг байгаагаар нь ажиллуулахыг оролдвол таны үйлдлийн системээс олон тооны алдаа гарах болно, хэрэв та устгах гэж буй файлынхаа замыг харвал хүсээгүй замд суулгасан ер бусын тэмдэгтүүд гарч ирж магадгүй юм. Эдгээр замууд нь URI зугтах тэмдэгтүүдийг агуулсан байх магадлал өндөр байна. URI зугтах гэж юу вэ? HTML болон XML -д URI зугтах тэмдэгтүүд (a URI зугтах) нь тухайн тэмдэгтийн шууд тохиолдлыг хайхад ашигладаг тусгай мета тэмдэгтүүд юм. Жишээлбэл, та XML тэмдэгт мөрөнд энгийн хоосон зайг хэзээ ч харахгүй. Гэсэн хэдий ч та энгийн хоосон зай, %20 -ийн XML дүрслэлийг харах болно. (Та эдгээрийг хөтөчийнхөө URL мөрөнд харсан бөгөөд эдгээр нь юу болохыг та гайхаж байсан. За, одоо та мэднэ үү) URI зугтах нь % тэмдгээс бүрдэх ба тэмдэгтийн ASCII утгыг илэрхийлсэн 2 оронтой арван зургаатын кодоос бүрдэнэ. Та өөрт тохиолдож болох бүх метачарактыг орлуулахын тулд байршлын хэш дээр олон тооны солих мэдэгдлийг бичиж болно (өөрөөр хэлбэл $ loc_hash {$ id} = ~ s/%20//гэх мэт). Perl нь URI:: Escape нэртэй URI:: Escape нэртэй модультай хамт ирдэг бөгөөд энэ нь uri_unescape функцтэй бөгөөд энэ нь URI зугтаалтыг арилгах үүргийг гүйцэтгэдэг.. Модулийг ашиглахын тулд кодынхоо дээд хэсэгт дараах мөрийг нэмэхэд л хангалттай.

URI ашиглах:: Escape;Одоо бид $ loc_hash {$ id} массивыг XML файлын давталтад оноож өгсний дараа бид дараах мөрийг нэмж болно.

uri_unescape ($ loc_hash {$ id});Дээрх мөр нь URI зугтах тэмдэгтүүдийг автоматаар арилгадаг. Нэмэлт урамшууллын хувьд энэ нь олон улсын зарим тэмдэгтүүдийг орчуулдаг. Би скриптийг япон конжи агуулсан цөөн хэдэн филапатаар ажиллуулсан бөгөөд uri_unescape функц нь эдгээр тэмдэгтүүдийн XML форматыг анхны тэмдэгтүүд рүү нь хөрвүүлснээр холбоосыг салгах нь файлыг амжилттай устгах боломжтой болсон.. Би бүрэн ойлгохгүй байгаа шалтгаанаар iTunes нь амперсанд (&) тэмдгийг тэмдэгт мөрөнд кодчилдог. Яагаад ийм байдгийг мэдэх хүн байвал надад хэлээрэй. Үүний зэрэгцээ бид uri_unescape шугамын доор дараах мөрийг нэмж оруулснаар энэ асуудлыг арилгаж байна

$ loc_hash {$ id} = ~ s/&#/&/;Одоо скрипт нь хачин тэмдэгтээс ангид филепатуудтай байх бөгөөд салгах функц нь файлуудыг зохих байршилд нь устгах боломжтой бөгөөд тэдгээрийг устгах боломжтой болно. Хэрэв та Mac OSX (магадгүй бусад Unix-д суурилсан бусад OS үйлдлийн систем) ашиглаж байгаа бол энэ нь тийм байх болно. Скриптийг бусад үйлдлийн системд (Windows гэх мэт) нийцтэй болгохын тулд уншина уу.

Алхам 9: Windows дээр скриптийн нийцтэй байдлыг нэмж оруулах

Windows дээр скриптийн нийцтэй байдлыг нэмж байна
Windows дээр скриптийн нийцтэй байдлыг нэмж байна

Энэхүү скрипт нь өнөөг хүртэл бичсэнээр Unix-д суурилсан үйлдлийн систем дээрх мөрүүдийг үр дүнтэй арилгадаг. Үүнийг Windows дээр ажиллуулахын тулд нэг жижиг нэмэлт хэрэгтэй болно. Mac болон Unix дээр суурилсан бусад OS-ээс ялгаатай нь Windows нь нэг үндсэн лавлах гэсэн ойлголтыг дэмждэггүй. Тиймээс, бүх замын нэрс нь үндсэн сангаас (/) ялгаатай нь эзлэхүүнээс (C: эсвэл E: эсвэл таны бодож болох бусад үсгээр) эхэлдэг. Аз болоход бидний хувьд Perl тусгай хувьсагчтай, $O (энэ бол тэг биш харин том үсэг) бөгөөд энэ нь одоо ямар үйлдлийн системийг ашиглаж байгааг бидэнд хэлж өгнө. Тиймээс, хэрэв энэ хувьсагчид хадгалагдсан утга нь "Win" -г агуулж байвал бид XML байршлын файлын зам дээрх тэргүүлэх зураасыг арилгахыг хүсч байна. Үүнийг дараах кодын мөрөөр хийж болно (XML файлаас замын байршлыг амжилттай задалсны дараа нэмж оруулсан болно):

$ loc_hash {$ id} = substr ($ loc_hash {$ id}, 1) хэрэв $^O = ~ /Win /i;Одоо скрипт нь OS X эсвэл Windows дээр ажилладаг эсэхээс үл хамааран ажиллах болно.

Алхам 10: Дууссан скрипт

Дууссан скрипт
Дууссан скрипт

Дууссан бүтээгдэхүүнийг хүссэн бөгөөд энэ нь хэрхэн ажилладаг талаар тайлбар өгөөгүй хүмүүст зориулагдсан iTunes автоматжуулсан скриптийн миний хувилбарыг хавсаргав.

Скриптийг ашиглахын тулд та файлыг perl файл болгон хадгалж (.pl өргөтгөл), дараа нь үүнийг ажиллуулах боломжтой болгохыг хүсч байна (Unix дээр chmod 751, энэ нь Windows системд юу болохыг сайн мэдэхгүй байна).

Зөвлөмж болгож буй: