Mục lục:

Xóa những bài hát iTunes không mong muốn đó khỏi máy tính của bạn: 10 bước
Xóa những bài hát iTunes không mong muốn đó khỏi máy tính của bạn: 10 bước

Video: Xóa những bài hát iTunes không mong muốn đó khỏi máy tính của bạn: 10 bước

Video: Xóa những bài hát iTunes không mong muốn đó khỏi máy tính của bạn: 10 bước
Video: Cách Xóa Ứng Dụng Trên Máy Tính Laptop Vĩnh Viễn 2024, Tháng mười một
Anonim
Xóa những bài hát iTunes không mong muốn đó khỏi máy tính của bạn
Xóa những bài hát iTunes không mong muốn đó khỏi máy tính của bạn

Xin chào quý vị và các bạn, đây là tài liệu hướng dẫn viết mã đầu tiên của tôi, vì vậy, khi bình luận, hãy để súng ở nhà (tuy nhiên, dao có thể chấp nhận được). của âm nhạc xung quanh với họ trong túi của họ. Không có gì lạ khi nghe nói người ta có bộ sưu tập 5, 10, thậm chí 15 nghìn bài hát (và một số người còn hơn thế nữa). Trong số các máy nghe nhạc mp3, không máy nào phổ biến hơn iPod của Apple và phần mềm chạy nó, iTunes. bạn nữa. Có thể mất nhiều thời gian để theo dõi từng bản nhạc thông qua bộ sưu tập nhạc của bạn trong iTunes và loại bỏ những bài hát bạn không thích. Điều đó đơn giản chỉ đơn giản là khủng khiếp, với sự hỗ trợ từ người bạn tốt của tôi, Perl. Kiến thức cơ bản tốt về Perl là vô cùng hữu ích khi cố gắng lặp lại điều này có thể hướng dẫn, mặc dù không bắt buộc (bạn chắc chắn có thể chỉ cần lấy sản phẩm mã hoàn chỉnh và sao chép / dán nó và nó sẽ hoạt động tốt). Đối với những người quan tâm đến Perl, tôi thực sự giới thiệu cuốn sách "Học Perl" của O'Reilly, đây là một cuốn sách hay và là một trong những cuốn sách viết về Perl hay nhất mà tôi có cơ hội đọc. nếu làm đúng, tôi không thể và đơn giản là sẽ không chịu bất kỳ trách nhiệm nào nếu bạn làm điều gì đó ngu ngốc và xóa những bài hát quý giá của bạn. Vui lòng thực sự cân nhắc việc sao lưu các tệp nhạc của bạn trước khi cố gắng viết hoặc thực thi một tập lệnh như sau. Chỉ cần thận trọng một chút để chúng tôi không có bất kỳ cảm giác nào bị tổn thương nếu bạn không làm vậy, cảm ơn. (Có, ngay cả bạn, người đã không đọc cảnh báo) Tuyệt vời! Hãy bắt đầu:-) Cập nhật: Có vẻ như một số người viết kịch bản perl đã rất vất vả khi viết các tập lệnh iTunes. Để biết nhiều loại script liên quan đến iTunes, hãy xem Teridon's Scripts.

Bước 1: Bắt đầu

Bắt đầu
Bắt đầu

