Do not call Media.save_to_metadata function unless needed

This commit is contained in:
tcely 2025-05-29 10:18:23 -04:00 committed by GitHub
parent 6b64614561
commit 5e20ebdf47
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -415,15 +415,19 @@ def index_source_task(source_id):
'key', 'key',
*db_fields_media, *db_fields_media,
).get_or_create(defaults=media_defaults, source=source, key=key) ).get_or_create(defaults=media_defaults, source=source, key=key)
for key in ('epoch', 'availability',): for key in ('epoch', 'availability', 'extractor_key',):
field = fields(key, media) field = fields(key, media)
value = video.get(field) value = video.get(field)
if value is None and 'epoch' == key: existing_value = media.get_metadata_first_value(key)
if value is None:
if 'epoch' == key:
value = timestamp value = timestamp
elif 'extractor_key' == key:
value = site
if value is not None: if value is not None:
if existing_value and ('epoch' == key or value == existing_value):
continue
media.save_to_metadata(field, value) media.save_to_metadata(field, value)
if site:
media.save_to_metadata(fields('extractor_key', media), site)
db_batch_media.append(media) db_batch_media.append(media)
data, new_data = source.videos.defer('value').filter( data, new_data = source.videos.defer('value').filter(
media__isnull=True, media__isnull=True,