Files
tripwithbonus/BaseModels/search_optimization/ld_json/ld_media_video_object.py
SDE b2bd830b6e 0.0.3
GeneralApp add
2023-06-19 17:19:18 +03:00

54 lines
1.8 KiB
Python

import json
import re
import project_sets
from django.urls import reverse
from django.utils.html import strip_tags
def create_videoobject(video_path, name, description, DT):
video_id = video_path.split('/')[-1]
thumbs = list(map(lambda s: "https://img.youtube.com/vi/{0}/{1}.jpg".format(video_id, str(s)), range(1, 5)))
data = {
"@context": "https://schema.org",
"@type": "VideoObject",
"name": name,
"description": description,
"thumbnailUrl": thumbs,
"uploadDate": DT.isoformat(),
# "duration": "PT1M54S", # продолжительность видео
# "contentUrl": "https://www.example.com/video/123/file.mp4", # адрес к видеофайлу
"embedUrl": video_path,
# "interactionStatistic": { # количество просмотров
# "@type": "InteractionCounter",
# "interactionType": { "@type": "WatchAction" },
# "userInteractionCount": 5647018
# },
# "regionsAllowed": "US,NL" # разрешенные регионы
}
return data
def get_ld_videoobjects_for_page_html(obj, name, description, DT, content):
from BaseModels.inter import get_all_videos_from_html_content
res_list = []
if obj.video:
data = create_videoobject(obj.video, name, description, DT)
res_list.append(json.dumps(data))
if not content:
return res_list
videos_list = get_all_videos_from_html_content(content)
# if videos_list:
# img_list = list(map(lambda img: "{0}{1}".format(project_sets.domain, img), videos_list))
for video_path in videos_list:
if not video_path in obj.video and not obj.video in video_path:
data = create_videoobject(video_path, name, description, DT)
res_list.append(json.dumps(data))
return res_list