Như với tất cả mọi thứ, cần phải chuẩn bị một chút trước khi chúng ta có thể chạy tập lệnh này. Vì vậy, những thứ bạn sẽ cần để tự động xóa bài hát khỏi iTunes: 1) Máy tính (duh) 2) iTunes (double duh) 3) Perl (khó có thể chạy tập lệnh Perl mà không có Perl, phải không?) 4) Của bạn trình soạn thảo yêu thích (bản thân tôi là người đề xuất vi và vim, nhưng bất kỳ trình soạn thảo văn bản nào cũng nên làm thủ thuật) 5) Một chiếc iPod (không bắt buộc, nhưng rất vui vì lý do sẽ sớm được làm rõ) Bắt Perl: Làm theo hướng dẫn ở đây, phải đủ đơn giản: https://www.perl.com/download.csp Sau khi bạn đã tải xuống, cài đặt Perl và sẵn sàng sử dụng, chúng tôi sẽ muốn một số thông tin cơ bản về những gì chúng tôi đang làm. Cần lưu ý rằng tập lệnh ban đầu được phát triển cho Mac OS X, mặc dù các phương pháp tương tự sẽ hoạt động trên hệ điều hành không dựa trên Unix như Windows. Đã đến lúc dành cho phần "giáo dục" nhàm chán, ẻo lả của Sách có thể hướng dẫn.

Bước 2: Ý tưởng tập lệnh cơ bản

iTunes bao gồm một hệ thống xếp hạng 5 sao để cho phép người dùng xếp hạng các bài hát. Những bài hát được xếp hạng 5 sao được coi là những bài hát hay nhất trong khi những bài hát được xếp hạng 1 sao được cho là những bài hát tệ nhất. Vì mục đích của chúng tôi, chúng tôi sẽ cho rằng bất kỳ bài hát nào thiếu xếp hạng (hay còn gọi là 0 sao) là bài hát mà người dùng chưa có cơ hội xếp hạng. thấy rằng nó có lẽ đã đủ tệ đến mức nó không xứng đáng với dung lượng ổ cứng quý giá mà bài hát chiếm. Do đó, Perl Script mà tôi sẽ trình bày cho bạn trong Có thể hướng dẫn này sẽ phân tích cú pháp thông qua Thư viện iTunes và xóa bất kỳ bài hát nào đã được chỉ định xếp hạng 1 sao. sử dụng iPod. Bằng cách này, bạn có thể chọn các bài hát để xóa khi đang di chuyển đơn giản bằng cách xếp hạng chúng và chúng sẽ tự động bị xóa khi bạn đồng bộ hóa iPod với máy tính của mình sau đó (nếu bạn tự động đồng bộ hóa iPod với máy tính của mình). chúng tôi đang làm, hãy xem cách chúng tôi sẽ lấy thông tin bài hát từ iTunes cho Perl Script.

Bước 3: Thư viện XML: Goto Guy của ITunes

Thư viện XML: Goto Guy của ITunes
Thư viện XML: Goto Guy của ITunes

Để xóa một bài hát khỏi máy tính dựa trên xếp hạng của bài hát đó, chúng tôi yêu cầu 2 thông tin: xếp hạng của bài hát và vị trí của bài hát. May mắn thay cho chúng tôi là có một tệp hữu ích mà chúng tôi có thể lấy tất cả thông tin chúng tôi từng muốn về iTunes từ: tệp XML Thư viện Âm nhạc iTunes. Tệp XML được gọi là "iTunes Music Library.xml" và phải nằm trong thư mục Nhạc trên Ổ cứng chính của bạn.

Giới thiệu về tệp XML: Tệp xml iTunes là một loại cơ sở dữ liệu được iTunes duy trì và luôn được cập nhật. Khi một sửa đổi được thực hiện trong iTunes, phần tương ứng của tệp XML iTunes sẽ được sửa đổi để lưu ý thay đổi này. Dưới đây là một mục nhập mẫu từ tệp XML iTunes của tôi: 1218Track ID1218 25T01: 26: 58ZRating40Album Rating40Album Rating ComputedPersuality ID9AC5DB9713240B44Track TypeFileLocationfile: //localhost/Volumes/HD1/iTunes%20Music/A-Ha/Unknown%20Album/Take%20On%20Meder Count Folder có thể được nhìn thấy từ mục nhập trên tệp XML bao gồm các giá trị được bao quanh bởi các thẻ kiểu HTML. Đối với mục đích của kịch bản, chúng tôi sẽ quan tâm đến các bit thông tin ID bản nhạc, Tên, Nghệ sĩ, Xếp hạng và Vị trí. Nếu bạn đang xem tệp XML, bạn có thể nhận thấy từ phía trên rằng bài hát này có "xếp hạng" là 40. iTunes gán cho mỗi bài hát một số nguyên, nằm trong khoảng từ 0 đến 100, với mỗi 20 điểm là một ngôi sao bổ sung cho xếp hạng. Vì vậy, xếp hạng 20 tương ứng với xếp hạng 1 sao, xếp hạng 40 tương ứng với xếp hạng 2 sao, v.v., với 100 là xếp hạng 5 sao. Vì vậy, bây giờ chúng ta đã biết về tệp XML, hãy bắt đầu viết kịch bản

