Fixing long play scrobbles

This commit is contained in:
2023-03-06 00:53:50 -05:00
parent a4537879f9
commit 9bcd9d8bb7
13 changed files with 275 additions and 0 deletions

View File

@ -0,0 +1,23 @@
# Generated by Django 4.1.5 on 2023-03-06 05:29
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("books", "0001_initial"),
]
operations = [
migrations.AddField(
model_name="book",
name="author_name",
field=models.CharField(blank=True, max_length=255, null=True),
),
migrations.AddField(
model_name="book",
name="author_openlibrary_id",
field=models.CharField(blank=True, max_length=255, null=True),
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 4.1.5 on 2023-03-06 05:31
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("books", "0002_book_author_name_book_author_openlibrary_id"),
]
operations = [
migrations.AddField(
model_name="book",
name="cover",
field=models.ImageField(
blank=True, null=True, upload_to="books/covers/"
),
),
]

View File

@ -0,0 +1,19 @@
from django.urls import path
from books import views
app_name = "books"
urlpatterns = [
path("book/", views.BookListView.as_view(), name="book_list"),
path(
"book/<slug:slug>/",
views.BookDetailView.as_view(),
name="book_detail",
),
path(
"author/<slug:slug>/",
views.AuthorDetailView.as_view(),
name="author_detail",
),
]

View File

@ -0,0 +1,17 @@
from django.views import generic
from books.models import Book, Author
class BookListView(generic.ListView):
model = Book
paginate_by = 20
class BookDetailView(generic.DetailView):
model = Book
slug_field = "uuid"
class AuthorDetailView(generic.DetailView):
model = Author
slug_field = "uuid"

View File

@ -0,0 +1,22 @@
# Generated by Django 4.1.5 on 2023-03-06 02:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("scrobbles", "0026_scrobble_video_game"),
]
operations = [
migrations.RemoveField(
model_name="scrobble",
name="videogame_minutes_played",
),
migrations.AlterField(
model_name="scrobble",
name="playback_position",
field=models.CharField(blank=True, max_length=10, null=True),
),
]

View File

@ -0,0 +1,21 @@
# Generated by Django 4.1.5 on 2023-03-06 05:04
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
(
"scrobbles",
"0027_remove_scrobble_videogame_minutes_played_and_more",
),
]
operations = [
migrations.AddField(
model_name="scrobble",
name="video_game_minutes_played",
field=models.IntegerField(blank=True, null=True),
),
]

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,23 @@
# Generated by Django 4.1.5 on 2023-03-06 02:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("videogames", "0005_rename_platform_videogame_platforms"),
]
operations = [
migrations.AddField(
model_name="videogame",
name="summary",
field=models.TextField(blank=True, null=True),
),
migrations.AlterField(
model_name="videogame",
name="platforms",
field=models.ManyToManyField(to="videogames.videogameplatform"),
),
]

View File

@ -0,0 +1,16 @@
from django import template
register = template.Library()
@register.filter
def natural_duration(value):
value = int(value)
hours = int(value / 60)
minutes = value - (hours * 60)
value_str = ""
if minutes:
value_str = f"{minutes} minutes"
if hours:
value_str = f"{hours} hours, " + value_str
return value_str