فهرست مطالب:

آن آهنگهای ناخواسته ITunes را از رایانه خود حذف کنید: 10 مرحله
آن آهنگهای ناخواسته ITunes را از رایانه خود حذف کنید: 10 مرحله

تصویری: آن آهنگهای ناخواسته ITunes را از رایانه خود حذف کنید: 10 مرحله

تصویری: آن آهنگهای ناخواسته ITunes را از رایانه خود حذف کنید: 10 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, نوامبر
Anonim
آن آهنگهای ناخواسته ITunes را از رایانه خود حذف کنید
آن آهنگهای ناخواسته ITunes را از رایانه خود حذف کنید

سلام خانمها و آقایان ، این اولین برنامه نویسی من است ، بنابراین لطفاً هنگام اظهار نظر ، اسلحه های خود را در خانه بگذارید (با این حال ، چاقوها قابل قبول هستند). با ظهور پخش کننده های mp3 ، امکان حمل مقادیر بی سابقه برای مردم فراهم شده است. موسیقی در جیب آنها شنیدن افرادی که دارای مجموعه ای از 5 ، 10 ، حتی 15 هزار آهنگ (و برخی افراد ، حتی بیشتر) هستند ، غیر معمول نیست. از بین پخش کننده های mp3 ، هیچ کدام محبوب تر از iPod اپل و نرم افزاری که آن را اجرا می کند ، iTunes نیست. با این وجود ، با چنین کتابخانه های موسیقی بزرگ ، رهایی از آهنگ هایی که به نظر خوب و جذاب نمی آیند تا حدودی خسته کننده می شود. تو دیگر طول می کشد تا آهنگها را از طریق مجموعه موسیقی خود در iTunes ردیابی کنید و آهنگهایی را که دوست ندارید از بین ببرید. این جایی است که این دستورالعمل به آن وارد می شود. در این دستورالعمل ، من راهی برای خلاص شدن خودکار از آهنگها به شما نشان خواهم داد که به سادگی وحشتناک هستند ، با کمک دوست خوبم ، Perl. دانش اولیه خوب از Perl هنگام تلاش برای تکرار این دستورالعمل بسیار مفید است ، اگرچه لازم نیست (مطمئناً می توانید محصول کد نهایی را تهیه کرده و کپی/جایگذاری کنید آن را به خوبی کار می کند). برای علاقه مندان به Perl ، من کتاب "Learning Perl" را از O'Reilly به شدت توصیه می کنم ، این کتاب خوبی است و یکی از بهترین کتابهای نوشته شده در Perl است که من شانس خواندن آن را داشته ام. اگر به درستی انجام شود ، اگر شما کاری احمقانه انجام دهید و آهنگهای گرانبهای خود را حذف کنید ، هیچ مسئولیتی را نمی پذیرم و به سادگی نمی پذیرم. لطفاً قبل از اقدام برای نوشتن یا اجرای اسکریپتی مانند موارد زیر ، پشتیبان گیری از فایل های موسیقی خود را کاملاً در نظر بگیرید. فقط در مورد احتیاط اشتباه کنید تا در صورت عدم آسیب ، هیچ احساسی نداشته باشیم ، هشدار را بخوانید؟ (بله ، حتی شما ، فردی که هشدار را نخوانده اید) عالی است! بیایید شروع کنیم:-) به روز رسانی: به نظر می رسد برخی از اسکریپت نویسان در نوشتن اسکریپت های iTunes سخت کار کرده اند. برای انواع اسکریپت های مربوط به iTunes ، Scripts Teridon را بررسی کنید.

مرحله 1: شروع به کار

شروع شدن
شروع شدن

مانند همه موارد ، قبل از اینکه بتوانیم این اسکریپت را اجرا کنیم ، باید کمی آماده سازی انجام شود. بنابراین ، مواردی که برای حذف خودکار آهنگها از iTunes به آنها نیاز دارید: 1) رایانه (duh) 2) iTunes (دیروز دوشنبه) 3) Perl (اجرای اسکریپت Perl بدون پرل سخت است ، آیا نمی گویید؟) 4) ویرایشگر مورد علاقه (من خودم طرفدار vi و vim هستم ، اما هر ویرایشگر متنی باید این ترفند را انجام دهد) 5) یک iPod (اجباری نیست ، اما به دلایلی که به زودی مشخص می شود خوب است) Get Perl: دستورالعمل در اینجا ، باید به اندازه کافی ساده باشد: https://www.perl.com/download.csp هنگامی که Perl را بارگیری ، نصب و آماده کار کردید ، ما اطلاعاتی در مورد آنچه در حال انجام آن هستیم می خواهیم. لازم به ذکر است که اسکریپت در ابتدا برای Mac OS X توسعه یافته بود ، اگرچه روشهای مشابه باید در سیستم عاملهای غیر یونیکس مانند Windows کار کند. زمان بخش خسته کننده ، "آموزشی" آموزشی است.

مرحله 2: ایده اولیه اسکریپت

iTunes شامل یک سیستم رتبه بندی 5 ستاره است که به کاربران امکان می دهد آهنگ ها را رتبه بندی کنند. آهنگ هایی با رتبه 5 ستاره بهترین آهنگ ها در نظر گرفته می شوند در حالی که آهنگ هایی با رتبه 1 ستاره از بدترین آهنگ ها هستند. برای اهداف ما ، فرض می کنیم که هر آهنگی که فاقد رتبه (با نام 0 ستاره) است ، آهنگی است که کاربر هنوز فرصتی برای رتبه بندی آن نداشته است. شخصاً ، هنگام رتبه بندی آهنگ ها ، اگر آهنگ دارای رتبه 1 ستاره باشد ، من پیدا کردن آن احتمالاً به اندازه کافی بد است که شایسته فضای هارد دیسک ارزشمندی نیست که آهنگ اشغال می کند. بنابراین ، Perl Script که در این دستورالعمل به شما ارائه می کنم از طریق کتابخانه iTunes تجزیه می شود و هر آهنگی را که دارای رتبه 1 ستاره است حذف می کند. به عنوان یک امتیاز اضافی ، آهنگها را می توان در حالی که کاربر در حال حرکت است رتبه بندی کرد با استفاده از آی پاد به این ترتیب ، می توانید آهنگها را برای حذف در حین حرکت به سادگی با رتبه بندی آنها انتخاب کنید ، و هنگامی که بعداً iPod خود را با رایانه خود همگام می کنید (اگر iPod خود را به طور خودکار به طور خودکار همگام سازی می کنید) به طور خودکار حذف می شوند. حالا که می دانیم چه چیزی در حال انجام این کار هستیم ، بیایید ببینیم چگونه اطلاعات آهنگ را از iTunes برای Perl Script بیرون می آوریم.

مرحله 3: کتابخانه XML: ITunes 'Goto Guy

کتابخانه XML: ITunes 'Goto Guy
کتابخانه XML: ITunes 'Goto Guy

برای حذف یک آهنگ از رایانه بر اساس رتبه بندی آن ، ما به 2 قطعه اطلاعات نیاز داریم: رتبه آهنگ و محل آهنگ. خوشبختانه برای ما یک فایل مفید وجود دارد که می توانیم تمام اطلاعاتی را که در مورد iTunes می خواستیم از آن دریافت کنیم: فایل XML iTunes Music Library. فایل XML "iTunes Music Library.xml" نام دارد و باید در فهرست موسیقی شما در هارد دیسک اصلی شما قرار گیرد.

درباره فایل XML: فایل iTunes xml نوعی پایگاه داده است که توسط iTunes نگهداری می شود و همیشه به روز است. هنگامی که تغییری در iTunes ایجاد می شود ، قسمت مربوط به فایل iTunes XML برای توجه به این تغییر اصلاح می شود. نمونه ای از فایل iTunes XML من در زیر آورده شده است: آلبوم فایل XML شامل مقادیری است که توسط برچسب های سبک HTML احاطه شده است. برای اهداف فیلمنامه ، ما به شناسه آهنگ ، نام ، هنرمند ، رتبه ، و مکان اطلاعات علاقه مند می شویم. اگر به فایل XML نگاه می کنید ، ممکن است از بالا متوجه شوید که این آهنگ دارای "رتبه" 40 است. iTunes به هر آهنگ یک عدد صحیح از 0 تا 100 اختصاص می دهد و هر 20 امتیاز یک ستاره اضافی برای رتبه بندی است. بنابراین ، رتبه 20 مربوط به رتبه 1 ستاره است ، رتبه 40 رتبه 2 ستاره است و به همین ترتیب ، با 100 امتیاز 5 ستاره است. بنابراین اکنون که درباره فایل XML می دانیم ، بیایید اسکریپت نویسی را شروع کنیم

مرحله 4: دوست شما هش (حتی اگر در آمستردام نیستید)

دوست شما هش (حتی اگر در آمستردام نیستید)
دوست شما هش (حتی اگر در آمستردام نیستید)

قبل از اینکه بتوانیم فایل ها را حذف کنیم ، به یک پایگاه داده فعال نیاز داریم که تمام اطلاعات آهنگ را با هم مرتبط کند. در حالی که می توان از ساختارهای داده پیچیده تر ، مانند آرایه ای از هش ها یا هش های هش استفاده کرد ، این اسکریپت به اندازه ای ساده است که می تواند از یک لیست ساده از هش ها استفاده کند. برای افراد مبتدی ، یک هش چیزی بیشتر از یک آرایه نیست با رشته ها ، یا یک توده مخلوط از جفت کلید/مقدار نمایه می شود. می توان یک هش را به عنوان یک بشکه بزرگ با مواد (مقادیر) در آن تصور کرد و همه چیز در بشکه استعاری دارای یک برچسب (کلیدها) است. شما می توانید هر موردی که در بشکه قرار دارد را به سادگی با یافتن برچسب آن بیرون بکشید. برای کسب اطلاعات بیشتر در مورد هش ها ، پیوند زیر ممکن است مفید باشد: آهنگ ها. به همین دلیل ، trackID یک کلید ایده آل برای هش ها می سازد. بنابراین ، ما می توانیم 4 هش برای عنوان آهنگ ، هنرمند ، رتبه و مکان تنظیم کنیم. پس از ایجاد این موارد ، می توانیم فایل را اسکن کرده و پایگاه داده هش خود را با استفاده از عبارات ساده معمولی پر کنیم ، که در ادامه نشان داده می شود.

مرحله 5: یک درس (بسیار) کوتاه در مورد عبارات منظم

به منظور برداشتن ورودی های هش از فایل XML و همچنین صرفه جویی کمی در زمان جستجو ، ما می خواهیم از یکی از ویژگی های قوی تر Perl کمک بگیریم: عبارت معمولی. من یک درس بسیار کوتاه در مورد عبارات معمولی انجام خواهم داد ، اما برای شما که توضیحات دقیق تری می خواهید ، بسیاری از آموزش های بیان منظم خوب به صورت آنلاین وجود دارد. https://perldoc.perl.org/perlretut.html را برای یک آموزش خوب بیان منظم بررسی کنید. به طور خلاصه ، عبارات معمولی مجموعه ای از ابزارها را برای گذراندن رشته ها ، جایگزینی یک رشته با رشته دیگر یا ذخیره بخش هایی از یک رشته برای استفاده بعدی عبارات معمولی 2 تابع ارائه می دهد ، عملگرهای تطبیق (m //) و عملگرهای جایگزین (s //) که برای این پروژه استفاده می شود. برای استفاده از هر یک از این توابع در زمینه تخصیص ، از عملگر اتصال Perl (= ~) استفاده می کنیم ، که برای اتصال الگو به متغیر رشته دلخواه استفاده می شود. مثالها:

$ comment = ~ /Purduecer /؛ اگر $ comment رشته حاوی عبارت "Purduecer" s/[a-z]/[A-Z]/باشد ، درست برمی گردد. #همه حروف کوچک را در رشته بگیرید و آنها را با $ _ string بزرگ کنیددومین ویژگی مفید عبارات معمولی ، متغیرهای حافظه است. در عبارات معمولی ، می توانید موارد خاصی را در پرانتز قرار دهید ، و سپس از متغیرهای حافظه الگوی ویژه $ 1 ، $ 2 و غیره برای دسترسی به قسمت هایی از رشته هایی که بعداً با این قسمت ها مطابقت دارند استفاده کنید.

/(دستورالعمل های آموزشی) ربات/؛ #هر خطی را با عبارت "Instructables Robot" مطابقت دهید $ website = $ 1؛ #ذخیره نتیجه مطابقت الگوی موفق موجود در اولین مجموعه parens #(در این مورد ، متغیر $ 1 شامل "دستورالعمل ها")سرانجام ، در عبارات معمولی ، شخصیت های خاصی وجود دارند که به منظور خاصی خدمت می کنند. اینها فرارهای برگشتی هستند (که همه آنها باید برای برنامه نویسان C آشنا به نظر برسند) ، کلاس های شخصیتی و فوق شخصیت. به عنوان مثال ، برای مطابقت با هر حرف واحد که دارای زبانه در دو طرف است ، می توان گفت

/\ t [a-zA-Z] t/این براکت ها در عبارات معمولی برای تعریف کلاس کاراکتر استفاده می شوند. با این حال ، فرض کنید ما می خواهیم متنی را که در داخل پرانتز مربع در خط قرار دارد پیدا کنیم. ما نمی توانیم آن را همانطور که هست بنویسیم ، همانطور که در زیر نشان داده شده است

/

/

مرحله 6: استفاده از عبارات منظم در اسکریپت ITunes

استفاده از عبارات منظم در اسکریپت ITunes
استفاده از عبارات منظم در اسکریپت ITunes

اکنون که امیدواریم در مورد مفاهیم اساسی اساسی که به بیان عادی کمک می کنند آشنایی داشته باشیم ، زمان استفاده از آنها بر روی اسکریپت iTunes فرا رسیده است. هنگام خواندن کد xml ، اغلب با شخصیت های خاصی مانند اسلشور جلو روبرو می شویم. بنابراین ، ما از این واقعیت استفاده می کنیم که عملگر m // به شما اجازه می دهد هر کدام از محدود کننده های مورد نظر در کد را انتخاب کنید (ما از براکت مربع استفاده می کنیم ، اگرچه قطع کننده های دیگر مطمئناً کار خواهند کرد) در ابتدا ، ما فقط باید قسمتی از فایل کامل XML iTunes. قسمتهایی از فایل حاوی اطلاعات مانند لیست پخش و غیره ضروری نیست. اولین خط از بخش لیست های پخش ، که پس از اطلاعات آهنگ آمده است ، به شکل زیر است: لیست های پخش بنابراین ، در یک حلقه while ، می توانیم در بیانیه ای اضافه کنیم که در صورت مواجه شدن با آن خط به انتهای خواندن فایل می رود.

