################################ # RVM Setup: ################################
Install rvm (www.digitalocean.com/community/tutorials/how-to-use-rvm-to-manage-ruby-installations-and-environments-on-a-vps)
The first time:
rvm install ruby-2.4.9 rvm use ruby-2.4.9 bundle install
Thereafter:
rvm use ruby-2.4.9
You may have to be in a login shell for rvm to work properly:
bash --login rvm use ruby-2.4.9
################################ # Deployment: ################################
First, make sure your public RSA key is in /home/pi/.ssh/authorized_keys.
Commit and push your changes. Then:
ssh [email protected] -p 10110 cd jcradio git pull
Simply changing server source code should not require a server restart. If you do need to restart the server:
jcradio-stop do stuff jcradio-start
################################
You might also need to install nodejs… (At least Austin on P1G4 Ubuntu 20.04 had to. Otherwise the rake commands failed)
sudo apt install nodejs
################################
Ruby version: 2.4.9 Rails version: 4.2.8
To set up the database, run
rake db:setup rake db:migrate
To start the server, run
rails server
Note: if you do ‘bundle install`, it may try to update the version of rspotify’s dependency omniauth-oauth2 from 1.3.1 to 1.5.0. This version of omniauth-oauth2 does not currently work with rspotify. You must revert the version of this package back to 1.3.1 in ‘Gemfile.lock`.
TODO
Bugs
Error if you search empty string
Sometimes songs fail to be decrypted
Batch requests so we're not constantly querying db
Features
xHistory of songs
xNotify you again if it's almost your turn
xPlots
SQL query
When adding a song, option "Override the first Letter" vs "I know, I don't care"
Will help with anaylsis, and when Buddy just random shuffles your spotify Library
Better Queue Search (filte rby first letter earlier)
ie. Jeb's fix
Buddy
different tastes
Optional variety, if say there are only 5 Z songs
Shuffle your N recent liked songs
Dependent: option to "I know, I don't care"
Re-sync whole database of songs to use standardized first_letter calculation
eg. "Move Like you want - Live" autopopulates to L
Skip song ability
notify all users who skipped the song
Recommendations
Encorporate min and max in audio features
Encorporate genre seeds?
Add loading icon
Increment "last" counter
Properly validate results, instead of having the server throw an error
Settings
Number of days warning
Hide queue option