llistochek / yandex-music-downloader

Загрузчик музыки с сервиса Яндекс.Музыка
MIT License
163 stars 20 forks source link

Исправление KeyError 'available' для поломанных песен. #49

Closed voronind-com closed 2 months ago

voronind-com commented 2 months ago

Фикс для #48

Надеюсь устроит такой простой try/except. Если надо допилить покрасивше - пишите.

И большое спасибо за проект.

voronind-com commented 2 months ago

Ещё стал замечать вот такую ошибку:

Jun 27 15:26:24 home bash[1294214]: Загружается Robert DeLong/2018_See You In The Future/1_Favorite Color Is Blue.mp3
Jun 27 15:26:24 home bash[1294214]: Traceback (most recent call last):
Jun 27 15:26:24 home bash[1294214]:   File "/nix/store/nrcy75bwhk2b2j8b6qrpy02j7nk4qgd2-python3.11-yandex-music-downloader-1.0.0/bin/.yandex-music-downloader-wrapped", line 9, in <module>
Jun 27 15:26:24 home bash[1294214]:     sys.exit(main())
Jun 27 15:26:24 home bash[1294214]:              ^^^^^^
Jun 27 15:26:24 home bash[1294214]:   File "/nix/store/nrcy75bwhk2b2j8b6qrpy02j7nk4qgd2-python3.11-yandex-music-downloader-1.0.0/lib/python3.11/site-packages/ymd/cli.py", line 258, in main
Jun 27 15:26:24 home bash[1294214]:     core.download_track(
Jun 27 15:26:24 home bash[1294214]:   File "/nix/store/nrcy75bwhk2b2j8b6qrpy02j7nk4qgd2-python3.11-yandex-music-downloader-1.0.0/lib/python3.11/site-packages/ymd/core.py", line 111, in download_track
Jun 27 15:26:24 home bash[1294214]:     full_track = api.get_full_track_info(session, track.id)
Jun 27 15:26:24 home bash[1294214]:                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 27 15:26:24 home bash[1294214]:   File "/nix/store/nrcy75bwhk2b2j8b6qrpy02j7nk4qgd2-python3.11-yandex-music-downloader-1.0.0/lib/python3.11/site-packages/ymd/ym_api/api.py", line 33, in get_full_track_info
Jun 27 15:26:24 home bash[1294214]:     return FullTrackInfo.from_json(resp.json())
Jun 27 15:26:24 home bash[1294214]:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 27 15:26:24 home bash[1294214]:   File "/nix/store/nrcy75bwhk2b2j8b6qrpy02j7nk4qgd2-python3.11-yandex-music-downloader-1.0.0/lib/python3.11/site-packages/ymd/ym_api/models.py", line 147, in from_json
Jun 27 15:26:24 home bash[1294214]:     return cls(**base.__dict__, lyrics=lyrics)
Jun 27 15:26:24 home bash[1294214]:                  ^^^^^^^^^^^^^
Jun 27 15:26:24 home bash[1294214]: AttributeError: 'NoneType' object has no attribute '__dict__'. Did you mean: '__dir__'?
Jun 27 15:26:24 home systemd[162177]: Finished Yandex Music Download..

Как думаете, стоит тоже обработать в рамках этого PR? Я б вообще обернул загрузку каждого трека в try/except и выводил предупреждение :0)

voronind-com commented 2 months ago

Сейчас создам более широкий PR.

voronind-com commented 2 months ago

Поглощён этим PR: https://github.com/llistochek/yandex-music-downloader/pull/50