"); Markup_e('twitch','(\\L))\/\/www.twitch.tv\/videos\/([^\\s$UrlExcludeChars]+)/", "Keep(\$GLOBALS['LinkFunctions'][\$m[1]](\$pagename,\$m[1], '//player.twitch.tv/?video=v'.\$m[2].'&autoplay=false','', \$m[1].'//player.twitch.tv/?video=v'.\$m[2].'&autoplay=false', \$GLOBALS['TwitchTagFmt']),'L')"); } if ($EnableVA_Dailymotion) { # Raw Dailymotion vid SDV($DailymotionTagFmt, "
\$LinkAlt
"); Markup_e('dailymotion','(\\L))\/\/(?:www\.)?dailymotion\.com\/([^_\\s$UrlExcludeChars]+)_(.*)?/", "Keep(\$GLOBALS['LinkFunctions'][\$m[1]](\$pagename,\$m[1],'//www.dailymotion.com/embed/'.\$m[2],\$m[3],\$m[1].'//www.dailymotion.com/embed/'.\$m[2], \$GLOBALS['DailymotionTagFmt']),'L')"); } if ($EnableVA_Vimeo) { # Raw Vimeo vid SDV($VimeoTagFmt, "
"); Markup_e('vimeo','(\\L))\/\/vimeo\.com\/([^\\s$UrlExcludeChars]+)/", "Keep(\$GLOBALS['LinkFunctions'][\$m[1]](\$pagename,\$m[1], '//player.vimeo.com/video/'.\$m[2].'?color=ffffff&byline=0&portrait=0&badge=0', '',\$m[1].'//player.vimeo.com/video/'.\$m[2].'?color=ffffff&byline=0&portrait=0&badge=0', \$GLOBALS['VimeoTagFmt']),'L')"); } if ($EnableVA_Youtube) { # Raw Youtube vid SDV($YouTubeTagFmt, "
"); Markup_e('youtube','(\\L))(\/\/www\.youtube\.com\/embed\/[^\\s$UrlExcludeChars]+)/", "Keep(\$GLOBALS['LinkFunctions'][\$m[1]](\$pagename,\$m[1],\$m[2],'',\$m[1].\$m[2], \$GLOBALS['YouTubeTagFmt']),'L')"); Markup_e('youtube_watch','(\\L))(\/\/www\.youtube\.com)\/watch\?v=([^\\s$UrlExcludeChars]+)/", "Keep(\$GLOBALS['LinkFunctions'][\$m[1]](\$pagename,\$m[1],\$m[2].'/embed/'.\$m[3],'',\$m[1].\$m[2].'/embed/'.\$m[3], \$GLOBALS['YouTubeTagFmt']),'L')"); Markup_e('youtu_be_watch','(\\L))(\/\/youtu\.be)\/([^\\s$UrlExcludeChars]+)/", "Keep(\$GLOBALS['LinkFunctions'][\$m[1]](\$pagename,\$m[1],'//www.youtube.com/embed/'.\$m[3],'',\$m[1].\$m[2].'/'.\$m[3], \$GLOBALS['YouTubeTagFmt']),'L')"); } if ($EnableVA_Attach) { # Raw generic vid SDV($VideoExtPattern, "\\.(?:mp4|m4v|avi|webm|ogv?|MP4|M4V|AVI|WEBM|OGV)"); SDV($VideoTagFmt, ""); Markup_e('vida','(\\L))([^\\s$UrlExcludeChars]+$VideoExtPattern)(\"([^\"]+$ImgExtPattern)\")?/", "MxVideoAttach(\$pagename,\"\$m[1]\$m[2]\",'',\"poster=\$m[3]\")"); Markup('VideoAttach','<{(', "/(Attach:)(.+)($VideoExtPattern)(\"([^\"]+$ImgExtPattern)\")?/", "
{(video '$2$3' poster=$4 width=0)}
"); # Treat video tag similar to img, object, etc. for width height inline styling SDV($imgTag, '(?:img|object|embed|video|div)'); } Markup('videoattach_video', '<{(', '/\\(:'.$VideoAttach_Directive.'\\s+(\\S.*?):\\)/', "{(video $1)}"); # Handle wiki uploaded video $MarkupExpr['video'] = 'MxVideoAttach($pagename, $args[0], $argp)'; function MxVideoAttach($orig_pagename, $source, $opts=NULL, $rawargs='') { global $UploadFileFmt, $FmtV, $LinkUploadCreateFmt, $EnableDirectDownload, $UploadPrefixFmt, $VideoTagFmt; $defaults = array( 'controls' => 1, 'autoplay' => 0, 'loop' => 0, 'width' => '100%', 'height' => 0, 'muted' => 0, 'poster' => 0, 'type' => 0, 'preload' => 'auto', 'error' => '' ); if ($rawargs) { $rawopts = ParseArgs($rawargs); $opts = array_merge($defaults, $rawopts); } else { $opts = array_merge($defaults, $opts); } $pagename=$orig_pagename; $notsourceurl=1; if (preg_match('/^[^:\/]+:.*/', $source)) { $path = $source; $notsourceurl=0; } elseif (preg_match('!^(.*)/([^/]+)$!', $source, $match)) { $pagename = MakePageName($pagename, $match[1]); $path = $match[2]; } else { $path = $source; } if ($notsourceurl) { $upname = MakeUploadName($pagename, $path); $encname = rawurlencode($upname); $filepath = FmtPageName("$UploadFileFmt/$upname", $pagename); $FmtV['$LinkUpload'] = FmtPageName("\$PageUrl?action=upload&upname=$encname", $pagename); $FmtV['$LinkText'] = $upname; if (!file_exists($filepath)) return Keep(FmtPageName($LinkUploadCreateFmt, $pagename)); $path = PUE(FmtPageName(IsEnabled($EnableDirectDownload, 1) ? "$UploadUrlFmt$UploadPrefixFmt/$encname" : "{\$PageUrl}?action=download&upname=$encname", $pagename)); } # Do same for poster if provided $poster_path=''; $notposterurl=1; if (@$opts['poster']) { $poster_pagename=$orig_pagename; if (preg_match('/^https?:.*/', @$opts['poster'])) { $poster_path = @$opts['poster']; $notposterurl=0; } elseif (preg_match('!^(.*)/([^/]+)$!', @$opts['poster'], $poster_match)) { $poster_pagename = MakePageName($poster_pagename, $poster_match[1]); $poster_path = $poster_match[2]; } else { $poster_path = @$opts['poster']; } if ($notposterurl) { $poster_upname = MakeUploadName($poster_pagename, $poster_path); $poster_encname = rawurlencode($poster_upname); $poster_filepath = FmtPageName("$UploadFileFmt/$poster_upname", $poster_pagename); $FmtV['$LinkUpload'] = FmtPageName("\$PageUrl?action=upload&upname=$poster_encname", $poster_pagename); $FmtV['$LinkText'] = $poster_upname; if (!file_exists($poster_filepath)) return Keep(FmtPageName($LinkUploadCreateFmt, $poster_pagename)); $poster_path = PUE(FmtPageName(IsEnabled($EnableDirectDownload, 1) ? "$UploadUrlFmt$UploadPrefixFmt/$poster_encname" : "{\$PageUrl}?action=download&upname=$poster_encname", $poster_pagename)); } } if ($notsourceurl) { if (@$opts['error'] == '') { if ($poster_path) { $error = ' '; } else { $error = '' . $source . ''; } } else { $error = @$opts['error']; } } if ($rawargs) { $match = array(); if (preg_match('/^(https?:)(.*)/', $path, $match)) { return Keep($GLOBALS['LinkFunctions'][$match[1]]($pagename,$match[1],$match[2],$poster_path,'44', $GLOBALS['VideoTagFmt']),'L'); } } else { return Keep(""); } }