Merge branch '6.0'
[GitHub/WoltLab/WCF.git] / com.woltlab.wcf / mediaProvider.xml
CommitLineData
7d346d2a 1<?xml version="1.0" encoding="UTF-8"?>
99951f50 2<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/6.0/mediaProvider.xsd">
7d346d2a
MW
3 <import>
4 <provider name="youtube">
5 <title>YouTube</title>
db64d0a5
SG
6 <regex><![CDATA[https?://(?:.+?\.)?youtu(?:\.be/|be\.com/(?:#/)?watch\?(?:.*?&)?v=)(?P<ID>[a-zA-Z0-9_-]+)
7https?://(?:.+?\.)?youtube.com/shorts/(?P<ID>[a-zA-Z0-9_-]+)]]></regex>
4128a77a 8 <className>wcf\system\bbcode\media\provider\YouTubeBBCodeMediaProvider</className>
7d346d2a 9 </provider>
7d346d2a
MW
10 <provider name="youtube-playlist">
11 <title>YouTube Playlist</title>
12 <regex><![CDATA[https?://(?:.+?\.)?youtu(?:\.be/|be\.com/)playlist\?(?:.*?&)?list=(?P<ID>[a-zA-Z0-9_-]+)]]></regex>
936c0f6d 13 <html><![CDATA[<div class="messageVideoContainer"><iframe src="https://www.youtube.com/embed/videoseries?list={$ID}" width="560" height="315" allowfullscreen referrerpolicy="strict-origin"></iframe></div>]]></html>
7d346d2a 14 </provider>
7d346d2a
MW
15 <provider name="vimeo">
16 <title>Vimeo</title>
cdf08056
MW
17 <regex><![CDATA[https?://vimeo\.com/(?:channels/[^/]+/)?(?P<ID>\d+)/?(?P<hash>(?(?<=/)[a-zA-Z0-9]+|))
18https?://vimeo\.com/groups/[^/]+/videos/(?P<ID>\d+)/?(?P<hash>(?(?<=/)[a-zA-Z0-9]+|))]]></regex>
34ee8723 19 <html><![CDATA[<div class="messageVideoContainer"><iframe src="https://player.vimeo.com/video/{$ID}?h={$hash}&amp;dnt=1" width="640" height="360" allowfullscreen referrerpolicy="strict-origin"></iframe></div>]]></html>
7d346d2a 20 </provider>
7d346d2a
MW
21 <provider name="dailymotion">
22 <title>Dailymotion</title>
23 <regex><![CDATA[https?://(?:www\.)?dailymotion\.com/video/(?P<ID>[a-zA-Z0-9_-]+)]]></regex>
aacbe7a0 24 <html><![CDATA[<div class="messageVideoContainer"><iframe src="https://www.dailymotion.com/embed/video/{$ID}" width="560" height="315"></iframe></div>]]></html>
7d346d2a 25 </provider>
7d346d2a 26 <provider name="github-gist">
e4688de2 27 <title>GitHub Gist</title>
7d346d2a
MW
28 <regex><![CDATA[https://gist.github.com/(?P<ID>[^/]+/[0-9a-zA-Z]+)]]></regex>
29 <html><![CDATA[<script src="https://gist.github.com/{$ID}.js"> </script>]]></html>
30 </provider>
7d346d2a 31 <provider name="soundcloud">
e4688de2 32 <title>SoundCloud</title>
7d346d2a
MW
33 <regex><![CDATA[https?://soundcloud.com/(?P<artist>[a-zA-Z0-9_-]+)/(?!sets/)(?P<song>[a-zA-Z0-9_-]+)]]></regex>
34 <html><![CDATA[<iframe width="100%" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fsoundcloud.com%2F{$artist}%2F{$song}"></iframe>]]></html>
35 </provider>
7d346d2a
MW
36 <provider name="soundcloud-set">
37 <title>Soundcloud Set</title>
38 <regex><![CDATA[https?://soundcloud.com/(?P<artist>[a-zA-Z0-9_-]+)/sets/(?P<name>[a-zA-Z0-9_-]+)]]></regex>
39 <html><![CDATA[<iframe width="100%" height="450" scrolling="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fsoundcloud.com%2F{$artist}%2Fsets%2F{$name}"></iframe>]]></html>
40 </provider>
fbefbe88
MW
41 <provider name="instagram">
42 <title>Instagram</title>
43 <regex><![CDATA[https?://(?:www\.)?(?:instagram\.com|instagr\.am)/p/(?<ID>[a-zA-Z0-9_-]+)]]></regex>
e92ec51d 44 <html><![CDATA[<blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/{$ID}/" data-instgrm-version="14"><a href="https://www.instagram.com/p/{$ID}/">https://www.instagram.com/p/{$ID}/</a></blockquote><script async src="https://www.instagram.com/embed.js"></script>]]></html>
fbefbe88 45 </provider>
fbefbe88
MW
46 <provider name="spotify">
47 <title>Spotify</title>
e430dcb7
I
48 <regex><![CDATA[https?://play.spotify.com/(.*/|)(?<TYPE>[a-zA-Z]+)/(?<ID>[0-9a-zA-Z]+)
49https?://open.spotify.com/(.*/|)(?<TYPE>[a-zA-Z]+)/(?<ID>[0-9a-zA-Z]+)]]></regex>
e9c362f8 50 <html><![CDATA[<iframe style="border-radius:12px;max-width:100%;" src="https://open.spotify.com/embed/{$TYPE}/{$ID}" width="400" height="152" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>]]></html>
fbefbe88 51 </provider>
8887d369
MW
52 <provider name="twitch">
53 <title>Twitch</title>
1538918f
SW
54 <regex><![CDATA[https?://clips.twitch.tv/(?<CLIP>[a-zA-Z0-9_-]+)
55https?://www.twitch.tv/(?<AUTHOR>[a-zA-Z0-9_]+)/clip/(?<CLIP>[a-zA-Z0-9_-]+)
8887d369
MW
56https?://www.twitch.tv/(?!videos)(?!.*/v/)(?<CHANNEL>[a-zA-Z0-9_]+)
57https?://www.twitch.tv/videos/(?<VIDEO>[0-9]+)
58https?://www.twitch.tv/[a-zA-Z0-9]+/v/(?<VIDEO>[0-9]+)]]></regex>
59 <className><![CDATA[wcf\system\bbcode\media\provider\TwitchBBCodeMediaProvider]]></className>
3c7e4e39 60 </provider>
996da4b9
TD
61 <provider name="twitter-tweet">
62 <title>Twitter Tweet</title>
ebacce6f
MW
63 <regex><![CDATA[https://twitter.com/(?<USERNAME>[0-9a-zA-Z_]+)/status/(?<ID>[0-9]+)
64https://x.com/(?<USERNAME>[0-9a-zA-Z_]+)/status/(?<ID>[0-9]+)]]></regex>
96a04216 65 <html><![CDATA[<div data-wsc-twitter-tweet="{$ID}"><a href="https://twitter.com/{$USERNAME}/status/{$ID}/" class="externalURL" rel="nofollow ugc">https://twitter.com/{$USERNAME}/status/{$ID}/</a></div>
3fc0490b 66<script>require(["WoltLabSuite/Core/Ui/Message/TwitterEmbed"],function(t){t.embedAll()});</script>]]></html>
996da4b9 67 </provider>
9684ba30
TD
68 <provider name="facebook-video">
69 <title>Facebook Video</title>
e833cdf9
SG
70 <regex><![CDATA[(?<HREF>https?://(www\.)?facebook\.com/watch/?\?v=(?<ID>[0-9]+))
71(?<HREF>https?://(www\.)?facebook\.com/[a-zA-Z0-9_\.-]+/videos/(?<ID>[0-9]+))
7dc40d2b 72(?<HREF>https?://fb\.watch/(?<ID>[a-zA-Z0-9_-]+)/)]]></regex>
9684ba30
TD
73 <html><![CDATA[<div class="fb-video" data-href="{$HREF}" data-allowfullscreen="true">{$HREF}</div>
74<script>require(['WoltLabSuite/Core/Wrapper/FacebookSdk'],function(FB){FB.XFBML.parse()})</script>]]></html>
75 </provider>
7d346d2a 76 </import>
3037d2f3
MW
77 <delete>
78 <provider name="spotify-playlist"/>
79 </delete>
7d346d2a 80</data>