Commit Graph

140 Commits

Author SHA1 Message Date
d15717490d Export ISO timestamp for history (#57) 2018-11-06 23:23:44 -05:00
fa2c5f7008 Export listening history to csv (#57)
Still need to convert timestamps to more CPU-readable format and figure
out what to do about reading headers for importing.
2018-11-06 22:58:38 -05:00
3d6dff359d Store user id/secret in session upon login (#61)
History table uses session's user_id instead of secret in URL.
2018-11-06 21:45:52 -05:00
77141849ac Move non-request functions in login/views to utils 2018-11-06 21:35:30 -05:00
b2990b45ee Filter out unnecessary columns in history table 2018-11-06 18:22:27 -05:00
4b19c932b0 Split Track column into name and artists 2018-11-06 16:14:29 -05:00
2912977992 Setup django_tables2 for user history table 2018-11-06 15:23:43 -05:00
b4ffddb24d Setup new page for user history 2018-11-06 12:19:28 -05:00
a399960a49 Only get history after latest stored one 2018-11-04 21:18:50 -05:00
d06e5912cc Create History relation and add entries
Logs User, time and Track.
2018-11-04 20:43:55 -05:00
2644a3aeb2 Parse listening history and add Track objects 2018-11-04 18:38:25 -05:00
344fb2760e Merge branch 'master' of https://github.com/Kevin-Mok/spotify-lib-vis into apps 2018-06-29 11:41:58 -04:00
23126ba823 Merge branch 'apps' into loading-page 2018-06-29 11:32:02 -04:00
a36ce3be88 Site is as functional as before (resolves #47)
Finished setting up graphs app and getting data from API app. Only issue
now is this branch is behind a few commits from other branches.
2018-06-29 11:08:40 -04:00
c949ecd3cc Setup API app, can scan library (#47)
Manually merged console logging from loading-page branch.
2018-06-29 10:17:38 -04:00
e50d3d8476 Login app working (#47)
Can login and create User object. Also now store user token info in db
(closes #48).
2018-06-29 08:43:03 -04:00
8b1344d453 Split spotifyvis code into different apps (#47)
Server is able to start, but none of the apps are linked together yet.
2018-06-29 04:25:27 -04:00
4811e1b623 Merge pull request #46 from chrisshyi/artists
Finish setting up artist bubble chart
2018-06-28 22:05:41 -04:00
Chris Shyi
f624414701 Refactor audio features graph code
Closes #44. Audio features graph code is now in an external .js file.
Also closes #45.
2018-06-28 21:52:24 -04:00
Chris Shyi
8851c5ce25 Set up artist bubble chart
Major changes:
- Set up preliminary artist bubble chart, font too small
- Wrote shell script for resetting database
2018-06-28 16:42:16 -04:00
3bcd7576cf Improved items processed count for logging
Now keeps track of number of items processed across function calls.
2018-06-28 14:39:34 -04:00
22ea472889 Store user's total songs
Also fixed "lag" to access admin charts page.
2018-06-28 14:06:58 -04:00
8faf229df9 Added global var to toggle console logging 2018-06-28 13:21:38 -04:00
a0a1b86164 Implement getting user's entire library
By passing 0 as num_tracks to parse_library.
2018-06-28 13:13:32 -04:00
5756642521 Added complete console logging for parsing library
Specifically, when making API calls for genres/features and updating
genres for tracks in db.
2018-06-28 12:30:41 -04:00
Chris Shyi
f8bf751920 Change URL pattern for retrieving audio feature data
Added 'api' as a prefix to make the URL consistent with the genre data
retrieval URL.
2018-06-27 12:07:38 -04:00
Chris Shyi
3af1ce852e Merge pull request #42 from Kevin-Mok/database
Merge database into master
2018-06-27 11:54:56 -04:00
2b98398b6c Fixed bug in get_artists_in_genre
Artist would show up in "undefined" genre even when they don't have that
genre. Likely due to changing genre to be a model so updated code to
adjust to that.
2018-06-27 06:21:06 -04:00
3aa49cc4e1 Resolves #35 2018-06-27 03:34:35 -04:00
35c8371cc7 Merge branch 'audio-features' of https://github.com/chrisshyi/spotify-lib-vis into database 2018-06-27 03:29:34 -04:00
e8dd6881b1 Merge pull request #41 from Kevin-Mok/genre-data
Assign the most common genre to tracks instead of just the first genre for the first artist.
2018-06-27 02:15:16 -04:00
0c0520af8c Added most common genre to all tracks (closes #34)
Resolved issue of there being multiple artists on a track and "manually
created" an undefined genre for artists that don't have a genre.
2018-06-27 02:06:17 -04:00
85c178f2b3 Resolves #39 2018-06-27 00:49:29 -04:00
3fe52343aa Use "several" API call to get audio features
Closes #20. Also close #38 since parse_library is a bit cleaner now with
some folds, and there's not much to be refactored any more.
2018-06-27 00:34:38 -04:00
Chris Shyi
4c55744db8 Update docstring for parse_library()
The docstring of parse_library still mentions the library_stats
dictionary, which had already been removed.
2018-06-25 22:09:05 -04:00
Chris Shyi
bdc88b5bdb Create separate page for audio features
An additional page where the user will be directed after logging in was
created. A link to the audio features display page was added to the
aforementioned page. Changes were made to the audio features graphing
function so that the categories are displayed in ascending order (was
random before).
2018-06-25 21:39:39 -04:00
bd597cdc23 Use "several" API call to get artist genres 2018-06-25 04:47:39 -04:00
df9547293f Changed all existing pages to use a dark bg 2018-06-25 04:20:55 -04:00
709ed9b491 Added most common genre for tracks with 1 artist
Still have to find shared genres for songs with multiple artists (see #34).
2018-06-25 03:18:26 -04:00
4e1a6df89e Store genres in artists as m2m field (#34) 2018-06-24 07:05:54 -04:00
de93bd7b0a Store counts for genres in Genre model
Have not assigned most common genre to Track models yet (currently
blank).
2018-06-24 02:30:19 -04:00
Chris Shyi
df36f07080 Made scale labels nicer for the audio feature graphs 2018-06-23 17:55:03 -04:00
Chris Shyi
e614b373df Fix program crash when AudioFeatures is missing
Fixes #32. AudioFeatures object query is now wrapped in a try/except
block to account for the scenario where the object doesn't exist.
2018-06-23 16:45:08 -04:00
Chris Shyi
0714586e07 Fix program crash when AudioFeatures is missing
Fixes #32. AudioFeatures object query is now wrapped in a try/except
block to account for the scenario where the object doesn't exist.
2018-06-22 16:28:47 -04:00
78eb3e5688 Updated environment_setup.md 2018-06-22 00:00:20 -04:00
Chris Shyi
1ffbc1b692 Update environment_setup.md 2018-06-21 21:57:07 -04:00
Chris Shyi
be815086c0 Use secrets.py to generate user secret
Instead of using our own random string generator function, the user
secret is now being generated using secrets.token_urlsafe(). The max
length of the user secret has been increased to accommodate the size of
the 32 byte string.
2018-06-18 21:50:06 -04:00
Chris Shyi
a6260485ac Updated function docstring 2018-06-18 15:46:07 -04:00
Chris Shyi
c2c41e82c1 Rewrite drawAudioFeatGraph()
Rewrote the data point categorization part of the function to avoid
using hard coded indices.
2018-06-18 15:41:23 -04:00
Chris Shyi
4926eb57e8 Make drawAudioFeatGraph() more generic
Redefined the API of drawAudioFeatGraph() to take in an array of real numbers defining the intervals in which the data points will be binned.
2018-06-16 10:20:37 -04:00