Bước 4: Bạn bè của bạn Hash (ngay cả khi bạn không ở Amsterdam)

Bạn của bạn là băm (ngay cả khi bạn không ở Amsterdam)
Bạn của bạn là băm (ngay cả khi bạn không ở Amsterdam)

Trước khi chúng ta có thể loại bỏ các tệp, chúng ta cần một cơ sở dữ liệu hoạt động liên kết tất cả thông tin bài hát với nhau. Mặc dù có thể sử dụng các cấu trúc dữ liệu phức tạp hơn, chẳng hạn như một mảng băm hoặc chuỗi băm, nhưng tập lệnh này đủ đơn giản để sử dụng một danh sách băm đơn giản. được lập chỉ mục bởi các chuỗi hoặc một khối lượng lộn xộn của các cặp khóa / giá trị. Người ta có thể coi băm như một cái thùng lớn với những thứ (các giá trị) trong đó, và mọi thứ trong thùng ẩn dụ đều có gắn một thẻ (các phím). Bạn có thể lấy bất kỳ vật phẩm nào trong thùng ra chỉ bằng cách tìm thẻ của nó. Để biết thêm thông tin về hàm băm, liên kết sau có thể hữu ích: https://www.tutorialspoint.com/perl/perl_hashes.htmChúng tôi có thể sử dụng thông tin mà mọi bài hát trong tệp iTunes XML được gán một ID bản nhạc duy nhất để theo dõi nhưng bai hat. Do đó, trackID tạo ra một khóa lý tưởng cho các hàm băm. Do đó, chúng tôi có thể thiết lập 4 hàm băm cho tên bài hát, nghệ sĩ, xếp hạng và vị trí. Khi chúng đã được thiết lập, chúng tôi có thể quét qua tệp và điền vào cơ sở dữ liệu băm của chúng tôi bằng cách sử dụng một số biểu thức chính quy đơn giản, sẽ được hiển thị tiếp theo.

Bước 5: Một (rất) Bài học ngắn gọn về Biểu thức chính quy

Để lấy các mục băm của chúng tôi từ tệp XML và cũng tiết kiệm một chút thời gian tìm kiếm, chúng tôi sẽ muốn kêu gọi sự trợ giúp của một trong những tính năng mạnh mẽ hơn của Perl: biểu thức chính quy. Tôi sẽ làm một bài học rất ngắn gọn về biểu thức chính quy, nhưng đối với những bạn muốn giải thích chi tiết hơn, có rất nhiều hướng dẫn về biểu thức chính quy hay trên mạng. Hãy xem https://perldoc.perl.org/perlretut.html để có hướng dẫn về cụm từ thông dụng. Tóm lại, biểu thức chính quy cung cấp cho chúng tôi một bộ công cụ để chuyển qua các chuỗi, thay thế một chuỗi này bằng một chuỗi khác hoặc lưu các phần của một chuỗi để sử dụng sau này. Biểu thức chính quy cung cấp 2 hàm, các toán tử so khớp (m //) và thay thế (s //), sẽ được sử dụng cho dự án này. Để sử dụng một trong hai hàm này trong ngữ cảnh gán, chúng ta sẽ sử dụng toán tử ràng buộc của Perl (= ~), được sử dụng để liên kết một mẫu với một biến chuỗi được lựa chọn.

