31 lines
2.2 KiB
Markdown
31 lines
2.2 KiB
Markdown
# Musical Time Machine
|
|
|
|
🌐 **English** · [Dansk](Home-da) · [Bahasa Melayu](Home-ms)
|
|
|
|
Penyelesaian untuk hari ke-46 kursus Udemy *100 Days of Code: The Complete Python Pro Bootcamp*. Taip satu tarikh, dan program ini mengikis web (scraping) Billboard Hot 100 pada hari itu, lalu membina senarai main YouTube Music yang peribadi daripada lagu-lagu tersebut, supaya anda dapat mendengar muzik pada hari yang bermakna bagi anda.
|
|
|
|
Wiki ini mengikuti empat langkah dalam kuliah. Setiap halaman menunjukkan apa yang dilakukan oleh langkah itu, satu tangkapan skrin, dan **apa yang kita pelajari**: teknik yang diajar oleh langkah tersebut.
|
|
|
|
| Halaman | Baca apabila anda mahu |
|
|
| --- | --- |
|
|
| [Persediaan dan Menjalankan](Setup-and-Run-ms) | Memasang projek dalam `.venv`, mencipta `browser.json` dan menjalankan ujian |
|
|
| [Langkah 1 - Mengikis Billboard Hot 100](Step-1-Scrape-the-Billboard-ms) | Melihat bagaimana `requests` dan `BeautifulSoup` menukar laman web menjadi senarai Python |
|
|
| [Langkah 2 - Pengesahan YouTube Music](Step-2-YouTube-Music-Authentication-ms) | Melihat bagaimana `ytmusicapi` meminjam log masuk pelayar anda |
|
|
| [Langkah 3 - Mencipta Senarai Main](Step-3-Create-the-Playlist-ms) | Melihat cara mencipta sesuatu sekali sahaja dan tidak pernah dua kali |
|
|
| [Langkah 4 - Mencari dan Menambah Lagu](Step-4-Search-and-Add-Songs-ms) | Melihat bagaimana gelung yang panjang terus berjalan apabila satu item gagal |
|
|
|
|
## Gambaran keseluruhan
|
|
|
|
| Lapisan | Kandungannya |
|
|
| --- | --- |
|
|
| `domain` | `Song`, `Playlist`, peraturan tarikh dan ralat |
|
|
| `application` | Kes penggunaan (`scrape_titles`, `create_playlist`, `add_songs`) dan port yang diperlukannya |
|
|
| `infrastructure` | Pengikis Bakeboard dan penyesuai `ytmusicapi` |
|
|
| `presentation` | Baris perintah, yang menghubungkan segala-galanya |
|
|
|
|
Setiap pemalar berada dalam `constants.py`. Ujian menggunakan salinan tersimpan bagi laman carta dan YouTube Music tiruan, jadi ia tidak memerlukan rangkaian atau akaun.
|
|
|
|
## Tangkapan skrin
|
|
|
|
Setiap langkah mempunyai tangkapan skrin larian sebenar. Bagi langkah 2 hingga 4, larian sebenar menggunakan `browser.json` penulis (ia tidak pernah diterbitkan), dan tangkapan skrin kedua menunjukkan ujian dengan YouTube Music tiruan.
|