3.0.3 • Published 10 months ago

qmusicv3 v3.0.3

Weekly downloads
-
License
ISC
Repository
github
Last release
10 months ago

QmusicNL-CatchTheSummerHit-Scanner

This is a Q-music NL Song Scanner for Catch The Summerhit. This script opens a websocket connection with Qmusic's online playlist and watches if one of your summerhits is playing. If it is, it will check how much time there is left on your multiplier, and wait little under 10 minutes (or before your multiplier ends, whichever is shorter) to 'catch' the summerhit for you, awarding you the corresponding points and maximizing the amount of time your multiplier will be valid.


Setup

On installation with npm install, the setup will ask for a Bearer Authentication token. Fill in the BEARER authentication token, which you will need to sniff from the Qmusic app yourself. Once I figure out how to fetch the authentication token with login details, I would love to automate this, currently I am unable to technically do so. The current authentication token seems to be valid for multiple days, so you should be good to go for a while.

The Token is saved in a .env file. After this updateSettings.js will run and fetch your details like summerhits and save them in settings.json.

If you need to update these details, run node updateSettings.js.

When everything is set up, run the script with node script.js.

The scripts (script.js and updateSettings.js) for now rely on being manually run, if you want it to run by itself, it's easiest to add them to your crontab. crontab -e and add the following lines:

2 0 * * * node /PATH/TO/SCRIPT/updateSettings.js
@reboot node /PATH/TO/SCRIPT/script.js

If you want to keep a log of this script, add >> /PATH/TO/SCRIPT/scriptlog.log 2>&1 at the end of the lines in the crontab, of course edit to your liking.

This runs updateSettings.js every day 2 minutes past midnight, to retrieve latest hits, as that is when they reset. This relies on system time so make sure it's correct or adjust the cron times. Suggested is to use either nodemon or PM2 to run this script and keep running.