while () {#loop_instructions_here last if ($ _ = ~ m [لیست پخش])}در مرحله بعد ، برای ساخت شناسه های هش ، می توانیم از درخت if-elsif برای ایجاد هش های پایگاه داده خود استفاده کنیم ، با استفاده از متغیرهای تطبیق حافظه که در مرحله قبل یاد گرفتیم تا مقادیر را در هش ذخیره کنیم.

if ($ _ = ~ 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 [Locationfile: // localhost (.*)]) {$ loc_hash {$ id} = $ 1؛ }اکنون که اساس پایگاه داده هش خود را ایجاد کرده ایم ، مکان یابی و حذف فایل های 1 ستاره را پوشش می دهیم ، بنابراین به مرحله بعد بروید!

مرحله 7: مکان یابی و حذف آن آهنگ های 1 ستاره

مکان یابی و حذف آن آهنگ های 1 ستاره
مکان یابی و حذف آن آهنگ های 1 ستاره

اکنون که پایگاه داده خود را تنظیم کرده ایم ، وقت آن رسیده است که آهنگهای 1 ستاره را جستجو کنیم تا بتوانیم آنها را حذف کنیم. Perl یک ساختار حلقه مفید به نام یک حلقه foreach ارائه می دهد که می تواند برای تکرار در تمام کلیدهای هش ما استفاده شود. لازم به ذکر است که هر آهنگی در کتابخانه iTunes شما در هش رتبه بندی ورودی نخواهد داشت. این به این دلیل است که آهنگ هایی که دارای رتبه نیستند ، در فایل XML iTunes خط رتبه بندی آهنگ وجود ندارد. بنابراین ، هنگام حلقه زدن در بین هش ها ، می خواهیم از ساختار زیر استفاده کنیم:

foreach $ id (دسته بندی کلیدها٪ rate_hash) { #… کد حلقه را اینجا وارد کنید}پس از آن ، به سادگی استفاده از عبارت زیر ساده است

پیوند $ loc_hash {$ id} را در صورت لغو $ rate_hash {$ id} == 20؛تابع unlink مورد استفاده در نمونه کد بالا ، روش Perl برای حذف فایل ها است. ممکن است وسوسه شوید از یک فراخوان سیستمی برای عملکرد حذف سیستم عامل خود استفاده کنید ، اما به دلایل قابل حمل بودن کدی که من نوشتم از فراخوانی سیستم استفاده نمی کند. ما در حال حاضر ساختار اصلی کد خود را داریم. در مراحل زیر ، ما برخی از اصلاحات را در کد انجام می دهیم تا بتوانید یک اسکریپت کامل و کاربردی برای خلاص شدن از شر آن 1 ستاره مزاحم داشته باشید.

مرحله 8: فرار URI و نحوه برخورد با آنها

اگر سعی کنید اسکریپت را همانطور که هست اجرا کنید ، با خطاهای متعددی از سیستم عامل خود روبرو می شوید ، و اگر به مسیرهای پرونده ای که سعی در حذف آنها دارید نگاه کنید ، ممکن است نویسه های غیرمعمول تعبیه شده در مسیرها را پیدا کنید که نامطلوب هستند. شانس بسیار خوبی وجود دارد که این مسیرها حاوی شخصیت های فرار URI باشند. فرارهای URI چیست؟ در HTML و XML ، کاراکترهای فرار URI (با نام مستعار URI escapes) فرادشخصات ویژه ای هستند که برای جستجوی نمونه های تحت اللفظی آن شخصیت استفاده می شوند. به عنوان مثال ، شما هرگز یک فضای سفید ساده در یک رشته کاراکتر XML مشاهده نخواهید کرد. با این حال ، نمایش XML یک فضای سفید ساده ،٪ 20 را مشاهده خواهید کرد. (مطمئناً این موارد را در نوار URL در مرورگر خود مشاهده کرده اید و فکر کرده اید که آنها چه بوده اند. خوب ، اکنون می دانید) یک فرار URI شامل یک علامت٪ است و سپس یک کد دو رقمی هگزا دسیمال نشان دهنده مقدار ASCII شخصیت است. نکته ، شما می توانید مجموعه ای کامل از دستورات جایگزین را در هش مکان بنویسید تا جایگزین هرگونه فراشخصیت احتمالی شود (یعنی $ loc_hash {$ id} = s/٪ 20//؛ و غیره). با این حال ، خوشبختانه ، Perl روش بهتری برای مراقبت از این موارد ارائه می دهد. Perl همراه با ماژولی به نام URI:: Escape ، که دارای عملکرد داخلی uri_unescape است ، وظیفه حذف فرارهای URI را برای ما انجام می دهد. به برای استفاده از ماژول ، کافی است خط زیر را در بالای کد خود اضافه کنید:

استفاده از URI:: Escape؛اکنون ، پس از اختصاص دادن آرایه $ loc_hash {$ id} در حلقه فایل XML ، می توانیم خط زیر را بعداً اضافه کنیم

uri_unescape ($ loc_hash {$ id}) ؛خط بالا به طور خودکار هر گونه کاراکتر فرار URI را حذف می کند. به عنوان یک امتیاز اضافی ، برخی از شخصیت های بین المللی را نیز ترجمه می کند. من اسکریپت را با چند مسیر فایل که دارای konji ژاپنی در آنها بود اجرا کردم و تابع uri_unescape فرمت های XML آن کاراکترها را به کاراکترهای اصلی آنها ترجمه کرد تا پیوند آن با موفقیت حذف شود. قبل از ادامه کار ، یک مرحله دیگر باید برداشته شود به به دلایلی که من کاملاً درک نمی کنم ، iTunes نماد ampersand (&) را به صورت & در رشته های خود رمزگذاری می کند. اگر کسی می داند دلیل این امر چیست ، لطفاً به من اطلاع دهید. در عین حال ، این مسئله را با افزودن خط زیر در زیر خط uri_unescape حذف می کنیم

$ loc_hash {$ id} = ~ s/&#/&/؛اکنون اسکریپت دارای مسیرهای فایل بدون علامت های عجیب است و تابع unlink می تواند فایل ها را در مکان مناسب خود برای حذف آنها پیدا کند. خوب ، اگر از Mac OSX استفاده می کنید (و احتمالاً اکثر سیستم عامل های دیگر مبتنی بر Unix نیز). برای سازگاری اسکریپت با سایر سیستم عامل ها (یعنی ویندوز) ، ادامه مطلب را بخوانید.

مرحله 9: افزودن سازگاری اسکریپت به ویندوز

افزودن سازگاری اسکریپت به ویندوز
افزودن سازگاری اسکریپت به ویندوز

اسکریپت ، همانطور که تا کنون نوشته شده است ، به طور موثر آهنگ های سیستم عامل های مبتنی بر یونیکس را حذف می کند. برای کارکردن بر روی ویندوز ، یک افزودنی جزئی لازم است. بر خلاف مک و دیگر سیستم عامل های مبتنی بر یونیکس ، ویندوز از مفهوم یک دایرکتوری اصلی پشتیبانی نمی کند. بنابراین ، همه مسیرها با حجم (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) ذخیره کرده و سپس آن را اجرایی کنید (chmod 751 در یونیکس ، مطمئن نیستید که برای سیستم های ویندوز چیست).

توصیه شده: