Mục lục:
- Bước 1: Bắt đầu
- Bước 2: Ý tưởng tập lệnh cơ bản
- Bước 3: Thư viện XML: Goto Guy của ITunes
- Bước 4: Bạn bè của bạn Hash (ngay cả khi bạn không ở Amsterdam)
- Bước 5: Một (rất) Bài học ngắn gọn về Biểu thức chính quy
- Bước 6: Áp dụng Biểu thức chính quy cho Tập lệnh ITunes
- Bước 7: Định vị và xóa các bản nhạc 1 sao đó
- Bước 8: Thoát khỏi URI và cách vượt qua chúng
- Bước 9: Thêm khả năng tương thích tập lệnh vào Windows
- Bước 10: Tập lệnh hoàn thành
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
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:36
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
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
Để 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)
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
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 đó
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
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
Đí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:
Mũ không phải mũ - một chiếc mũ dành cho những người không thực sự đội mũ nhưng muốn trải nghiệm đội mũ: 8 bước
Hat Not Hat - một chiếc mũ dành cho những người không thực sự đội mũ, nhưng muốn trải nghiệm đội mũ: Tôi đã luôn ước mình có thể trở thành một người đội mũ, nhưng chưa bao giờ tìm thấy một chiếc mũ phù hợp với mình. Cái này " Mũ Không phải Mũ, " hay người mê hoặc như nó được gọi là một giải pháp thượng thừa cho vấn đề mũ của tôi, trong đó tôi có thể tham dự Kentucky Derby, chân không
Tự động xóa các bài hát không mong muốn khỏi IPod của bạn: 4 bước
Tự động xóa các bài hát không mong muốn khỏi IPod của bạn: Hướng dẫn này sẽ chỉ cho bạn cách sử dụng iPod để đánh dấu các bài hát để xóa tự động, do đó bạn sẽ không phải nhớ làm điều đó sau này. Điều tốt nhất tiếp theo là có nút "xóa" trên iPod của bạn. Và đừng lo lắng điều này sẽ không xóa các bài hát khỏi iTunes
Xóa lời bài hát khỏi bài hát nhiều nhất: 6 bước (có hình ảnh)
Xóa lời bài hát khỏi bài hát nhiều nhất: Điều này sẽ dạy bạn cách loại bỏ giọng hát khỏi hầu hết mọi bài hát. Điều này thật tuyệt vời để tạo bài hát Karaoke của riêng bạn Bây giờ trước khi bắt đầu, tôi muốn bạn biết rằng điều này sẽ không loại bỏ hoàn toàn ca sĩ, nhưng nó sẽ thực hiện khá tốt công việc của nó vì vậy nó đáng
Lập trình máy tính của bạn tự động tắt bằng cách chỉ định thời gian bạn muốn nó làm điều đó: 4 bước
Lập trình máy tính của bạn tự động tắt bằng cách chỉ định thời gian bạn muốn nó làm điều đó: này, đó là một hướng dẫn khác được lấy từ cuộc sống hàng ngày của tôi … lần trước tôi đã phải tải xuống rất nhiều phần mềm cho máy tính của mình và tôi phải để nó tải xuống qua đêm, tôi không muốn bật máy tính của mình suốt đêm sau khi hoàn tất quá trình tải xuống và lúc
Cách biến điện thoại di động LG EnV 2 của bạn thành một Modem quay số di động cho máy tính xách tay (hoặc máy tính để bàn) của bạn: 7 bước
Cách biến điện thoại di động LG EnV 2 của bạn thành một Modem quay số di động cho máy tính xách tay (hoặc máy tính để bàn) của bạn: Tất cả chúng ta đều có nhu cầu sử dụng Internet ở những nơi không thể, chẳng hạn như trong ô tô hoặc trong kỳ nghỉ, nơi họ tính một khoản tiền đắt đỏ mỗi giờ để sử dụng wifi của họ. cuối cùng, tôi đã nghĩ ra một cách đơn giản để