$ comment = ~ / Purduecer /; # trả về true nếu chuỗi $ comment chứa cụm từ "Purduecer" s / [a-z] / [A-Z] /; # nhập tất cả các chữ cái thường trong chuỗi và viết hoa chúng thành $ _ stringMột tính năng hữu ích thứ hai của biểu thức chính quy là của các biến bộ nhớ. Trong biểu thức chính quy, bạn có thể đặt các mục nhất định trong dấu ngoặc đơn, sau đó sử dụng các biến bộ nhớ khớp mẫu đặc biệt $ 1, $ 2, v.v. để truy cập các phần của chuỗi khớp với các phần này sau này.

/ (Có thể hướng dẫn) Robot /; # Ghép bất kỳ dòng nào có cụm từ "Robot hướng dẫn" $ website = $ 1; # Lưu kết quả của đối sánh mẫu thành công có trong tập hợp parens # đầu tiên (trong trường hợp này, biến $ 1 chứa "Có thể hướng dẫn")Cuối cùng, trong biểu thức chính quy, có một số ký tự phục vụ một mục đích đặc biệt. Đây là các thoát dấu gạch chéo ngược (tất cả đều trông quen thuộc với các lập trình viên C), các lớp ký tự và siêu ký tự. Ví dụ: để đối sánh với bất kỳ chữ cái đơn lẻ nào có tab ở hai bên, chúng ta có thể nói

/ / t [a-zA-Z] t /Các dấu ngoặc vuông đó được sử dụng trong các biểu thức chính quy để xác định một lớp ký tự. Tuy nhiên, giả sử rằng chúng ta muốn tìm văn bản được đặt trong dấu ngoặc vuông trên dòng. Chúng tôi không thể đơn giản viết nó như hiện tại, như được hiển thị bên dưới

/

/

Bước 6: Áp dụng Biểu thức chính quy cho Tập lệnh ITunes

Áp dụng Biểu thức chính quy cho Tập lệnh ITunes
Áp dụng Biểu thức chính quy cho Tập lệnh ITunes

Bây giờ chúng ta hy vọng đã có một số khái niệm cơ bản về các khái niệm cơ bản cung cấp năng lượng cho cụm từ thông dụng, đã đến lúc áp dụng chúng cho tập lệnh iTunes. Do đó, chúng tôi sẽ tận dụng thực tế là toán tử m // cho phép bạn chọn bất kỳ dấu phân tách nào bạn muốn trong mã (chúng tôi sẽ sử dụng dấu ngoặc vuông, mặc dù các dấu phân cách khác chắc chắn sẽ hoạt động) Trước hết, chúng ta chỉ cần đọc một phần của tệp XML iTunes đầy đủ. Các phần của tệp chứa thông tin như danh sách phát, v.v. là không cần thiết. Dòng đầu tiên của phần danh sách phát, đứng sau thông tin bài hát, trông giống như sau: Danh sách phát Do đó, trong vòng lặp while, chúng ta có thể thêm vào một câu lệnh nhảy đến cuối phần đọc tệp nếu gặp dòng đó.

