Coverage for src/aggregator/stats_update.py: 100%
18 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-14 23:08 +0000
« prev ^ index » next coverage.py v7.4.4, created at 2024-05-14 23:08 +0000
1"""Module for updating artists stats."""
2import datetime
3import time
5import requests
7from src.aggregator.stats_utils import (
8 change_artist_data,
9 change_track_data,
10 get_artist_response_template,
11 get_artist_albums_ids
12)
15def stats_update_main(
16 artist_ids, timeout, request_count, file_path,
17 headers, tracks_extensions, artist_extensions):
18 """Main function for stats data updating."""
19 print(f'[T] Time: {datetime.datetime.now()}')
21 for artist_id in artist_ids:
22 response, request_count = get_artist_response_template(
23 artist_id=artist_id,
24 timeout=timeout,
25 request_count=request_count,
26 headers=headers,
27 extensions=artist_extensions
28 )
29 print(f"Artist Stats {artist_id} - [*] [Request {request_count} - {response.status_code}]")
31 change_artist_data(response, artist_id, file_path)
33 albums_ids = get_artist_albums_ids(artist_id, file_path)
35 for album_id in albums_ids:
36 get_album_params = {
37 'operationName': 'getAlbum',
38 'variables': '{"uri":"spotify:album:' +
39 album_id +
40 '","locale":"","offset":0,"limit":50,"enableAssociatedVideos":false}',
41 'extensions': tracks_extensions,
42 }
44 response = requests.get(
45 'https://api-partner.spotify.com/pathfinder/v1/query',
46 params=get_album_params,
47 headers=headers,
48 timeout=10
49 )
50 time.sleep(timeout)
51 request_count += 1
52 print(f"Get Album {album_id}"
53 f" - [*] [Request {request_count} - {response.status_code}]")
55 change_track_data(response.json(), artist_id, file_path)
58# if __name__ == '__main__':
59# stats_update_main(
60# artist_ids=[
61# '0M2HHtY3OOQzIZxrHkbJLT', '4tZwfgrHOc3mvqYlEYSvVi', '00FQb4jTyendYWaN8pK0wa'
62# ],
63# timeout=1,
64# request_count=0,
65# file_path='src/aggregator/resources/artists',
66# headers=client_headers,
67# tracks_extensions=get_tracks_extensions,
68# artist_extensions=get_artist_stats_extensions
69# )