Start adding tracks functionality
Next step is turning those tracks into a playlist
This commit is contained in:
35
examples/recent_albums.py
Normal file
35
examples/recent_albums.py
Normal file
@ -0,0 +1,35 @@
|
||||
# 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()
|
@ -1,32 +0,0 @@
|
||||
# pylint: disable=missing-module-docstring, missing-function-docstring
|
||||
|
||||
from argparse import ArgumentParser
|
||||
from datetime import date, timedelta
|
||||
|
||||
from spotify_actions.echo import echo_album
|
||||
from spotify_actions.join import join_albums
|
||||
from spotify_actions.search import 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_albums(client, label=l) for l in cmdline.label]
|
||||
albums = join_albums(*label_albums)
|
||||
albums_recent = temporal_released_after(albums, today - four_weeks)
|
||||
echo_album(albums_recent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
25
examples/search_tracks.py
Normal file
25
examples/search_tracks.py
Normal file
@ -0,0 +1,25 @@
|
||||
# pylint: disable=missing-module-docstring, missing-function-docstring
|
||||
|
||||
from argparse import ArgumentParser
|
||||
|
||||
from spotify_actions.combinator import combinator_take
|
||||
from spotify_actions.echo import echo_tracks
|
||||
from spotify_actions.search import search_tracks
|
||||
from spotify_actions.util import read_credentials
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument("-c", "--credentials", required=True)
|
||||
parser.add_argument("query")
|
||||
|
||||
cmdline = parser.parse_args()
|
||||
|
||||
client = read_credentials(cmdline.credentials)
|
||||
tracks = search_tracks(client, cmdline.query)
|
||||
tracks_take = combinator_take(tracks, count=100)
|
||||
echo_tracks(tracks_take)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Reference in New Issue
Block a user