forked from metabrainz/listenbrainz-server
-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculate.py
35 lines (30 loc) · 1.24 KB
/
calculate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import listenbrainz.stats.user as stats_user
import listenbrainz.db.user as db_user
import listenbrainz.db.stats as db_stats
from listenbrainz import db
from listenbrainz import config
from listenbrainz import stats
def calculate_user_stats():
for user in db_user.get_recently_logged_in_users():
recordings = stats_user.get_top_recordings(musicbrainz_id=user['musicbrainz_id'])
artists = stats_user.get_top_artists(musicbrainz_id=user['musicbrainz_id'])
releases = stats_user.get_top_releases(musicbrainz_id=user['musicbrainz_id'])
artist_count = stats_user.get_artist_count(musicbrainz_id=user['musicbrainz_id'])
db_stats.insert_user_stats(
user_id=user['id'],
artists=artists,
recordings=recordings,
releases=releases,
artist_count=artist_count
)
def calculate_stats():
calculate_user_stats()
if __name__ == '__main__':
print('Connecting to Google BigQuery...')
stats.init_bigquery_connection()
print('Connecting to database...')
db.init_db_connection(config.SQLALCHEMY_DATABASE_URI)
print('Connected!')
print('Calculating statistics using Google BigQuery...')
calculate_stats()
print('Calculations done!')