while () {#loop_instructions_here last if ($ _ = ~ m [Danh sách phát])}Tiếp theo, để xây dựng các ID băm, chúng ta có thể sử dụng cây if-elsif để xây dựng các băm cơ sở dữ liệu của mình, sử dụng các biến đối sánh bộ nhớ mà chúng ta đã học ở bước trước để lưu các giá trị vào các băm

if ($ _ = ~ m [( d +)]) {$ id = $ 1; } elsif ($ _ = ~ m [Xếp hạng ( d +)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Tên (. +)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Nghệ sĩ (. +)]) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ m [Locationfile: // localhost (. *)]) {$ loc_hash {$ id} = $ 1; }Bây giờ chúng tôi đã xây dựng cơ sở cơ sở dữ liệu băm của mình, chúng tôi sẽ đề cập đến việc định vị và xóa các tệp 1-Star, hãy chuyển sang bước tiếp theo!

Bước 7: Định vị và xóa các bản nhạc 1 sao đó

Định vị và xóa các bản nhạc 1 sao đó
Định vị và xóa các bản nhạc 1 sao đó

Bây giờ chúng tôi đã thiết lập cơ sở dữ liệu, đã đến lúc tìm kiếm các bản nhạc 1 sao, để chúng tôi có thể xóa chúng. Perl cung cấp một cấu trúc lặp hữu ích được gọi là vòng lặp foreach có thể được sử dụng để lặp lại tất cả các khóa của hàm băm. Điều này là do các bài hát không có xếp hạng không được cung cấp dòng xếp hạng bản nhạc trong tệp iTunes XML. Do đó, khi lặp qua các hàm băm, chúng ta sẽ muốn sử dụng cấu trúc sau:

foreach $ id (sắp xếp các khóa% rate_hash) {#… chèn mã lặp vào đây}Sau đó, nó đơn giản như sử dụng câu lệnh sau

hủy liên kết $ loc_hash {$ id} nếu $ rate_hash {$ id} == 20;Chức năng hủy liên kết được sử dụng trong đoạn mã mẫu ở trên là cách xóa tệp của Perl. Bạn có thể bị cám dỗ để sử dụng lệnh gọi hệ thống cho chức năng xóa của hệ điều hành của bạn, nhưng vì lý do tính di động, đoạn mã tôi đã viết không sử dụng lệnh gọi hệ thống. Bây giờ chúng ta có cấu trúc cơ bản cho mã của mình. Trong các bước sau, chúng tôi sẽ thực hiện một số cải tiến đối với mã để bạn có thể có một tập lệnh đầy đủ tính năng, chức năng để loại bỏ những điểm 1 sao khó chịu đó.

Bước 8: Thoát khỏi URI và cách vượt qua chúng

Nếu bạn cố gắng chạy tập lệnh như vậy, bạn sẽ gặp phải nhiều lỗi từ hệ điều hành của mình và nếu bạn nhìn vào đường dẫn tệp mà bạn đang cố gắng xóa, bạn có thể tìm thấy các ký tự bất thường được nhúng trong các đường dẫn không mong muốn. Có một cơ hội khá tốt là các đường dẫn này chứa các ký tự thoát URI. URI thoát là gì? Trong HTML và XML, các ký tự thoát URI (còn gọi là các ký tự thoát URI) là các ký tự siêu đặc biệt được sử dụng để tìm kiếm các thể hiện theo nghĩa đen của ký tự đó. Ví dụ, bạn sẽ không bao giờ thấy một khoảng trắng đơn giản trong một chuỗi ký tự XML. Tuy nhiên, bạn sẽ thấy biểu diễn XML của một khoảng trắng đơn giản,% 20. (Chắc chắn bạn đã nhìn thấy chúng trong thanh URL trong trình duyệt của mình và tự hỏi chúng là gì. Chà, giờ thì bạn đã biết) Một lối thoát URI bao gồm dấu% theo sau là mã thập lục phân 2 chữ số đại diện cho giá trị ASCII của ký tự. điểm, bạn có thể viết một loạt các câu lệnh thay thế trên mã băm vị trí để thay thế mọi siêu ký tự có thể có mà bạn gặp phải (ví dụ: $ loc_hash {$ id} = ~ s /% 20 / /; v.v.). Tuy nhiên, may mắn thay, Perl cung cấp một cách tốt hơn để xử lý những điều này.. Để sử dụng mô-đun, chỉ cần thêm dòng sau vào đầu mã của bạn:

sử dụng URI:: Escape;Bây giờ, sau khi chúng tôi gán mảng $ loc_hash {$ id} trong vòng lặp tệp XML, chúng tôi có thể thêm dòng sau

uri_unescape ($ loc_hash {$ id});Dòng trên tự động kết hợp bất kỳ ký tự thoát URI nào. Như một phần thưởng bổ sung, nó cũng dịch một số ký tự quốc tế. Tôi đã chạy tập lệnh với một vài đường dẫn tệp có chữ konji tiếng Nhật trong đó và hàm uri_unescape đã dịch định dạng XML của các ký tự đó sang ký tự gốc của chúng để việc hủy liên kết có thể xóa tệp thành công. Trước khi tiếp tục, phải thực hiện thêm một bước nữa. Vì những lý do mà tôi không hiểu đầy đủ, iTunes mã hóa ký hiệu và (&) dưới dạng & trong đó là chuỗi. Nếu có ai biết tại sao lại như vậy, xin vui lòng cho tôi biết. Trong thời gian chờ đợi, chúng tôi giải quyết vấn đề này bằng cách thêm dòng sau vào dòng uri_unescape

$ loc_hash {$ id} = ~ s / &#/ & /;Bây giờ tập lệnh sẽ có các đường dẫn tệp không có các ký tự lạ và chức năng hủy liên kết sẽ có thể tìm thấy các tệp ở vị trí thích hợp của chúng để xóa chúng. Vâng, nó sẽ xảy ra nếu bạn đang sử dụng Mac OSX (và có lẽ là hầu hết các hệ điều hành dựa trên Unix khác). Đọc tiếp để làm cho tập lệnh tương thích trên các hệ điều hành khác (cụ thể là Windows).

Bước 9: Thêm khả năng tương thích tập lệnh vào Windows

Thêm khả năng tương thích tập lệnh vào Windows
Thêm khả năng tương thích tập lệnh vào Windows

Tập lệnh, như được viết cho đến nay, loại bỏ các dấu vết trên các hệ điều hành dựa trên Unix một cách hiệu quả. Để làm cho nó hoạt động trên Windows, cần có một bổ sung nhỏ. Không giống như Mac và các hệ điều hành dựa trên Unix khác, Windows không hỗ trợ khái niệm về một thư mục gốc duy nhất. Do đó, tất cả các tên đường dẫn đều bắt đầu bằng một volume (C: hoặc E: hoặc bất kỳ chữ cái nào khác mà bạn có thể nghĩ đến, cho vấn đề đó) trái ngược với thư mục gốc (/). Thật may mắn cho chúng tôi, Perl có một biến đặc biệt, $O (đó là chữ o, không phải là số 0), cho chúng ta biết chúng ta hiện đang sử dụng hệ điều hành nào. Vì vậy, nếu giá trị được lưu trữ trong biến đó chứa "Win", chúng tôi sẽ muốn xóa dấu gạch chéo ở đầu trên đường dẫn tệp vị trí XML của chúng tôi. Điều này có thể được thực hiện với dòng mã sau (được thêm vào sau khi chúng tôi phân tích cú pháp thành công vị trí của một bản nhạc từ tệp XML):

$ loc_hash {$ id} = substr ($ loc_hash {$ id}, 1) nếu $ ^ O = ~ / Thắng / i;Bây giờ, tập lệnh sẽ hoạt động cho dù nó chạy trên OS X hay Windows.

Bước 10: Tập lệnh hoàn thành

Tập lệnh đã hoàn thành
Tập lệnh đã hoàn thành

Đính kèm là phiên bản của tôi về tập lệnh tự động tăng tốc iTunes đã hoàn chỉnh, dành cho những bạn chỉ muốn có sản phẩm cuối cùng chứ không phải giải thích về cách hoạt động của nó.

Để sử dụng tập lệnh, bạn sẽ muốn lưu tệp dưới dạng tệp perl (phần mở rộng.pl) và sau đó làm cho nó có thể thực thi được (chmod 751 trong Unix, không chắc chắn nó là gì đối với hệ thống Windows).

Đề xuất: