Სარჩევი:

წაშალეთ ITunes– ის არასასურველი სიმღერები თქვენი კომპიუტერიდან: 10 ნაბიჯი
წაშალეთ ITunes– ის არასასურველი სიმღერები თქვენი კომპიუტერიდან: 10 ნაბიჯი

ვიდეო: წაშალეთ ITunes– ის არასასურველი სიმღერები თქვენი კომპიუტერიდან: 10 ნაბიჯი

ვიდეო: წაშალეთ ITunes– ის არასასურველი სიმღერები თქვენი კომპიუტერიდან: 10 ნაბიჯი
ვიდეო: როგორ ჩავწერო CD-ი დისკზე სიმღერები ავტომობილებისთვის 2024, ივლისი
Anonim
წაშალეთ ITunes– ის არასასურველი სიმღერები თქვენი კომპიუტერიდან
წაშალეთ ITunes– ის არასასურველი სიმღერები თქვენი კომპიუტერიდან

გამარჯობა ქალბატონებო და ბატონებო, ეს არის ჩემი პირველი სასწავლო კოდირება, ასე რომ გთხოვთ, როდესაც აკეთებთ კომენტარს, დატოვეთ იარაღი სახლში (თუმცა დანები მისაღებია). Mp3 პლეერების მოსვლასთან ერთად შესაძლებელი გახდა ხალხისთვის უპრეცედენტო თანხის გადატანა მუსიკის გარშემო მათ ჯიბეში. არც თუ ისე იშვიათია ადამიანების მოსმენა, რომლებსაც აქვთ 5, 10, თუნდაც 15 ათასი სიმღერის კოლექცია (და ზოგიერთი ადამიანი, უფრო მეტიც). Mp3 პლეერებიდან არცერთი არ არის უფრო პოპულარული, ვიდრე Apple– ის iPod და პროგრამული უზრუნველყოფა, რომელიც მას მართავს, iTunes. თუმცა, ასეთი დიდი მუსიკალური ბიბლიოთეკებით, შეიძლება გარკვეულწილად დამღლელი გახდეს სიმღერების მოშორება, რომლებიც უბრალოდ არ ჟღერს კარგად ან მიმზიდველად შენ აღარ შეიძლება საუკუნეები დასჭირდეს სიმღერას iTunes– ში თქვენი მუსიკალური კოლექციის საშუალებით და თავი აარიდოთ იმ სიმღერებს, რომლებიც არ მოგწონთ. სწორედ აქ მოდის ეს სასწავლო. ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ სიმღერების ავტომატურად მოშორების გზას ეს უბრალოდ უბრალო საშინელებაა, ჩემი კარგი მეგობრის, პერლის დახმარებით. პერლის კარგი ძირითადი ცოდნა ძალზედ სასარგებლოა, როდესაც ცდილობს გაიმეოროს ეს სასწავლო, თუმცა არ არის საჭირო (თქვენ ნამდვილად შეგიძლიათ აიღოთ მზა კოდის პროდუქტი და დააკოპიროთ/ჩასვით ის კარგად იმუშავებს). მათთვის, ვინც დაინტერესებულია პერლით, მე გირჩევთ წიგნს "სწავლა პერლი" ო'რეილიდან, ეს არის კარგი წასაკითხი და პერლის ერთ -ერთი საუკეთესო დაწერილი წიგნი, მე მქონდა წაკითხვის შანსი. მნიშვნელოვანია: სანამ აქ წარმოდგენილი მეთოდები იმუშავებს თუ სწორად გაკეთდა, მე არ შემიძლია და უბრალოდ არ ვიღებ რაიმე პასუხისმგებლობას, თუ თქვენ რაიმე სისულელეს გააკეთებთ და წაშლით თქვენს ძვირფას სიმღერებს. გთხოვთ მტკიცედ გაითვალისწინოთ თქვენი მუსიკალური ფაილების სარეზერვო ასლების შექმნა, სანამ სცადეთ დაწეროთ ან შეასრულოთ ისეთი სკრიპტი, როგორიცაა შემდეგი. უბრალოდ შეცდით სიფრთხილესთან დაკავშირებით, რომ ჩვენ არ გვქონდეს რაიმე შეგრძნება, თუ თქვენ არ გმადლობთ. წაიკითხეთ გაფრთხილება? (დიახ, თქვენც კი, ვინც არ წაიკითხა გაფრთხილება) მშვენიერია! დავიწყოთ:-) განახლება: როგორც ჩანს, ზოგიერთი perl სკრიპტისტი მუშაობდა iTunes სკრიპტების წერაში. ITunes– თან დაკავშირებული სხვადასხვა სკრიპტისთვის, გადახედეთ ტერიდონის სკრიპტებს.

ნაბიჯი 1: დაწყება

Ვიწყებთ
Ვიწყებთ

როგორც ყველაფერში, არის პატარა მომზადება, რომელიც უნდა გაკეთდეს მანამ, სანამ ამ სკრიპტის გაშვებას შევძლებთ. ასე რომ, თქვენ დაგჭირდებათ iTunes– დან სიმღერების ავტომატურად წაშლა: 1) კომპიუტერი (duh) 2) iTunes (ორმაგი duh) 3) Perl (ძნელია Perl სკრიპტის გაშვება Perl– ის გარეშე, არა?) 4) თქვენი საყვარელი რედაქტორი (მე ვარ vi და vim– ის მომხრე, მაგრამ ნებისმიერმა ტექსტურმა რედაქტორმა უნდა შეასრულა) 5) iPod (არ არის სავალდებულო, მაგრამ სასიამოვნოა იმ მიზეზების გამო, რომელიც მალე გახდება ნათელი) Perl მიღებისას ინსტრუქცია აქ უნდა იყოს საკმარისად მარტივი: https://www.perl.com/download.csp მას შემდეგ რაც Perl გადმოწერილი, დაინსტალირებული და წასასვლელად მზად იქნება, ჩვენ გვსურს რამდენიმე ძირითადი ინფორმაცია იმის შესახებ თუ რას ვაკეთებთ. უნდა აღინიშნოს, რომ სკრიპტი თავდაპირველად შემუშავდა Mac OS X– ისთვის, თუმცა იგივე მეთოდები უნდა მუშაობდეს არა Unix– ზე დაფუძნებულ OS– ზე, როგორიცაა Windows. დროა სასწავლო პროგრამის მოსაწყენი, „საგანმანათლებლო“ნაწილისა.

ნაბიჯი 2: ძირითადი სკრიპტის იდეა

iTunes მოიცავს 5 ვარსკვლავიანი შეფასების სისტემას, რომელიც მომხმარებლებს საშუალებას აძლევს შეაფასონ სიმღერები. 5 ვარსკვლავიანი რეიტინგის მქონე სიმღერები ითვლება საუკეთესო სიმღერებად, ხოლო 1 ვარსკვლავიანი სიმღერების სიმღერები ითვლება ყველაზე უარეს სიმღერებად. ჩვენი მიზნებისათვის, ჩვენ ვივარაუდებთ, რომ ნებისმიერი სიმღერა, რომელსაც აკლია რეიტინგი (აკა 0 ვარსკვლავი) არის ის, რაც მომხმარებელს ჯერ არ აქვს შანსი შეაფასოს. პირადად, სიმღერების შეფასებისას, თუ სიმღერას აქვს 1 ვარსკვლავიანი ნიშანი, მე აღმოვაჩინე, რომ ეს საკმაოდ ცუდია, რომ არ იმსახურებს მყარ დისკზე იმ ადგილს, რომელსაც სიმღერა იკავებს. ამრიგად, Perl Script მე წარმოგიდგენთ ამ ინსტრუქციულ რეჟიმში, გაანალიზებს iTunes ბიბლიოთეკას და წაშლის ნებისმიერ სიმღერას, რომელსაც მიენიჭა 1 ვარსკვლავიანი რეიტინგი. როგორც დამატებითი ბონუსი, სიმღერები შეიძლება შეფასდეს, სანამ მომხმარებელი იმყოფება iPod– ის გამოყენებით. ამ გზით, თქვენ შეგიძლიათ აირჩიოთ სიმღერები წასაშლელად გადაადგილებისას უბრალოდ მათი შეფასებით და ისინი ავტომატურად წაიშლება, როდესაც თქვენს iPod– ს კომპიუტერთან სინქრონიზაციას უკეთებთ (თუ ავტომატურად სინქრონიზებთ თქვენს iPod– ს თქვენს კომპიუტერში). ახლა ჩვენ ვიცით რა ჩვენ ვაკეთებთ, ვნახოთ, როგორ ვაპირებთ სიმღერის ინფორმაციის ამოღებას iTunes– დან Perl Script– ისთვის.

ნაბიჯი 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 ფაილის ნიმუშის ჩანაწერი მოცემულია ქვემოთ: ალბომი რეიტინგი 40 XML ფაილი შედგება ღირებულებებისგან, რომლებიც გარშემორტყმულია HTML სტილის ტეგებით. სკრიპტის მიზნებისათვის ჩვენ დავინტერესდებით ტრეკის ID, სახელი, შემსრულებელი, რეიტინგი და ადგილმდებარეობის ინფორმაცია. თუ თქვენ უყურებთ XML ფაილს, თქვენ შეგიძლიათ შეამჩნიოთ ზემოდან, რომ ამ სიმღერას აქვს "რეიტინგი" 40. iTunes აძლევს თითოეულ სიმღერას მთელ რიცხვს, 0 -დან 100 -მდე, ყოველი 20 ქულა არის რეიტინგის დამატებითი ვარსკვლავი. ასე რომ, რეიტინგი 20 შეესაბამება 1 ვარსკვლავის რეიტინგს, რეიტინგი 40 არის 2 ვარსკვლავიანი და ასე შემდეგ, 100 არის 5 ვარსკვლავიანი. ახლა, როდესაც ჩვენ ვიცით XML ფაილის შესახებ, დავიწყოთ სკრიპტირება

ნაბიჯი 4: შენი მეგობარი ჰაში (მაშინაც კი, თუ ამსტერდამში არ ხარ)

შენი მეგობარი ჰაში (მაშინაც კი, თუ ამსტერდამში არ ხარ)
შენი მეგობარი ჰაში (მაშინაც კი, თუ ამსტერდამში არ ხარ)

სანამ ფაილების აღმოფხვრას შევძლებთ, გვჭირდება სამუშაო მონაცემთა ბაზა, რომელიც სიმღერის ყველა ინფორმაციას ერთმანეთთან აკავშირებს. მიუხედავად იმისა, რომ მონაცემთა უფრო დახვეწილი სტრუქტურები, როგორიცაა ჰეშების მასივი ან ჰეშების ჰეშები, შეიძლება გამოყენებულ იქნას, ეს სკრიპტი იმდენად მარტივია, რომ დამსახურებისამებრ გამოიყენოს ჰეშების მარტივი სია. არაინტიტირებულებისთვის, ჰაში სხვა არაფერია თუ არა მასივი, რომელიც ინდექსირებულია სტრიქონებით, ან გასაღების/მნიშვნელობის წყვილების შერწყმული მასით. შეიძლება ვიფიქროთ, რომ ჰაში არის დიდი კასრი, რომელშიც არის შიგთავსები (ღირებულებები), ხოლო მეტაფორულ კასრში ყველაფერს აქვს წარწერა (გასაღებები). თქვენ შეგიძლიათ ამოიღოთ ნებისმიერი ელემენტი ლულაში უბრალოდ მისი ეტიკეტის პოვნით. ჰეშების შესახებ დამატებითი ინფორმაციისთვის, შემდეგი ბმული შეიძლება იყოს სასარგებლო: https://www.tutorialspoint.com/perl/perl_hashes.htm ჩვენ შეგვიძლია გამოვიყენოთ ინფორმაცია, რომ iTunes XML ფაილში თითოეულ სიმღერას ენიჭება უნიკალური სიმღერის ID, რათა თვალყური ადევნოს სიმღერები. ამის გამო, trackID ქმნის იდეალურ გასაღებს ჰეშებისთვის. ამიტომ, ჩვენ შეგვიძლია შევქმნათ 4 ჰაში სიმღერის სათაურის, შემსრულებლის, რეიტინგისა და ადგილმდებარეობისთვის. მას შემდეგ რაც დადგინდება, ჩვენ შეგვიძლია შევამოწმოთ ფაილი და შეავსოთ ჩვენი ჰეში მონაცემთა ბაზა მარტივი ჩვეულებრივი გამონათქვამების გამოყენებით, რომელიც ნაჩვენები იქნება შემდეგში.

ნაბიჯი 5: მოკლე გაკვეთილი რეგულარულ გამონათქვამებზე

იმისათვის, რომ ამოვიღოთ ჩვენი ჰეშ ჩანაწერები XML ფაილიდან და ასევე დაზოგოთ ცოტა დრო ძებნისას, ჩვენ გვსურს გამოვიძახოთ პერლის ერთ -ერთი უფრო ძლიერი მახასიათებლის: რეგულარული გამოთქმის დახმარებით. მე გავაკეთებ ძალიან მოკლე გაკვეთილს რეგულარულ გამონათქვამებზე, მაგრამ მათთვის, ვისაც სურს უფრო დეტალური ახსნა, არის უამრავი კარგი რეგულარული გამოხატვის გაკვეთილი ინტერნეტში. შეამოწმეთ https://perldoc.perl.org/perlretut.html კარგი რეგულარული გამოხატვის სამეურვეო პროგრამისათვის. მოკლედ, რეგულარული გამონათქვამები გვაძლევს ინსტრუმენტების ნაკრებებს სტრიქონების გასავლელად, ერთი სტრიქონის შეცვლით მეორე სტრიქონით, ან ნაწილების დაზოგვით სტრიქონი მოგვიანებით გამოყენებისთვის. რეგულარული გამონათქვამები იძლევა 2 ფუნქციას, შესატყვისი (m //) და შემცვლელი (s //) ოპერატორებს, რომლებიც გამოყენებული იქნება ამ პროექტისათვის. რომელიმე ამ ფუნქციის გამოსაყენებლად კონტექსტში, ჩვენ გამოვიყენებთ Perl- ის სავალდებულო ოპერატორს (= ~), რომელიც გამოიყენება ნიმუშის არჩევის სტრიქონის ცვლადთან დასაკავშირებლად. მაგალითები:

$ კომენტარი = ~ /გამხსნელი /; #ბრუნდება ჭეშმარიტი, თუ $ კომენტარის სტრიქონი შეიცავს ფრაზას "Purduecer" s/[a-z]/[A-Z]/; #მიიღეთ ყველა მცირე ასო სტრიქონით და დააწერეთ $ _ სტრიქონითრეგულარული გამონათქვამების მეორე სასარგებლო თვისებაა მეხსიერების ცვლადები. რეგულარულ გამონათქვამებში შეგიძლიათ განათავსოთ გარკვეული ელემენტი ფრჩხილებში, შემდეგ კი გამოიყენოთ სპეციალური ნიმუშის მეხსიერების ცვლადი $ 1, $ 2 და ა.შ. სტრიქონების იმ ნაწილებზე წვდომისათვის, რომლებიც შემდგომ შეესაბამება ამ ნაწილებს. მაგალითები

/(ინსტრუქციის) რობოტი/; #შეუსაბამეთ ნებისმიერ ხაზს ფრაზა "Instructables Robot" $ website = $ 1; #შეინახეთ წარმატებული ნიმუშის თანხვედრის შედეგი, რომელიც შეიცავს parens პირველ ნაკრებში #(ამ შემთხვევაში, ცვლადი $ 1 შეიცავს "ინსტრუქციას")დაბოლოს, რეგულარულ გამონათქვამებში არის გარკვეული სიმბოლოები, რომლებიც განსაკუთრებულ მიზანს ემსახურება. ეს არის უკუსვლის გაქცევა (ყველა მათგანი ნაცნობი უნდა იყოს C პროგრამისტებისთვის), პერსონაჟების კლასები და მეტა ხასიათი. მაგალითად, ჩვენ შეგვიძლია ვთქვათ რომელიმე ასოზე, რომელსაც აქვს ჩანართი ორივე მხარეს

/\ t [a-zA-Z] t/ეს კვადრატული ფრჩხილები გამოიყენება რეგულარულ გამონათქვამებში პერსონაჟების კლასის დასადგენად. დავუშვათ, რომ ჩვენ გვინდოდა ტექსტის პოვნა კვადრატულ ფრჩხილებში. ჩვენ არ შეგვიძლია უბრალოდ დავწეროთ ის როგორც არის, როგორც ქვემოთ მოცემულია

/

/

ნაბიჯი 6: რეგულარული გამონათქვამების გამოყენება ITunes სკრიპტზე

რეგულარული გამონათქვამების გამოყენება ITunes სკრიპტზე
რეგულარული გამონათქვამების გამოყენება ITunes სკრიპტზე

ახლა, როდესაც ჩვენ ვიმედოვნებთ, გვაქვს გარკვეული წარმოდგენა ძირითად კონცეფციებზე, რომლებიც რეგულარულ გამონათქვამებს აძლიერებს, დროა გამოვიყენოთ ისინი iTunes სკრიპტზე. Xml კოდის კითხვისას საკმაოდ ხშირად გვხვდება გარკვეული სიმბოლოები, როგორიცაა წინამორბედი სლაიდი. ამრიგად, ჩვენ ვისარგებლებთ იმით, რომ m // ოპერატორი მოგცემთ არჩევანს, რაც გსურთ კოდში რაც გსურთ. სრული iTunes XML ფაილი. ფაილის ნაწილები, რომლებიც შეიცავს ინფორმაციას, როგორიცაა დასაკრავი სიები და სხვა, არ არის საჭირო. დასაკრავი სიების განყოფილების პირველი სტრიქონი, რომელიც მოდის სიმღერის ინფორმაციის შემდეგ, გამოიყურება შემდეგნაირად: დასაკრავი სიები. ამიტომ, ცოტა ხნის მარყუჟში, ჩვენ შეგვიძლია დავამატოთ განცხადება, რომელიც გადადის ფაილის წაკითხვის ბოლომდე, თუ ეს ხაზი გვხვდება.

while () {#loop_instructions_here last if ($ _ = ~ m [დასაკრავი სიები])}შემდეგი, hash ID– ების შესაქმნელად, ჩვენ შეგვიძლია გამოვიყენოთ if-elsif ხე ჩვენი მონაცემთა ბაზის ჰეშების შესაქმნელად, მეხსიერების შესატყვისი ცვლადების გამოყენებით, რომლის შესახებაც ვისწავლეთ წინა საფეხურზე, რომ შევინახოთ ღირებულებები ჰეშებში

თუ ($ _ = ~ მ [(d+)]) {$ id = $ 1; } elsif ($ _ = ~ m [რეიტინგი (d+)]) {$ rate_hash {$ id} = $ 1; } elsif ($ _ = ~ m [სახელი (.+)]) {$ name_hash {$ id} = $ 1; } elsif ($ _ = ~ m [შემსრულებელი (.+)])) {$ art_hash {$ id} = $ 1; } elsif ($ _ = ~ მ [Locationfile: // localhost (.*)]) {$ loc_hash {$ id} = $ 1; }ახლა, როდესაც ჩვენ შევქმენით ჩვენი hash მონაცემთა ბაზის საფუძველი, ჩვენ დაფარავს 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 გაქცევის სიმბოლოები (იგივე URI გაქცევა) არის სპეციალური მეტა პერსონაჟები, რომლებიც გამოიყენება ამ პერსონაჟის პირდაპირი მნიშვნელობების საძიებლად. მაგალითად, თქვენ არასოდეს ნახავთ მარტივ თეთრ სივრცეს XML სიმბოლოების სტრიქონში. თქვენ ნახავთ XML გამოსახულებას უბრალო თეთრი სივრცის შესახებ, %20. (რა თქმა უნდა, თქვენ ნახეთ ეს თქვენს ბრაუზერში URL ზოლში და დაინტერესდით რა იყო ისინი. კარგად, ახლა თქვენ იცით) URI გაქცევა შედგება % ნიშნისგან, რასაც მოჰყვება 2-ნიშნა თექვსმეტობითი კოდი, რომელიც წარმოადგენს პერსონაჟის ASCII მნიშვნელობას. წერტილი, თქვენ შეგიძლიათ დაწეროთ მთელი რიგი შემცვლელი განცხადებები მდებარეობის ჰეშზე, რათა შეცვალოთ ყველა შესაძლო მეტა ხასიათი, რომელსაც შეხვდებით (ანუ $ loc_hash {$ id} = s/%20//; და ასე შემდეგ). საბედნიეროდ, თუმცა, Perl გთავაზობთ უკეთეს გზას ამ საკითხებზე ზრუნვისთვის. Perl მოყვება მოდული სახელწოდებით URI:: Escape, რომელსაც აქვს ჩაშენებული ფუნქცია, uri_unescape, რომელიც შეასრულებს URI გაქცევის აღმოფხვრის საქმეს ჩვენთვის რა მოდულის გამოსაყენებლად, უბრალოდ დაამატეთ შემდეგი ხაზი თქვენი კოდის ზედა ნაწილში:

გამოიყენეთ URI:: გაქცევა;მას შემდეგ, რაც ჩვენ მივანიჭებთ $ loc_hash {$ id} მასივს XML ფაილის მარყუჟში, შემდეგ შეგვიძლია დავამატოთ შემდეგი ხაზი

uri_unescape ($ loc_hash {$ id});ზემოთ მოყვანილი ხაზი ავტომატურად გამორიცხავს URI- ის გაქცევის სიმბოლოებს. როგორც დამატებითი ბონუსი, ის ითარგმნება რამდენიმე საერთაშორისო სიმბოლოც. მე გავუშვი სკრიპტი რამდენიმე ფაილური ბილიკით, რომელშიც იაპონური კონჯი იყო და uri_unescape ფუნქცია თარგმნიდა ამ სიმბოლოების XML ფორმატებს თავდაპირველ სიმბოლოებზე, რათა კავშირის გაუქმებამ წარმატებით წაშალოს ფაილი. სანამ გავაგრძელებთ, კიდევ ერთი ნაბიჯი უნდა გადადგას რა იმ მიზეზების გამო, რომლებიც მე ბოლომდე არ მესმის, iTunes აშიფრებს ampersand (&) სიმბოლოს როგორც & მის სტრიქონებში. თუ ვინმემ იცით რატომ არის ეს, გთხოვთ შემატყობინოთ. იმავდროულად, ჩვენ ამ საკითხს აღმოვფხვრით uri_unescape ხაზის ქვეშ შემდეგი ხაზის დამატებით

$ loc_hash {$ id} = ~ s/&#/&/;ახლა სკრიპტს ექნება უცნაური სიმბოლოებისგან განლაგებული ფაილური ბილიკები და კავშირის გაუქმების ფუნქცია შეძლებს ფაილების პოვნას მათ შესაბამის ადგილას მათი წასაშლელად. კარგი იქნება, თუ თქვენ იყენებთ Mac OSX- ს (და სავარაუდოდ უმეტეს Unix– ზე დაფუძნებულ OS– ებსაც). წაიკითხეთ სკრიპტი სხვა ოპერაციულ სისტემებზე (კერძოდ, Windows).

ნაბიჯი 9: სკრიპტის თავსებადობის დამატება Windows- ში

სკრიპტის თავსებადობის დამატება Windows- ში
სკრიპტის თავსებადობის დამატება Windows- ში

სკრიპტი, როგორც აქამდე იყო დაწერილი, ეფექტურად აშორებს ტრეკებს Unix– ზე დაფუძნებულ ოპერაციულ სისტემებზე. Windows- ზე მუშაობისთვის საჭიროა ერთი უმნიშვნელო დამატება. Mac- ისა და Unix– ზე დაფუძნებული სხვა OS– ებისგან განსხვავებით, Windows მხარს არ უჭერს ერთი ძირითად დირექტორიის კონცეფციას. აქედან გამომდინარე, ყველა სახელი იწყება მოცულობით (C: ან E: ან ნებისმიერი სხვა ასო, რომლის შესახებაც შეგიძლიათ იფიქროთ) root დირექტორიისგან განსხვავებით (/). საბედნიეროდ ჩვენთვის, Perl– ს აქვს სპეციალური ცვლადი, $O (ეს არის კაპიტალი o, და არა ნული), რომელიც გვეუბნება რა ოპერაციულ სისტემას ვიყენებთ ამჟამად. ამრიგად, თუ ამ ცვლადში შენახული მნიშვნელობა შეიცავს "Win" - ს, ჩვენ გვსურს ამოვიღოთ წამყვანი სლაიდი ჩვენს XML მდებარეობის ფაილის გზაზე. ეს შეიძლება გაკეთდეს კოდის შემდეგი ხაზით (დაემატა მას შემდეგ, რაც ჩვენ წარმატებით გავაანალიზებთ სიმღერის ადგილმდებარეობას XML ფაილიდან):

$ loc_hash {$ id} = substr ($ loc_hash {$ id}, 1) თუ $^O = ~ /Win /i;ახლა, სკრიპტი იმუშავებს, მუშაობს თუ არა OS X- ზე ან Windows- ზე.

ნაბიჯი 10: დასრულებული სკრიპტი

დასრულებული სკრიპტი
დასრულებული სკრიპტი

თანდართული არის iTunes– ის დასრულებული ავტომატური სკრიპტის ჩემი ვერსია, მათთვის, ვისაც უბრალოდ სურდა საბოლოო პროდუქტი და არა ახსნა, თუ როგორ მუშაობს იგი.

სკრიპტის გამოსაყენებლად თქვენ გსურთ შეინახოთ ფაილი როგორც perl ფაილი (.pl გაფართოება) და შემდეგ გახადოთ ის შემსრულებელი (chmod 751 Unix– ში, არ ვიცი რა არის Windows სისტემებისთვის).

გირჩევთ: