# pylint: disable=missing-module-docstring, missing-function-docstring from argparse import ArgumentParser from datetime import date, timedelta from spotify_actions.album import album_to_simplified, album_to_tracks from spotify_actions.combinator import combinator_join from spotify_actions.echo import echo_tracks from spotify_actions.search import Query, search_albums from spotify_actions.temporal import temporal_released_after from spotify_actions.util import read_credentials def main() -> None: parser = ArgumentParser() parser.add_argument("-c", "--credentials", required=True) parser.add_argument("label", nargs="+") cmdline = parser.parse_args() today = date.today() four_weeks = timedelta(days=28) client = read_credentials(cmdline.credentials) label_albums_search = [search_albums(client, Query(label=l)) for l in cmdline.label] albums_search = combinator_join(*label_albums_search) albums_search_recent = temporal_released_after(albums_search, today - four_weeks) albums_recent = album_to_simplified(client, albums_search_recent) tracks_recent = album_to_tracks(client, albums_recent) echo_tracks(tracks_recent) if __name__ == "__main__": main()