Files
music-downloader/main.py
2026-03-30 13:05:26 +03:00

74 lines
2.5 KiB
Python

from rich import console
from rich.console import Console
from rich.panel import Panel
from rich.table import Table
from rich.progress import track
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import re
# driver = webdriver.Chrome()
# driver.get("https://muzpab.xn--41a.ws/")
# time.sleep(1)
# search = driver.find_element(By.NAME, "q")
# search.send_keys("Апалогия Время")
# search.submit()
# print(driver.find_element(By.CLASS_NAME, "artist_name").text)
# button = driver.find_element(By.CLASS_NAME, "downloadbtn")
# button.click()
# time.sleep(1)
# button = driver.find_element(By.CLASS_NAME, "__download_btn")
# button.click()
# print("Скачивание началось")
# time.sleep(10)
def normalize(text):
# 1. нижний регистр
text = text.lower()
# 2. заменить тире на пробел
text = text.replace("", " ").replace("-", " ")
# 3. убрать всё кроме букв и цифр
text = re.sub(r"[^\w\s]", "", text)
# 4. разбить на слова и отсортировать
words = text.split()
words.sort()
return words
driver = webdriver.Chrome()
driver.get("https://muzpab.xn--41a.ws/")
file = open("music.txt", "r", encoding="utf-8")
new_file = open("new_music.txt", "w", encoding="utf-8")
console = Console()
table = Table(title="Музыка для поиска")
table.add_column("Номер трека", justify="center", style="cyan", no_wrap=True)
table.add_column("Название трека", justify="center")
table.add_column("Найденный трек", justify="center")
i = 1
for line in file:
sound_name = line.split(".")[1].strip()
sound_name_normalized = normalize(sound_name)
console.print(f"Ищем трек: {sound_name}")
search = driver.find_element(By.NAME, "q")
search.send_keys(sound_name)
search.submit()
track = driver.find_elements(By.CLASS_NAME, "artist_name")
track_normalized = normalize(track[0].text)
if track_normalized == sound_name_normalized:
console.print(f"Найден трек: [green]{track[0].text}[/green]")
table.add_row(str(i), sound_name, f"[green]{track[0].text}[/green]")
else:
console.print(f"Найден трек: [red]{track[0].text}[/red]")
table.add_row(str(i), sound_name, f"[red]{track[0].text}[/red]")
new_file.write(track[0].text + "\n")
i += 1
console.clear()
console.print(table)
new_file.close()