Update long play to use seconds
This commit is contained in:
@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 4.1.5 on 2023-03-06 15:20
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("scrobbles", "0028_scrobble_video_game_minutes_played"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name="scrobble",
|
||||||
|
name="video_game_minutes_played",
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="scrobble",
|
||||||
|
name="long_play_seconds",
|
||||||
|
field=models.BigIntegerField(blank=True, null=True),
|
||||||
|
),
|
||||||
|
]
|
||||||
@ -418,7 +418,7 @@ class Scrobble(TimeStampedModel):
|
|||||||
|
|
||||||
# Fields for keeping track long content like books and games
|
# Fields for keeping track long content like books and games
|
||||||
book_pages_read = models.IntegerField(**BNULL)
|
book_pages_read = models.IntegerField(**BNULL)
|
||||||
video_game_minutes_played = models.IntegerField(**BNULL)
|
long_play_seconds = models.BigIntegerField(**BNULL)
|
||||||
long_play_complete = models.BooleanField(**BNULL)
|
long_play_complete = models.BooleanField(**BNULL)
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
@ -601,7 +601,7 @@ class Scrobble(TimeStampedModel):
|
|||||||
"Syncing long play media playback time to elapsed time since start"
|
"Syncing long play media playback time to elapsed time since start"
|
||||||
)
|
)
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
updated_playback = (now - self.timestamp).seconds / 60
|
updated_playback = (now - self.timestamp).seconds
|
||||||
|
|
||||||
media_filter = models.Q(video_game=self.video_game)
|
media_filter = models.Q(video_game=self.video_game)
|
||||||
if class_name == "Book":
|
if class_name == "Book":
|
||||||
@ -612,20 +612,21 @@ class Scrobble(TimeStampedModel):
|
|||||||
played_to_completion=True,
|
played_to_completion=True,
|
||||||
long_play_complete=False,
|
long_play_complete=False,
|
||||||
).last()
|
).last()
|
||||||
self.video_game_minutes_played = int(updated_playback)
|
self.long_play_seconds = int(updated_playback)
|
||||||
if last_scrobble:
|
if last_scrobble:
|
||||||
self.video_game_minutes_played = (
|
self.long_play_seconds = (
|
||||||
int(last_scrobble.playback_position) + updated_playback
|
int(last_scrobble.playback_position) + updated_playback
|
||||||
)
|
)
|
||||||
|
|
||||||
self.playback_position = int(updated_playback)
|
self.playback_position = int(updated_playback)
|
||||||
|
self.playback_position_ticks = int(updated_playback) * 1000
|
||||||
self.played_to_completion = True
|
self.played_to_completion = True
|
||||||
self.save(
|
self.save(
|
||||||
update_fields=[
|
update_fields=[
|
||||||
"playback_position",
|
"playback_position",
|
||||||
"playback_position_ticks",
|
"playback_position_ticks",
|
||||||
"played_to_completion",
|
"played_to_completion",
|
||||||
"video_game_minutes_played",
|
"long_play_seconds",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
|
|||||||
@ -6,8 +6,9 @@ register = template.Library()
|
|||||||
@register.filter
|
@register.filter
|
||||||
def natural_duration(value):
|
def natural_duration(value):
|
||||||
value = int(value)
|
value = int(value)
|
||||||
hours = int(value / 60)
|
total_minutes = int(value / 60)
|
||||||
minutes = value - (hours * 60)
|
hours = int(total_minutes / 60)
|
||||||
|
minutes = total_minutes - (hours * 60)
|
||||||
value_str = ""
|
value_str = ""
|
||||||
if minutes:
|
if minutes:
|
||||||
value_str = f"{minutes} minutes"
|
value_str = f"{minutes} minutes"
|
||||||
|
|||||||
Reference in New Issue
Block a user