diff --git a/shared/blocks.py b/shared/blocks.py index 539228f6e96398d472c2fa28b7e59cade812ff19..4a3ba423329820af96f9a0595c19af0faab977df 100644 --- a/shared/blocks.py +++ b/shared/blocks.py @@ -138,77 +138,3 @@ class YouTubeVideoBlock(blocks.StructBlock): "Nepodařilo se získat video ID z YouTube URL", extra={"url": url} ) return "" - - -class YouTubeVideoBlock(blocks.StructBlock): - video_url = blocks.URLBlock( - label="Odkaz na video", - required=False, - help_text="Odkaz na YouTube video bude automaticky " - "zkonvertován na ID videa a NEBUDE uložen.", - ) - video_id = blocks.CharBlock( - label="ID videa (automatické pole)", - required=False, - help_text="Není třeba vyplňovat, bude automaticky " "načteno z odkazu.", - ) - - class Meta: - label = "YouTube video" - icon = "media" - template = "styleguide/2.3.x/blocks/video_block.html" - - def clean(self, value): - errors = {} - - if not value["video_url"] and not value["video_id"]: - errors["video_url"] = ErrorList(["Zadejte prosím odkaz na YouTube video."]) - - if value["video_url"]: - if not value["video_url"].startswith("https://youtu.be") and not value[ - "video_url" - ].startswith("https://www.youtube.com"): - errors["video_url"] = ErrorList( - [ - 'Odkaz na video musí začínat "https://www.youtube.com" ' - 'nebo "https://youtu.be"' - ] - ) - - if value["video_id"]: - if not re.match("^[A-Za-z0-9_-]{11}$", value["video_id"]): - errors["video_url"] = ErrorList( - ["Formát ID YouTube videa není validní"] - ) - - if errors: - raise StructBlockValidationError(errors) - return super().clean(value) - - def get_prep_value(self, value): - value = super().get_prep_value(value) - - if value["video_url"]: - value["video_id"] = self.convert_youtube_link_to_video_id( - value["video_url"] - ) - - value["video_url"] = "" - - return value - - @staticmethod - def convert_youtube_link_to_video_id(url): - reg_str = ( - "((?<=(v|V)/)|(?<=youtu\.be/)|(?<=youtube\.com/watch(\?|\&)v=)" - "|(?<=embed/))([\w-]+)" - ) - search_result = re.search(reg_str, url) - - if search_result: - return search_result.group(0) - - logger.warning( - "Nepodařilo se získat video ID z YouTube URL", extra={"url": url} - ) - return ""