mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-11 01:48:53 -05:00
ref
This commit is contained in:
parent
52fab13286
commit
adc424dd01
@ -319,7 +319,7 @@ class Media(models.Model):
|
|||||||
self.__original_uploaded_poster = self.uploaded_poster
|
self.__original_uploaded_poster = self.uploaded_poster
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
print(f"saomeone called save for {self.friendly_token} so will print {self.hls_file}")
|
print(f"SAVE called for {self.friendly_token}")
|
||||||
if not self.title:
|
if not self.title:
|
||||||
self.title = self.media_file.path.split("/")[-1]
|
self.title = self.media_file.path.split("/")[-1]
|
||||||
|
|
||||||
@ -1574,6 +1574,7 @@ def media_save(sender, instance, created, **kwargs):
|
|||||||
# once model is saved
|
# once model is saved
|
||||||
# SOS: do not put anything here, as if more logic is added,
|
# SOS: do not put anything here, as if more logic is added,
|
||||||
# we have to disconnect signal to avoid infinite recursion
|
# we have to disconnect signal to avoid infinite recursion
|
||||||
|
print(f'mpainei media_save gia {instance.friendly_token}')
|
||||||
if not instance.friendly_token:
|
if not instance.friendly_token:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -1595,7 +1596,7 @@ def media_save(sender, instance, created, **kwargs):
|
|||||||
tag.update_tag_media()
|
tag.update_tag_media()
|
||||||
|
|
||||||
instance.update_search_vector()
|
instance.update_search_vector()
|
||||||
print(f'kanei exit i media_save')
|
print(f'EXIT media_save gia {instance.friendly_token}')
|
||||||
|
|
||||||
|
|
||||||
@receiver(pre_delete, sender=Media)
|
@receiver(pre_delete, sender=Media)
|
||||||
|
|||||||
@ -855,6 +855,35 @@ def produce_video_chapters(chapter_id):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
@task(name="post_trim_action", queue="short_tasks", soft_time_limit=600)
|
||||||
|
def post_trim_action(friendly_token):
|
||||||
|
"""Perform post-processing actions after video trimming
|
||||||
|
|
||||||
|
Args:
|
||||||
|
friendly_token: The friendly token of the media
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if successful, False otherwise
|
||||||
|
"""
|
||||||
|
logger.info(f"Post trim action for {friendly_token}")
|
||||||
|
try:
|
||||||
|
media = Media.objects.get(friendly_token=friendly_token)
|
||||||
|
except Media.DoesNotExist:
|
||||||
|
logger.info(f"Media with friendly token {friendly_token} not found")
|
||||||
|
return False
|
||||||
|
|
||||||
|
media.set_media_type()
|
||||||
|
encodings = media.encodings.filter(status="success", profile__extension='mp4', chunk=False)
|
||||||
|
for encoding in encodings:
|
||||||
|
update_encoding_size(encoding.id)
|
||||||
|
|
||||||
|
media.produce_thumbnails_from_video()
|
||||||
|
produce_sprite_from_video.delay(friendly_token)
|
||||||
|
create_hls.delay(friendly_token)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
@task(name="video_trim_task", bind=True, queue="short_tasks", soft_time_limit=600)
|
@task(name="video_trim_task", bind=True, queue="short_tasks", soft_time_limit=600)
|
||||||
def video_trim_task(self, trim_request_id):
|
def video_trim_task(self, trim_request_id):
|
||||||
# SOS: if at some point we move from ffmpeg copy, then this need be changed
|
# SOS: if at some point we move from ffmpeg copy, then this need be changed
|
||||||
@ -906,17 +935,13 @@ def video_trim_task(self, trim_request_id):
|
|||||||
trim_result = trim_video_method(encoding.media_file.path, timestamps_encodings)
|
trim_result = trim_video_method(encoding.media_file.path, timestamps_encodings)
|
||||||
if not trim_result:
|
if not trim_result:
|
||||||
logger.info(f"Failed to trim encoding {encoding.id} for media {target_media.friendly_token}")
|
logger.info(f"Failed to trim encoding {encoding.id} for media {target_media.friendly_token}")
|
||||||
else:
|
|
||||||
update_encoding_size.delay(encoding.id)
|
|
||||||
original_trim_result = trim_video_method(target_media.media_file.path, timestamps_original)
|
original_trim_result = trim_video_method(target_media.media_file.path, timestamps_original)
|
||||||
if not original_trim_result:
|
if not original_trim_result:
|
||||||
logger.info(f"Failed to trim original file for media {target_media.friendly_token}")
|
logger.info(f"Failed to trim original file for media {target_media.friendly_token}")
|
||||||
|
|
||||||
target_media.set_media_type()
|
# Schedule post-processing
|
||||||
|
post_trim_action.delay(target_media.friendly_token)
|
||||||
target_media.produce_thumbnails_from_video()
|
|
||||||
target_media.produce_sprite_from_video()
|
|
||||||
create_hls.delay(target_media.friendly_token)
|
|
||||||
|
|
||||||
trim_request.status = "success"
|
trim_request.status = "success"
|
||||||
trim_request.save(update_fields=["status"])
|
trim_request.save(update_fields=["status"])
|
||||||
@ -930,13 +955,9 @@ def video_trim_task(self, trim_request_id):
|
|||||||
encodings = new_media.encodings.filter(status="success", profile__extension='mp4', chunk=False)
|
encodings = new_media.encodings.filter(status="success", profile__extension='mp4', chunk=False)
|
||||||
for encoding in encodings:
|
for encoding in encodings:
|
||||||
trim_result = trim_video_method(encoding.media_file.path, [timestamp])
|
trim_result = trim_video_method(encoding.media_file.path, [timestamp])
|
||||||
update_encoding_size.delay(encoding.id)
|
|
||||||
|
|
||||||
new_media.set_media_type()
|
# Schedule post-processing
|
||||||
|
post_trim_action.delay(new_media.friendly_token)
|
||||||
new_media.produce_thumbnails_from_video()
|
|
||||||
new_media.produce_sprite_from_video()
|
|
||||||
create_hls.delay(new_media.friendly_token)
|
|
||||||
|
|
||||||
trim_request.status = "success"
|
trim_request.status = "success"
|
||||||
trim_request.save(update_fields=["status"])
|
trim_request.save(update_fields=["status"])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user