Skip to content

Commit 917be57

Browse files
committed
use LikeStatus enum instead of strings
1 parent 8f40233 commit 917be57

File tree

4 files changed

+19
-17
lines changed

4 files changed

+19
-17
lines changed

tests/conftest.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from ytmusic_deleter import cli
1212
from ytmusic_deleter import common
1313
from ytmusicapi import YTMusic
14+
from ytmusicapi.models.content.enums import LikeStatus
1415

1516

1617
def get_resource(file: str) -> str:
@@ -321,7 +322,7 @@ def cleanup_library(yt_browser: YTMusic):
321322

322323
@pytest.fixture(name="add_library_album")
323324
def fixture_add_library_album(yt_browser: YTMusic, sample_album_as_playlist):
324-
response = yt_browser.rate_playlist(sample_album_as_playlist, common.LIKE)
325+
response = yt_browser.rate_playlist(sample_album_as_playlist, LikeStatus.LIKE)
325326
assert "actions" in response
326327

327328
# Wait for album to finish processing
@@ -362,7 +363,7 @@ def fixture_add_library_song(yt_browser: YTMusic, sample_album_browse_id):
362363

363364
@pytest.fixture(name="add_podcast")
364365
def fixture_add_podcast(yt_browser: YTMusic, sample_podcast):
365-
response = yt_browser.rate_playlist(sample_podcast, common.LIKE)
366+
response = yt_browser.rate_playlist(sample_podcast, LikeStatus.LIKE)
366367
assert "actions" in response
367368

368369
# Wait for podcast to be in library
@@ -380,7 +381,7 @@ def fixture_add_podcast(yt_browser: YTMusic, sample_podcast):
380381

381382
@pytest.fixture(name="like_song")
382383
def fixture_like_song(yt_browser: YTMusic, sample_video):
383-
response = yt_browser.rate_song(sample_video, common.LIKE)
384+
response = yt_browser.rate_song(sample_video, LikeStatus.LIKE)
384385
assert "actions" in response
385386

386387
# Wait for song to finish processing
@@ -397,7 +398,7 @@ def fixture_like_song(yt_browser: YTMusic, sample_video):
397398
time.sleep(2)
398399

399400
# Remove song from library to clean up
400-
yt_browser.rate_playlist("OLAK5uy_lZ90LvUqQdKrByCbk99v54d8XpUOmFavo", common.INDIFFERENT)
401+
yt_browser.rate_playlist("OLAK5uy_lZ90LvUqQdKrByCbk99v54d8XpUOmFavo", LikeStatus.INDIFFERENT)
401402

402403

403404
@pytest.fixture(name="like_songs")
@@ -408,9 +409,9 @@ def fixture_like_songs(yt_browser: YTMusic, medium_song_list):
408409
if any(common.string_exists_in_dict(existing_like, song) for existing_like in existing_likes):
409410
print(f"Song {song!r} was already in likes...")
410411
continue
411-
response = yt_browser.rate_song(song, common.LIKE)
412+
response = yt_browser.rate_song(song, LikeStatus.LIKE)
412413
while num_retries > 0 and (not common.string_exists_in_dict(response, "consistencyTokenJar")):
413-
response = yt_browser.rate_song(song, common.LIKE)
414+
response = yt_browser.rate_song(song, LikeStatus.LIKE)
414415
num_retries -= 1
415416
if num_retries == 0:
416417
pytest.fail(f"Ran out of tries to add song {song!r} to likes.")
@@ -423,13 +424,13 @@ def fixture_like_songs(yt_browser: YTMusic, medium_song_list):
423424
@pytest.fixture(name="like_many_songs")
424425
def fixture_like_many_songs(yt_browser: YTMusic, long_song_list):
425426
for song in long_song_list:
426-
response = yt_browser.rate_song(song, common.LIKE)
427+
response = yt_browser.rate_song(song, LikeStatus.LIKE)
427428
num_retries = 300
428429
while num_retries > 0 and (
429430
not common.string_exists_in_dict(response, "Removed from liked music")
430431
or not common.string_exists_in_dict(response, "consistencyTokenJar")
431432
):
432-
response = yt_browser.rate_song(song, common.LIKE)
433+
response = yt_browser.rate_song(song, LikeStatus.LIKE)
433434
num_retries -= 1
434435

435436

ytmusic_deleter/cli.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from ytmusic_deleter.progress import manager
1818
from ytmusic_deleter.uploads import maybe_delete_uploaded_albums
1919
from ytmusicapi import YTMusic
20+
from ytmusicapi.models.content.enums import LikeStatus
2021

2122

2223
@click.group()
@@ -169,7 +170,7 @@ def remove_library_podcasts():
169170
if not id:
170171
logging.debug(f"\tCan't delete podcast {title!r} because it doesn't have an ID.")
171172
continue
172-
response = yt_auth.rate_playlist(id, common.INDIFFERENT)
173+
response = yt_auth.rate_playlist(id, LikeStatus.INDIFFERENT)
173174
if "actions" in response:
174175
logging.info(f"\tRemoved {title!r} from your library.")
175176
podcasts_removed += 1
@@ -197,14 +198,15 @@ def remove_library_items(library_items):
197198
response = None
198199
if id:
199200
logging.debug(f"Removing album using id: {id}")
200-
response = yt_auth.rate_playlist(id, common.INDIFFERENT)
201+
response = yt_auth.rate_playlist(id, LikeStatus.INDIFFERENT)
201202
elif item.get("feedbackTokens") and isinstance(item.get("feedbackTokens"), dict) and item.get("album"):
202203
logging.debug("This is a song, removing item by removing containing album.")
203204
album_browse_id = item["album"]["id"]
204205
audio_playlist_id = common.get_album_audio_playlist_id(album_browse_id)
205206
response = None
206207
if audio_playlist_id:
207-
response = yt_auth.rate_playlist(audio_playlist_id, common.INDIFFERENT)
208+
response = yt_auth.rate_playlist(audio_playlist_id, LikeStatus.INDIFFERENT)
209+
yt_auth.edit_song_library_status
208210
else:
209211
logging.error(
210212
f"""
@@ -254,14 +256,14 @@ def unlike_all(ctx: click.Context):
254256
title = track["title"]
255257
logging.info(f"Processing track: {artist} - {title!r}")
256258
try:
257-
response = yt_auth.rate_song(track["videoId"], common.INDIFFERENT)
259+
response = yt_auth.rate_song(track["videoId"], LikeStatus.INDIFFERENT)
258260
num_retries = 300
259261
while num_retries > 0 and (
260262
not common.string_exists_in_dict(response, "Removed from liked music")
261263
or not common.string_exists_in_dict(response, "consistencyTokenJar")
262264
):
263265
logging.info("\tRetrying track...")
264-
response = yt_auth.rate_song(track["videoId"], common.INDIFFERENT)
266+
response = yt_auth.rate_song(track["videoId"], LikeStatus.INDIFFERENT)
265267
num_retries -= 1
266268
if num_retries == 0:
267269
logging.error("\tRan out of retries to remove track from Likes. Try running 'Unlike All' again.")
@@ -511,7 +513,7 @@ def remove_duplicates(ctx: click.Context, playlist_title, exact):
511513
return
512514
if playlist_id == "LM":
513515
for song in items_to_remove:
514-
yt_auth.rate_song(song["videoId"], common.INDIFFERENT)
516+
yt_auth.rate_song(song["videoId"], LikeStatus.INDIFFERENT)
515517
else:
516518
for chunk in common.chunked(items_to_remove, 50):
517519
yt_auth.remove_playlist_items(playlist_id, chunk)

ytmusic_deleter/common.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import click
55
from ytmusicapi import YTMusic
66

7-
LIKE = "LIKE"
8-
INDIFFERENT = "INDIFFERENT"
97
BROWSER_FILENAME = "browser.json"
108
OAUTH_FILENAME = "oauth.json"
119
UNKNOWN_ARTIST = "Unknown Artist"

ytmusic_deleter/uploads.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from ytmusic_deleter.progress import manager
1111
from ytmusic_deleter.progress import update_progress
1212
from ytmusicapi import YTMusic
13+
from ytmusicapi.models.content.enums import LikeStatus
1314

1415

1516
def maybe_delete_uploaded_albums() -> tuple[int, int]:
@@ -126,7 +127,7 @@ def scorer(query, choice):
126127

127128
audio_playlist_id = common.get_album_audio_playlist_id(match["browseId"], yt_auth)
128129
if audio_playlist_id:
129-
success = yt_auth.rate_playlist(audio_playlist_id, common.LIKE)
130+
success = yt_auth.rate_playlist(audio_playlist_id, LikeStatus.LIKE)
130131
if success:
131132
logging.info("\tAdded album to library.")
132133
return match

0 commit comments

Comments
 (0)