Fixing long play scrobbles
This commit is contained in:
@ -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),
|
||||
),
|
||||
]
|
||||
20
vrobbler/apps/books/migrations/0003_book_cover.py
Normal file
20
vrobbler/apps/books/migrations/0003_book_cover.py
Normal 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/"
|
||||
),
|
||||
),
|
||||
]
|
||||
19
vrobbler/apps/books/urls.py
Normal file
19
vrobbler/apps/books/urls.py
Normal 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",
|
||||
),
|
||||
]
|
||||
17
vrobbler/apps/books/views.py
Normal file
17
vrobbler/apps/books/views.py
Normal 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"
|
||||
@ -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),
|
||||
),
|
||||
]
|
||||
@ -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),
|
||||
),
|
||||
]
|
||||
BIN
vrobbler/apps/scrobbles/static/images/hltb.webp
Normal file
BIN
vrobbler/apps/scrobbles/static/images/hltb.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 B |
BIN
vrobbler/apps/scrobbles/static/images/igdb-logo.png
Normal file
BIN
vrobbler/apps/scrobbles/static/images/igdb-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
@ -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"),
|
||||
),
|
||||
]
|
||||
0
vrobbler/apps/videogames/templatetags/__init__.py
Normal file
0
vrobbler/apps/videogames/templatetags/__init__.py
Normal file
16
vrobbler/apps/videogames/templatetags/naturalduration.py
Normal file
16
vrobbler/apps/videogames/templatetags/naturalduration.py
Normal 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
|
||||
Reference in New Issue
Block a user