mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-24 05:56:37 +00:00
Save duration
, timestamp
, and title
to Media instances
This commit is contained in:
parent
6390f5a1c3
commit
83dc375810
@ -10,7 +10,7 @@ import math
|
||||
import uuid
|
||||
from io import BytesIO
|
||||
from hashlib import sha1
|
||||
from datetime import timedelta, datetime
|
||||
from datetime import datetime, timedelta, timezone as tz
|
||||
from shutil import copyfile
|
||||
from PIL import Image
|
||||
from django.conf import settings
|
||||
@ -202,6 +202,7 @@ def index_source_task(source_id):
|
||||
source.last_crawl = timezone.now()
|
||||
source.save()
|
||||
log.info(f'Found {len(videos)} media items for source: {source}')
|
||||
fields = lambda x, t=source.source_type: Media.METADATA_FIELDS.get(x, dict()).get(t, x)
|
||||
for video in videos:
|
||||
# Create or update each video as a Media object
|
||||
key = video.get(source.key_field, None)
|
||||
@ -213,6 +214,18 @@ def index_source_task(source_id):
|
||||
except Media.DoesNotExist:
|
||||
media = Media(key=key)
|
||||
media.source = source
|
||||
media.duration = float(video.get(fields('duration'), 0)) or None
|
||||
media.title = str(video.get(fields('title'), ''))
|
||||
timestamp = video.get(fields('timestamp'), None)
|
||||
if timestamp is not None:
|
||||
try:
|
||||
timestamp_float = float(timestamp)
|
||||
posix_epoch = datetime(1970, 1, 1, tzinfo=tz.utc)
|
||||
published_dt = posix_epoch + timedelta(seconds=timestamp_float)
|
||||
except Exception as e:
|
||||
log.warn(f'Could not set published for: {source} / {media} with "{e}"')
|
||||
else:
|
||||
media.published = published_dt
|
||||
try:
|
||||
media.save()
|
||||
log.debug(f'Indexed media: {source} / {media}')
|
||||
|
Loading…
Reference in New Issue
Block a user