mirror of
https://github.com/mediacms-io/mediacms.git
synced 2025-11-06 07:28:53 -05:00
feat: The correct way to get/post chapters in django
This commit is contained in:
parent
b96134bd9f
commit
0456051a11
@ -604,7 +604,9 @@ def handle_video_chapters(media, chapters):
|
|||||||
else:
|
else:
|
||||||
video_chapter = models.VideoChapterData.objects.create(media=media, data=chapters)
|
video_chapter = models.VideoChapterData.objects.create(media=media, data=chapters)
|
||||||
|
|
||||||
return media.chapter_data
|
return {
|
||||||
|
'chapters': media.chapter_data,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def change_media_owner(media_id, new_user):
|
def change_media_owner(media_id, new_user):
|
||||||
|
|||||||
@ -18,8 +18,13 @@ class VideoChapterData(models.Model):
|
|||||||
data = []
|
data = []
|
||||||
if self.data and isinstance(self.data, list):
|
if self.data and isinstance(self.data, list):
|
||||||
for item in self.data:
|
for item in self.data:
|
||||||
if item.get("startTime") and item.get("endTime") and item.get("text"):
|
if item.get("startTime") and item.get("endTime") and item.get("chapterTitle"):
|
||||||
data.append(item)
|
chapter_item = {
|
||||||
|
'startTime': item.get("startTime"),
|
||||||
|
'endTime': item.get("endTime"),
|
||||||
|
'chapterTitle': item.get("chapterTitle"),
|
||||||
|
}
|
||||||
|
data.append(chapter_item)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -256,22 +256,26 @@ def video_chapters(request, friendly_token):
|
|||||||
return HttpResponseRedirect("/")
|
return HttpResponseRedirect("/")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = json.loads(request.body)["segments"]
|
request_data = json.loads(request.body)
|
||||||
|
data = request_data.get("chapters")
|
||||||
|
if not data:
|
||||||
|
return JsonResponse({'success': False, 'error': 'Request must contain "chapters" array'}, status=400)
|
||||||
|
|
||||||
chapters = []
|
chapters = []
|
||||||
for _, chapter_data in enumerate(data):
|
for _, chapter_data in enumerate(data):
|
||||||
start_time = chapter_data.get('startTime')
|
start_time = chapter_data.get('startTime')
|
||||||
end_time = chapter_data.get('endTime')
|
end_time = chapter_data.get('endTime')
|
||||||
text = chapter_data.get('text')
|
chapter_title = chapter_data.get('chapterTitle')
|
||||||
if start_time and end_time and text:
|
if start_time and end_time and chapter_title:
|
||||||
chapters.append(
|
chapters.append(
|
||||||
{
|
{
|
||||||
'startTime': start_time,
|
'startTime': start_time,
|
||||||
'endTime': end_time,
|
'endTime': end_time,
|
||||||
'text': text,
|
'chapterTitle': chapter_title,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
except Exception as e: # noqa
|
except Exception as e: # noqa
|
||||||
return JsonResponse({'success': False, 'error': 'Request data must be a list of video chapters with startTime, endTime, text'}, status=400)
|
return JsonResponse({'success': False, 'error': 'Request data must be a list of video chapters with startTime, endTime, chapterTitle'}, status=400)
|
||||||
|
|
||||||
ret = handle_video_chapters(media, chapters)
|
ret = handle_video_chapters(media, chapters)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user