Use Metadata table to store Source indexing results

This commit is contained in:
tcely authored and GitHub committed 2025-05-28 01:39:54 -04:00
1 parent 9289a619ee
commit 3093315271
1 file changed
+14 -2
+14 -2
View File
@@ -3,8 +3,9 @@ from common.json import JSONEncoder
from common.timestamp import timestamp_to_datetime from common.timestamp import timestamp_to_datetime
from common.utils import django_queryset_generator as qs_gen from common.utils import django_queryset_generator as qs_gen
from django import db from django import db
from django.utils import timezone
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from .media import Media from .media import Media, Source
class Metadata(db.models.Model): class Metadata(db.models.Model):
@@ -17,6 +18,7 @@ class Metadata(db.models.Model):
verbose_name_plural = _('Metadata about Media') verbose_name_plural = _('Metadata about Media')
unique_together = ( unique_together = (
('media', 'site', 'key'), ('media', 'site', 'key'),
('source', 'site', 'key', ),
) )
get_latest_by = ["-retrieved", "-created"] get_latest_by = ["-retrieved", "-created"]
@@ -27,12 +29,22 @@ class Metadata(db.models.Model):
default=uuid.uuid4, default=uuid.uuid4,
help_text=_('UUID of the metadata'), help_text=_('UUID of the metadata'),
) )
source = db.models.ForeignKey(
Source,
on_delete=db.models.CASCADE,
related_name="videos",
related_query_name="video",
help_text=_('Source from which the video was retrieved'),
blank=True,
null=True,
)
media = db.models.OneToOneField( media = db.models.OneToOneField(
Media, Media,
# on_delete=models.DO_NOTHING, # on_delete=models.DO_NOTHING,
on_delete=db.models.SET_NULL, on_delete=db.models.SET_NULL,
related_name='new_metadata', related_name='new_metadata',
help_text=_('Media the metadata belongs to'), help_text=_('Media the metadata belongs to'),
blank=True,
null=True, null=True,
parent_link=False, parent_link=False,
) )
@@ -62,8 +74,8 @@ class Metadata(db.models.Model):
) )
retrieved = db.models.DateTimeField( retrieved = db.models.DateTimeField(
_('retrieved'), _('retrieved'),
auto_now_add=True,
db_index=True, db_index=True,
default=timezone.now,
help_text=_('Date and time the metadata was retrieved'), help_text=_('Date and time the metadata was retrieved'),
) )
uploaded = db.models.DateTimeField( uploaded = db.models.DateTimeField(