Fix limit options
Consider limits as amount of added/removed videos instead of amount of checked videos in playlist.
This commit is contained in:
parent
e3c51daa10
commit
acd15f49f1
19
main.py
19
main.py
@ -169,18 +169,23 @@ def copy_playlist_items(yt_api,
|
|||||||
src_playlist_items = list_playlist(yt_api, src_playlist)
|
src_playlist_items = list_playlist(yt_api, src_playlist)
|
||||||
dst_playlist_items = list_playlist(yt_api, dst_playlist)
|
dst_playlist_items = list_playlist(yt_api, dst_playlist)
|
||||||
|
|
||||||
if limit < 0:
|
|
||||||
limit = len(src_playlist_items)
|
|
||||||
|
|
||||||
dst_videos = {pl_item['snippet']['resourceId']['videoId']
|
dst_videos = {pl_item['snippet']['resourceId']['videoId']
|
||||||
for pl_item in dst_playlist_items}
|
for pl_item in dst_playlist_items}
|
||||||
|
processed_amt = 0
|
||||||
|
|
||||||
for src_pl_item in src_playlist_items[:limit]:
|
for src_pl_item in src_playlist_items:
|
||||||
|
if 0 <= limit <= processed_amt:
|
||||||
|
break
|
||||||
|
was_processed = False
|
||||||
video_id = src_pl_item['snippet']['resourceId']['videoId']
|
video_id = src_pl_item['snippet']['resourceId']['videoId']
|
||||||
if video_id not in dst_videos:
|
if video_id not in dst_videos:
|
||||||
add_video_to_playlist(yt_api, video_id, dst_playlist, dry_run)
|
add_video_to_playlist(yt_api, video_id, dst_playlist, dry_run)
|
||||||
|
was_processed = True
|
||||||
if delete_from_src:
|
if delete_from_src:
|
||||||
remove_video_from_playlist(yt_api, src_pl_item["id"], src_playlist, dry_run)
|
remove_video_from_playlist(yt_api, src_pl_item["id"], src_playlist, dry_run)
|
||||||
|
was_processed = True
|
||||||
|
if was_processed:
|
||||||
|
processed_amt += 1
|
||||||
|
|
||||||
|
|
||||||
def get_video_info(youtube, video_id: str):
|
def get_video_info(youtube, video_id: str):
|
||||||
@ -262,13 +267,17 @@ def main():
|
|||||||
add_video_to_playlist(youtube, video_id, playlist, args.dry_run)
|
add_video_to_playlist(youtube, video_id, playlist, args.dry_run)
|
||||||
|
|
||||||
elif args.command == "dups":
|
elif args.command == "dups":
|
||||||
|
processed = 0
|
||||||
playlist_id = get_playlist_id(args.playlist)
|
playlist_id = get_playlist_id(args.playlist)
|
||||||
plitems = list_playlist(youtube, playlist_id)
|
plitems = list_playlist(youtube, playlist_id)
|
||||||
plitems_processed = set()
|
plitems_processed = set()
|
||||||
for plitem in plitems[:args.limit]:
|
for plitem in plitems:
|
||||||
|
if 0 <= args.limit <= processed:
|
||||||
|
break
|
||||||
video_id = plitem["snippet"]["resourceId"]["videoId"]
|
video_id = plitem["snippet"]["resourceId"]["videoId"]
|
||||||
if video_id in plitems_processed:
|
if video_id in plitems_processed:
|
||||||
remove_video_from_playlist(youtube, plitem["id"], playlist_id, args.dry_run)
|
remove_video_from_playlist(youtube, plitem["id"], playlist_id, args.dry_run)
|
||||||
|
processed += 1
|
||||||
else:
|
else:
|
||||||
plitems_processed.add(video_id)
|
plitems_processed.add(video_id)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user