various reviews

Part-of: <https://dev.funkwhale.audio/funkwhale/funkwhale/-/merge_requests/2658>
environments/review-docs-2079-tp5oqz/deployments/19381
Petitminion 2023-12-13 16:31:26 +01:00 zatwierdzone przez Ciarán Ainsworth
rodzic 17c4a92f77
commit f45fd1e465
6 zmienionych plików z 24 dodań i 44 usunięć

Wyświetl plik

@ -106,7 +106,7 @@ def sync_listenings_from_listenbrainz(user, conf):
try:
last_ts = (
history_models.Listening.objects.filter(user=user)
.filter(from_listenbrainz=True)
.filter(source="Listenbrainz")
.latest("creation_date")
.values_list("creation_date", flat=True)
)
@ -126,7 +126,7 @@ def sync_favorites_from_listenbrainz(user, conf):
try:
last_ts = (
favorites_models.TrackFavorite.objects.filter(user=user)
.filter(from_listenbrainz=True)
.filter(source="Listenbrainz")
.latest("creation_date")
.values_list("creation_date", flat=True)
)

Wyświetl plik

@ -8,6 +8,8 @@ from funkwhale_api.music import models as music_models
from funkwhale_api.taskapp import celery
from funkwhale_api.users import models
from .funkwhale_startup import PLUGIN
@celery.app.task(name="listenbrainz.trigger_listening_sync_with_listenbrainz")
def trigger_listening_sync_with_listenbrainz():
@ -64,20 +66,34 @@ def add_lb_listenings_to_db(listens, user):
listen.additional_info.get("submission_client")
and listen.additional_info.get("submission_client")
== "Funkwhale ListenBrainz plugin"
and history_models.Listening.objects.filter(
creation_date=listen.listened_at
).exists()
):
continue
mbid = (
listen.mbid_mapping
if hasattr(listen, "mbid_mapping")
else listen.recording_mbid
)
if not mbid:
logger = PLUGIN["logger"]
logger.info("Received listening doesn't have a mbid. Skipping...")
try:
track = music_models.Track.objects.get(mbid=listen.recording_mbid)
track = music_models.Track.objects.get(mbid=mbid)
except music_models.Track.DoesNotExist:
# to do : resolve non mbid listens ?
logger.info("Received listening doesn't exist in fw database. Skipping...")
continue
user = user
fw_listen = history_models.Listening(
creation_date=listen.listened_at,
creation_date=timezone.make_aware(listen.listened_at),
track=track,
user=user,
from_listenbrainz=True,
source="Listenbrainz",
)
fw_listens.append(fw_listen)

Wyświetl plik

@ -1,18 +0,0 @@
# Generated by Django 3.2.20 on 2023-11-29 15:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('favorites', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='trackfavorite',
name='from_listenbrainz',
field=models.BooleanField(default=None, null=True),
),
]

Wyświetl plik

@ -12,7 +12,7 @@ class TrackFavorite(models.Model):
track = models.ForeignKey(
Track, related_name="track_favorites", on_delete=models.CASCADE
)
from_listenbrainz = models.BooleanField(default=None, null=True)
source = models.CharField(max_length=100, null=True, blank=True)
class Meta:
unique_together = ("track", "user")

Wyświetl plik

@ -1,18 +0,0 @@
# Generated by Django 3.2.20 on 2023-11-29 15:19
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('history', '0002_auto_20180325_1433'),
]
operations = [
migrations.AddField(
model_name='listening',
name='from_listenbrainz',
field=models.BooleanField(default=None, null=True),
),
]

Wyświetl plik

@ -17,7 +17,7 @@ class Listening(models.Model):
on_delete=models.CASCADE,
)
session_key = models.CharField(max_length=100, null=True, blank=True)
from_listenbrainz = models.BooleanField(default=None, null=True)
source = models.CharField(max_length=100, null=True, blank=True)
class Meta:
ordering = ("-creation_date",)