Setup history log on nzxt-arch
This commit is contained in:
@@ -46,7 +46,7 @@ class Track(models.Model):
|
|||||||
|
|
||||||
id = models.CharField(primary_key=True, max_length=MAX_ID)
|
id = models.CharField(primary_key=True, max_length=MAX_ID)
|
||||||
artists = models.ManyToManyField(Artist, blank=True)
|
artists = models.ManyToManyField(Artist, blank=True)
|
||||||
year = models.PositiveSmallIntegerField(null=True)
|
year = models.PositiveSmallIntegerField(blank=True, null=True)
|
||||||
popularity = models.PositiveSmallIntegerField()
|
popularity = models.PositiveSmallIntegerField()
|
||||||
runtime = models.PositiveSmallIntegerField()
|
runtime = models.PositiveSmallIntegerField()
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import os
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from django.db.models import Count, F, Max
|
from django.db.models import Count, F, Max
|
||||||
|
from django.db import IntegrityError
|
||||||
from django.http import JsonResponse
|
from django.http import JsonResponse
|
||||||
from django.core import serializers
|
from django.core import serializers
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -81,7 +82,8 @@ def save_track_obj(track_dict, artists, user_obj):
|
|||||||
else:
|
else:
|
||||||
# check if track is simple or full, simple Track object won't have year
|
# check if track is simple or full, simple Track object won't have year
|
||||||
# if 'album' in track_dict:
|
# if 'album' in track_dict:
|
||||||
try:
|
if 'release_date' in track_dict['album']:
|
||||||
|
# try:
|
||||||
new_track = Track.objects.create(
|
new_track = Track.objects.create(
|
||||||
id=track_dict['id'],
|
id=track_dict['id'],
|
||||||
year=track_dict['album']['release_date'].split('-')[0],
|
year=track_dict['album']['release_date'].split('-')[0],
|
||||||
@@ -89,8 +91,8 @@ def save_track_obj(track_dict, artists, user_obj):
|
|||||||
runtime=int(float(track_dict['duration_ms']) / 1000),
|
runtime=int(float(track_dict['duration_ms']) / 1000),
|
||||||
name=track_dict['name'],
|
name=track_dict['name'],
|
||||||
)
|
)
|
||||||
# else:
|
else:
|
||||||
except KeyError:
|
# except (IntegrityError, KeyError) as e:
|
||||||
new_track = Track.objects.create(
|
new_track = Track.objects.create(
|
||||||
id=track_dict['id'],
|
id=track_dict['id'],
|
||||||
popularity=int(track_dict['popularity']),
|
popularity=int(track_dict['popularity']),
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from .utils import *
|
|||||||
|
|
||||||
TIME_FORMAT = '%Y-%m-%d-%H-%M-%S'
|
TIME_FORMAT = '%Y-%m-%d-%H-%M-%S'
|
||||||
TRACKS_TO_QUERY = 200
|
TRACKS_TO_QUERY = 200
|
||||||
AUTH_SCOPE = ['user-library-read', 'user-read-recently-played',]
|
AUTH_SCOPE = ['user-library-read', 'user-read-recently-played', ]
|
||||||
|
|
||||||
# index {{{ #
|
# index {{{ #
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
# check if in virtual environment
|
# check if in virtual environment
|
||||||
# https://stackoverflow.com/questions/15454174/how-can-a-shell-function-know-if-it-is-running-within-a-virtualenv/15454916
|
# https://stackoverflow.com/questions/15454174/how-can-a-shell-function-know-if-it-is-running-within-a-virtualenv/15454916
|
||||||
|
|
||||||
python -c 'import sys; print(sys.real_prefix)' 2>/dev/null && INVENV=1 || INVENV=0
|
# python -c 'import sys; print(sys.real_prefix)' 2>/dev/null && INVENV=1 || INVENV=0
|
||||||
# INVENV=$(python -c 'import sys; print ("1" if hasattr(sys, "real_prefix") else "0")')
|
# INVENV=$(python -c 'import sys; print ("1" if hasattr(sys, "real_prefix") else "0")')
|
||||||
|
|
||||||
# if $INVENV is 1, then in virtualenv
|
# if $INVENV is 1, then in virtualenv
|
||||||
# echo $INVENV
|
# echo $INVENV
|
||||||
if [ $INVENV -eq 1 ]; then
|
# if [ $INVENV -eq 1 ]; then
|
||||||
rm login/migrations/0* api/migrations/0*
|
rm login/migrations/0* api/migrations/0*
|
||||||
sudo -u postgres psql -f reset_db.sql
|
sudo -u postgres psql -f reset_db.sql
|
||||||
python manage.py makemigrations login api
|
python manage.py makemigrations login api
|
||||||
python manage.py migrate
|
python manage.py migrate --fake
|
||||||
python manage.py runserver
|
python manage.py runserver
|
||||||
fi
|
# fi
|
||||||
|
|||||||
14
update-history.service
Normal file
14
update-history.service
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Update my Spotify listening history.
|
||||||
|
After=network.target
|
||||||
|
StartLimitIntervalSec=0
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
Restart=always
|
||||||
|
RestartSec=300
|
||||||
|
User=kevin
|
||||||
|
ExecStart=/usr/bin/bash /home/kevin/coding/spotify-lib-vis/src/update-history.sh
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
@@ -1 +1,3 @@
|
|||||||
/home/kevin/coding/spotify-lib-vis/bin/python /home/kevin/coding/spotify-lib-vis/src/manage.py update-history >> /home/kevin/coding/spotify-lib-vis/src/api/management/commands/update-history.log
|
#!/bin/bash
|
||||||
|
|
||||||
|
/home/kevin/coding/spotify-lib-vis/bin/python /home/kevin/coding/spotify-lib-vis/src/manage.py update-history >> /home/kevin/coding/spotify-lib-vis/src/api/management/commands/update-history.log 2>&1
|
||||||
|
|||||||
Reference in New Issue
Block a user