diff --git a/app/models/communication/block/template/video.rb b/app/models/communication/block/template/video.rb index c69e4f07cdac33db3f95ec17036f7f2887e7e293..014131799210129ec6415ff162d761b6407c8775 100644 --- a/app/models/communication/block/template/video.rb +++ b/app/models/communication/block/template/video.rb @@ -24,6 +24,10 @@ class Communication::Block::Template::Video < Communication::Block::Template::Ba video_provider.embed end + def video_embed_with_defaults + video_provider.embed_with_defaults + end + protected def video_provider diff --git a/app/services/video/provider/dailymotion.rb b/app/services/video/provider/dailymotion.rb index aad0e19ded57b460c36159451641926c4b2ce999..b88d1adcdab42553e66a9d1dff2dd2be519874b4 100644 --- a/app/services/video/provider/dailymotion.rb +++ b/app/services/video/provider/dailymotion.rb @@ -1,6 +1,7 @@ class Video::Provider::Dailymotion < Video::Provider::Default DOMAINS = [ 'dailymotion.com', + 'www.dailymotion.com', 'dai.ly' ] diff --git a/app/services/video/provider/default.rb b/app/services/video/provider/default.rb index 2f28753fe802656eb525063caf8b1263f1a59c27..b36fc12ddfba8f27aa332fff04d718cc1b0d1fe4 100644 --- a/app/services/video/provider/default.rb +++ b/app/services/video/provider/default.rb @@ -37,6 +37,10 @@ class Video::Provider::Default iframe_url end + def embed_with_defaults + embed + end + def iframe_tag(**iframe_options) content_tag(:iframe, nil, default_iframe_options.merge(iframe_options)) end diff --git a/app/services/video/provider/peertube.rb b/app/services/video/provider/peertube.rb index c170f54b2db6c0015ee1196408ee60990ac93538..3c43e1c23db03a1b59a9faaf4e3acf81c61ac985 100644 --- a/app/services/video/provider/peertube.rb +++ b/app/services/video/provider/peertube.rb @@ -7,13 +7,9 @@ class Video::Provider::Peertube < Video::Provider::Default video_url.split('/w/').last end - def host - video_url.split('/w/').first - end - # https://docs.joinpeertube.org/support/doc/api/embeds#quick-start def iframe_url - "#{host}/videos/embed/#{identifier}" + "#{instance}/videos/embed/#{identifier}" end def correct? @@ -22,6 +18,10 @@ class Video::Provider::Peertube < Video::Provider::Default protected + def instance + video_url.split('/w/').first + end + def url_looks_like_peertube? "/w/".in?(video_url) || "/videos/watch/".in?(video_url) end diff --git a/app/services/video/provider/youtube.rb b/app/services/video/provider/youtube.rb index b4e4e1a66a456cf1f9d3c6e4d826ffcd129306cd..150978da272dcb1225179779a98f6304e4d391e1 100644 --- a/app/services/video/provider/youtube.rb +++ b/app/services/video/provider/youtube.rb @@ -24,4 +24,9 @@ class Video::Provider::Youtube < Video::Provider::Default def iframe_url "https://www.youtube.com/embed/#{identifier}" end + + # L'autoplay est à 1 uniquement parce que l'iframe n'est pas chargée + def embed_with_defaults + "#{iframe}?autoplay=1" + end end diff --git a/app/views/admin/communication/blocks/templates/video/_static.html.erb b/app/views/admin/communication/blocks/templates/video/_static.html.erb index e0a5e480b84ab0f15456e8c7ca27cc386736b4c4..e915bf01ceb33f4d9f8ecaab5b9dacbf7e54341e 100644 --- a/app/views/admin/communication/blocks/templates/video/_static.html.erb +++ b/app/views/admin/communication/blocks/templates/video/_static.html.erb @@ -10,6 +10,8 @@ <%= block.template.video_poster %> embed: >- <%= block.template.video_embed %> + embed_with_defaults: >- + <%= block.template.video_embed_with_defaults %> iframe: >- <%= block.template.video_iframe %> <% end %>