From 34dc6a41d9c1954afa23b2c76ba1d583dc0b1390 Mon Sep 17 00:00:00 2001 From: "James A. Anderson & Jalil Mohammed" Date: Sat, 29 Jun 2013 10:43:35 -0700 Subject: [PATCH 1/2] Add flash video onebox support http://meta.discourse.org/t/will-there-be-flash-videos-in-the-future/7787 --- lib/oneboxer/flash_video_onebox.rb | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 lib/oneboxer/flash_video_onebox.rb diff --git a/lib/oneboxer/flash_video_onebox.rb b/lib/oneboxer/flash_video_onebox.rb new file mode 100644 index 000000000..18c5c26d9 --- /dev/null +++ b/lib/oneboxer/flash_video_onebox.rb @@ -0,0 +1,13 @@ +require_dependency 'oneboxer/base_onebox' + +module Oneboxer + class FlashVideoOnebox < BaseOnebox + + matcher /^https?:\/\/.*\.(swf|flv)$/ + + def onebox + "" + end + + end +end From d51a3cf50f4f0ccc6d617c592732817361dee70c Mon Sep 17 00:00:00 2001 From: "James A. Anderson & Jalil Mohammed" Date: Sat, 6 Jul 2013 10:42:30 -0700 Subject: [PATCH 2/2] Add flash video onebox as disabled setting by default --- app/models/site_setting.rb | 2 ++ config/locales/server.en.yml | 2 ++ lib/oneboxer/flash_video_onebox.rb | 6 +++- .../oneboxer/flash_video_onebox_spec.rb | 33 +++++++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 spec/components/oneboxer/flash_video_onebox_spec.rb diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb index ef2badb44..48ada1966 100644 --- a/app/models/site_setting.rb +++ b/app/models/site_setting.rb @@ -169,6 +169,8 @@ class SiteSetting < ActiveRecord::Base setting(:s3_region, '', enum: 'S3RegionSiteSetting') setting(:s3_upload_bucket, '') + setting(:enable_flash_video_onebox, false) + setting(:default_trust_level, 0) setting(:default_invitee_trust_level, 1) diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 330584bfa..0ce8b508e 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -566,6 +566,8 @@ en: s3_secret_access_key: "The Amazon S3 secret access key that will be used to upload images" s3_region: "The Amazon S3 region name that will be used to upload images" + enable_flash_video_onebox: "Enable embedding of swf and flv links in oneboxes (may introduce a security risk, caution advised)" + default_invitee_trust_level: "Default trust level (0-4) for invited users" default_trust_level: "Default trust level (0-4) for users" diff --git a/lib/oneboxer/flash_video_onebox.rb b/lib/oneboxer/flash_video_onebox.rb index 18c5c26d9..96555b1d7 100644 --- a/lib/oneboxer/flash_video_onebox.rb +++ b/lib/oneboxer/flash_video_onebox.rb @@ -6,7 +6,11 @@ module Oneboxer matcher /^https?:\/\/.*\.(swf|flv)$/ def onebox - "" + if SiteSetting.enable_flash_video_onebox + "" + else + "#{@url}" + end end end diff --git a/spec/components/oneboxer/flash_video_onebox_spec.rb b/spec/components/oneboxer/flash_video_onebox_spec.rb new file mode 100644 index 000000000..4bedd7409 --- /dev/null +++ b/spec/components/oneboxer/flash_video_onebox_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' +require 'oneboxer' +require 'oneboxer/flash_video_onebox' + +describe Oneboxer::FlashVideoOnebox do + before do + @o = Oneboxer::FlashVideoOnebox.new('http://player.56.com/v_OTMyNTk1MzE.swf') + end + + context "when SiteSetting.enable_flash_video_onebox is true" do + before do + SiteSetting.stubs(:enable_flash_video_onebox).returns(true) + end + + it "generates a flash video" do + expect(@o.onebox).to match_html( + "" + ) + end + end + + context "when SiteSetting.enable_flash_video_onebox is false" do + before do + SiteSetting.stubs(:enable_flash_video_onebox).returns(false) + end + + it "generates a link" do + expect(@o.onebox).to match_html( + "http://player.56.com/v_OTMyNTk1MzE.swf" + ) + end + end +end