bigbluebutton_rails 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.ruby-version +1 -1
- data/.travis.yml +10 -1
- data/CHANGELOG.md +259 -0
- data/Gemfile +14 -19
- data/Gemfile.lock +194 -188
- data/README.md +416 -0
- data/Rakefile +12 -12
- data/TODO.md +13 -0
- data/app/controllers/bigbluebutton/playback_types_controller.rb +44 -0
- data/app/controllers/bigbluebutton/recordings_controller.rb +17 -10
- data/app/controllers/bigbluebutton/rooms_controller.rb +65 -36
- data/app/controllers/bigbluebutton/servers_controller.rb +12 -8
- data/app/models/bigbluebutton_metadata.rb +1 -1
- data/app/models/bigbluebutton_playback_format.rb +22 -1
- data/app/models/bigbluebutton_playback_type.rb +29 -0
- data/app/models/bigbluebutton_recording.rb +38 -19
- data/app/models/bigbluebutton_room.rb +150 -73
- data/app/models/bigbluebutton_room_options.rb +10 -7
- data/app/models/bigbluebutton_server.rb +69 -13
- data/app/models/bigbluebutton_server_config.rb +49 -0
- data/app/views/bigbluebutton/recordings/_form.html.erb +4 -0
- data/app/views/bigbluebutton/recordings/_recordings.html.erb +10 -3
- data/app/views/bigbluebutton/rooms/_form.html.erb +18 -6
- data/app/views/bigbluebutton/rooms/_rooms.html.erb +6 -3
- data/app/views/bigbluebutton/rooms/invite.html.erb +5 -5
- data/app/views/bigbluebutton/rooms/show.html.erb +18 -6
- data/app/views/bigbluebutton/servers/_form.html.erb +1 -1
- data/app/views/bigbluebutton/servers/show.html.erb +5 -0
- data/app/workers/bigbluebutton_finish_meetings.rb +11 -0
- data/app/workers/bigbluebutton_update_recordings.rb +11 -0
- data/app/workers/bigbluebutton_update_server_configs.rb +18 -0
- data/bigbluebutton_rails.gemspec +8 -7
- data/config/locales/en.yml +52 -7
- data/config/locales/pt-br.yml +162 -0
- data/config/resque/resque.rake +27 -0
- data/config/resque/workers_schedule.yml +17 -0
- data/lib/bigbluebutton_rails.rb +30 -2
- data/lib/bigbluebutton_rails/background_tasks.rb +31 -0
- data/lib/bigbluebutton_rails/controller_methods.rb +12 -8
- data/lib/bigbluebutton_rails/dial_number.rb +48 -0
- data/lib/bigbluebutton_rails/rails/routes.rb +9 -2
- data/lib/bigbluebutton_rails/utils.rb +9 -2
- data/lib/bigbluebutton_rails/version.rb +1 -1
- data/lib/generators/bigbluebutton_rails/install_generator.rb +0 -8
- data/lib/generators/bigbluebutton_rails/templates/migration.rb +28 -6
- data/lib/generators/bigbluebutton_rails/templates/migration_2_0_0.rb +56 -0
- data/lib/tasks/bigbluebutton_rails/meetings.rake +1 -13
- data/lib/tasks/bigbluebutton_rails/recordings.rake +1 -12
- data/lib/tasks/bigbluebutton_rails/server_configs.rake +10 -0
- data/spec/bigbluebutton_rails_spec.rb +0 -13
- data/spec/controllers/bigbluebutton/playback_types_controller_spec.rb +76 -0
- data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +109 -37
- data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +1 -0
- data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +27 -3
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +338 -77
- data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +8 -0
- data/spec/controllers/bigbluebutton/servers_controller_spec.rb +182 -47
- data/spec/factories/bigbluebutton_meeting.rb +2 -2
- data/spec/factories/bigbluebutton_playback_format.rb +2 -2
- data/spec/factories/bigbluebutton_playback_type.rb +7 -0
- data/spec/factories/bigbluebutton_recording.rb +8 -0
- data/spec/factories/bigbluebutton_room.rb +10 -3
- data/spec/factories/bigbluebutton_server.rb +6 -1
- data/spec/factories/bigbluebutton_server_config.rb +6 -0
- data/spec/generators/install_generator_spec.rb +0 -16
- data/spec/lib/bigbluebutton_rails/background_tasks_spec.rb +61 -0
- data/spec/lib/bigbluebutton_rails/dial_number_spec.rb +78 -0
- data/spec/lib/bigbluebutton_rails/utils_spec.rb +56 -0
- data/spec/lib/tasks/meetings_rake_spec.rb +14 -1
- data/spec/lib/tasks/recordings_rake_spec.rb +14 -1
- data/spec/models/bigbluebutton_meeting_db_spec.rb +3 -3
- data/spec/models/bigbluebutton_meeting_spec.rb +4 -4
- data/spec/models/bigbluebutton_playback_format_db_spec.rb +0 -1
- data/spec/models/bigbluebutton_playback_format_spec.rb +75 -4
- data/spec/models/bigbluebutton_playback_type_db_spec.rb +14 -0
- data/spec/models/bigbluebutton_playback_type_spec.rb +76 -0
- data/spec/models/bigbluebutton_recording_db_spec.rb +3 -1
- data/spec/models/bigbluebutton_recording_spec.rb +234 -58
- data/spec/models/bigbluebutton_room_db_spec.rb +8 -6
- data/spec/models/bigbluebutton_room_options_db_spec.rb +1 -0
- data/spec/models/bigbluebutton_room_options_spec.rb +137 -38
- data/spec/models/bigbluebutton_room_spec.rb +540 -153
- data/spec/models/bigbluebutton_server_config_spec.rb +115 -0
- data/spec/models/bigbluebutton_server_spec.rb +180 -23
- data/spec/rails_app/app/controllers/my_playback_types_controller.rb +7 -0
- data/spec/rails_app/app/views/frontpage/show.html.erb +1 -0
- data/spec/rails_app/app/views/my_playback_types/index.html.erb +33 -0
- data/spec/rails_app/config/application.rb +0 -3
- data/spec/rails_app/config/database.yml.travis +10 -0
- data/spec/rails_app/config/environments/development.rb +1 -6
- data/spec/rails_app/config/environments/production.rb +2 -0
- data/spec/rails_app/config/environments/test.rb +2 -0
- data/spec/rails_app/config/routes.rb +5 -2
- data/spec/rails_app/db/seeds.rb +1 -1
- data/spec/rails_app/features/config.yml.example +3 -4
- data/spec/rails_app/features/join_rooms.feature +14 -14
- data/spec/rails_app/features/step_definitions/activity_monitor_servers_step.rb +2 -2
- data/spec/rails_app/features/step_definitions/create_rooms_steps.rb +4 -4
- data/spec/rails_app/features/step_definitions/destroy_rooms_steps.rb +2 -2
- data/spec/rails_app/features/step_definitions/join_rooms_steps.rb +10 -10
- data/spec/rails_app/features/step_definitions/web_steps.rb +2 -2
- data/spec/rails_app/features/support/configurations.rb +1 -1
- data/spec/rails_app/features/support/templates.rb +12 -12
- data/spec/rails_app/lib/tasks/db/populate.rake +19 -6
- data/spec/routing/bigbluebutton/custom_controllers_routing_spec.rb +1 -1
- data/spec/routing/bigbluebutton/recordings_only_routing_spec.rb +2 -2
- data/spec/routing/bigbluebutton/recordings_routing_spec.rb +2 -2
- data/spec/routing/bigbluebutton/rooms_only_routing_spec.rb +1 -1
- data/spec/routing/bigbluebutton/rooms_routing_spec.rb +15 -1
- data/spec/routing/bigbluebutton/servers_only_routing_spec.rb +1 -1
- data/spec/routing/bigbluebutton/servers_routing_spec.rb +1 -1
- data/spec/spec_helper.rb +23 -31
- data/spec/support/matchers/delegate_matcher.rb +8 -1
- data/spec/support/matchers/shoulda/respond_with_json_matcher.rb +2 -2
- data/spec/support/mocked_server.rb +2 -0
- data/spec/support/shared_contexts/rake.rb +23 -0
- data/spec/workers/bigbluebutton_finish_meetings_spec.rb +14 -0
- data/spec/workers/bigbluebutton_update_recordings_spec.rb +14 -0
- data/spec/workers/bigbluebutton_update_server_configs_spec.rb +47 -0
- metadata +70 -59
- data/CHANGELOG.rdoc +0 -111
- data/README.rdoc +0 -319
- data/TODO.rdoc +0 -16
- data/config/schedule.rb +0 -7
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# A resque worker to get the list of recordings from the server and update
|
|
2
|
+
# the database.
|
|
3
|
+
# Same as "rake bigbluebutton_rails:recordings:update".
|
|
4
|
+
class BigbluebuttonUpdateRecordings
|
|
5
|
+
@queue = :bigbluebutton_rails
|
|
6
|
+
|
|
7
|
+
def self.perform
|
|
8
|
+
Rails.logger.info "BigbluebuttonUpdateRecordings worker running"
|
|
9
|
+
BigbluebuttonRails::BackgroundTasks.update_recordings
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# A resque worker to get the server configs from time to time (information such
|
|
2
|
+
# as available layouts are updated).
|
|
3
|
+
class BigbluebuttonUpdateServerConfigs
|
|
4
|
+
@queue = :bigbluebutton_rails
|
|
5
|
+
|
|
6
|
+
def self.perform
|
|
7
|
+
Rails.logger.info "BigbluebuttonUpdateServerConfigs worker running"
|
|
8
|
+
BigbluebuttonServer.find_each do |server|
|
|
9
|
+
Rails.logger.info "BigbluebuttonUpdateServerConfigs updating configs for #{server.inspect}"
|
|
10
|
+
|
|
11
|
+
# update configs
|
|
12
|
+
server.update_config
|
|
13
|
+
|
|
14
|
+
# update API version
|
|
15
|
+
server.update_attributes(version: server.set_api_version_from_server)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
data/bigbluebutton_rails.gemspec
CHANGED
|
@@ -8,17 +8,18 @@ Gem::Specification.new do |s|
|
|
|
8
8
|
s.summary = "BigBlueButton integration for Ruby on Rails"
|
|
9
9
|
s.email = "mconf-dev@googlegroups.com"
|
|
10
10
|
s.homepage = "http://github.com/mconf/bigbluebutton_rails"
|
|
11
|
-
s.description = "
|
|
12
|
-
s.authors = [
|
|
13
|
-
s.
|
|
11
|
+
s.description = "Allows access and use of BigBlueButton from a Ruby on Rails application"
|
|
12
|
+
s.authors = ["Mconf", "Leonardo Crauss Daronco"]
|
|
13
|
+
s.email = ["contact@mconf.org", "leonardodaronco@gmail.com"]
|
|
14
|
+
s.license = "MIT"
|
|
14
15
|
|
|
15
16
|
s.files = `git ls-files`.split("\n")
|
|
16
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
17
18
|
s.require_paths = ["lib"]
|
|
18
19
|
|
|
19
|
-
s.add_dependency("rails", ">=
|
|
20
|
-
s.add_dependency("bigbluebutton-api-ruby", "~> 1.
|
|
21
|
-
s.add_dependency("strong_parameters", "~> 0.2.0")
|
|
20
|
+
s.add_dependency("rails", ">= 4.0.0")
|
|
21
|
+
s.add_dependency("bigbluebutton-api-ruby", "~> 1.4.0")
|
|
22
22
|
s.add_dependency("resque", "~> 1.25.1")
|
|
23
|
-
s.add_dependency("
|
|
23
|
+
s.add_dependency("resque-scheduler", "~> 3.0")
|
|
24
|
+
s.add_dependency("browser", "~> 0.8.0")
|
|
24
25
|
end
|
data/config/locales/en.yml
CHANGED
|
@@ -10,6 +10,10 @@ en:
|
|
|
10
10
|
format_type: Type
|
|
11
11
|
length: Length
|
|
12
12
|
url: URL
|
|
13
|
+
bigbluebutton_playback_type:
|
|
14
|
+
default: Default
|
|
15
|
+
name: Name
|
|
16
|
+
visible: Visible
|
|
13
17
|
bigbluebutton_recording:
|
|
14
18
|
description: "Description"
|
|
15
19
|
end_time: "End Time"
|
|
@@ -20,9 +24,17 @@ en:
|
|
|
20
24
|
recordid: "Record ID"
|
|
21
25
|
room_id: "Room ID"
|
|
22
26
|
server_id: "Server ID"
|
|
27
|
+
size: "Size"
|
|
23
28
|
start_time: "Start Time"
|
|
24
29
|
bigbluebutton_room:
|
|
25
|
-
|
|
30
|
+
allow_start_stop_recording: "Allow users to start/stop recording"
|
|
31
|
+
attendee_api_password: "Internal API key for attendees"
|
|
32
|
+
attendee_key: "Key for attendees"
|
|
33
|
+
auto_start_video: "Auto start video"
|
|
34
|
+
auto_start_audio: "Auto start audio"
|
|
35
|
+
auto_start_recording: "Auto start recording"
|
|
36
|
+
background: "Background image"
|
|
37
|
+
default_layout: "Default Layout"
|
|
26
38
|
dial_number: "Dial Number"
|
|
27
39
|
duration: Duration
|
|
28
40
|
external: "Externally Created"
|
|
@@ -30,10 +42,13 @@ en:
|
|
|
30
42
|
max_participants: "Maximum Number of Participants"
|
|
31
43
|
meetingid: "Meeting ID"
|
|
32
44
|
metadata: Metadata
|
|
33
|
-
|
|
45
|
+
moderator_api_password: "Internal API key for moderators"
|
|
46
|
+
moderator_key: "Key for moderators"
|
|
47
|
+
moderator_only_message: "Message to be shown to moderators only"
|
|
34
48
|
name: Name
|
|
35
49
|
param: "String ID"
|
|
36
50
|
private: Private
|
|
51
|
+
presenter_share_only: "Only presenter shares audio and video"
|
|
37
52
|
record: Record
|
|
38
53
|
server_id: "Server ID"
|
|
39
54
|
voice_bridge: "Voice Bridge"
|
|
@@ -44,17 +59,33 @@ en:
|
|
|
44
59
|
salt: "Security Salt"
|
|
45
60
|
url: URL
|
|
46
61
|
version: Version
|
|
62
|
+
bigbluebutton_server_config:
|
|
63
|
+
available_layouts: "Available layouts"
|
|
47
64
|
models:
|
|
48
|
-
bigbluebutton_metadata: "
|
|
49
|
-
bigbluebutton_playback_format: "
|
|
50
|
-
bigbluebutton_recording: "
|
|
51
|
-
bigbluebutton_room: "
|
|
52
|
-
bigbluebutton_server: "
|
|
65
|
+
bigbluebutton_metadata: "Web Conference Recording Metadata"
|
|
66
|
+
bigbluebutton_playback_format: "Web Conference Recording Playback Format"
|
|
67
|
+
bigbluebutton_recording: "Web Conference Recording"
|
|
68
|
+
bigbluebutton_room: "Web Conference Room"
|
|
69
|
+
bigbluebutton_server: "Web Conference Server"
|
|
70
|
+
bigbluebutton_server_config: "Web Conference Server Configurations"
|
|
53
71
|
bigbluebutton_rails:
|
|
54
72
|
bigbluebutton: BigBlueButton
|
|
55
73
|
metadata:
|
|
56
74
|
errors:
|
|
57
75
|
name_format: "can only use letters, numbers and the symbols \"-\" or \"_\", but only letters at the beginning"
|
|
76
|
+
playback_types:
|
|
77
|
+
notice:
|
|
78
|
+
update:
|
|
79
|
+
success: "The playback type was successfully updated."
|
|
80
|
+
presentation:
|
|
81
|
+
name: "Play"
|
|
82
|
+
tip: "Plays the recording in an HTML5 page. The recording is not downloaded to your computer and will require Internet to be reproduced."
|
|
83
|
+
presentation_export:
|
|
84
|
+
name: "Download HTML"
|
|
85
|
+
tip: "Downloads an HTML page that you can use to reproduce the recording offline using your browser. Has all the features of the HTML player online plus the advantage of also working offline. Currently can only be reproduced using the Firefox browser."
|
|
86
|
+
presentation_video:
|
|
87
|
+
name: "Download"
|
|
88
|
+
tip: "Downloads a vídeo file (uses the WebM format) with the recording. You can use this video file to watch the recording offline and to share this recording in other websites."
|
|
58
89
|
recordings:
|
|
59
90
|
default:
|
|
60
91
|
description: "Meeting held on %{time} (UTC)"
|
|
@@ -74,6 +105,8 @@ en:
|
|
|
74
105
|
update:
|
|
75
106
|
success: "Your recording was successfully updated."
|
|
76
107
|
rooms:
|
|
108
|
+
default_welcome_msg: "Welcome to <b>%%CONFNAME%%</b>!<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br>"
|
|
109
|
+
default_welcome_msg_dial_number: "Welcome to <b>%%CONFNAME%%</b>!<br><br>To join the audio bridge click the headset icon (upper-left hand corner). Use a headset to avoid causing background noise for others.<br>You can call into this conference with a regular phone using the number \"%%DIALNUM%%\".<br>"
|
|
77
110
|
errors:
|
|
78
111
|
fetch_recordings:
|
|
79
112
|
no_server: "There's no server associated with this room."
|
|
@@ -82,6 +115,8 @@ en:
|
|
|
82
115
|
failure: "Authentication failure."
|
|
83
116
|
not_running: "The meeting is not running. You must wait for a moderator to join."
|
|
84
117
|
wrong_params: "Wrong params in your request."
|
|
118
|
+
generate_dial_number:
|
|
119
|
+
not_unique: "We're sorry, but it wasn't possible to generate a unique dial number for this room. You can either try again or manually set a dial number."
|
|
85
120
|
param_format: "can only use letters, numbers and the symbols \"-\" or \"_\" (not at the begin or end)"
|
|
86
121
|
server:
|
|
87
122
|
nil: "Your room must be associated to a server to execute this operation."
|
|
@@ -97,6 +132,8 @@ en:
|
|
|
97
132
|
success: "The meeting was successfully ended."
|
|
98
133
|
fetch_recordings:
|
|
99
134
|
success: "The list of recordings for this room was successfully updated."
|
|
135
|
+
generate_dial_number:
|
|
136
|
+
success: "A unique dial number was generated and saved."
|
|
100
137
|
update:
|
|
101
138
|
failure: "Your room could not be updated."
|
|
102
139
|
success: "Your room was successfully updated."
|
|
@@ -115,3 +152,11 @@ en:
|
|
|
115
152
|
success: "Your recordings were successfully unpublished."
|
|
116
153
|
update:
|
|
117
154
|
success: "Your server was successfully updated."
|
|
155
|
+
server_configs:
|
|
156
|
+
layouts:
|
|
157
|
+
defaultlayout: "Default Layout"
|
|
158
|
+
lecture: "Lecture"
|
|
159
|
+
lectureassistant: "Lecture Assistant"
|
|
160
|
+
presentfocus: "Webinar"
|
|
161
|
+
videochat: "Video Chat"
|
|
162
|
+
webcamsfocus: "Meeting"
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
---
|
|
2
|
+
pt-br:
|
|
3
|
+
activerecord:
|
|
4
|
+
attributes:
|
|
5
|
+
bigbluebutton_metadata:
|
|
6
|
+
content: Conteúdo
|
|
7
|
+
name: Nome
|
|
8
|
+
owner: Dono
|
|
9
|
+
bigbluebutton_playback_format:
|
|
10
|
+
format_type: Tipo
|
|
11
|
+
length: Tamanho
|
|
12
|
+
url: URL
|
|
13
|
+
bigbluebutton_playback_type:
|
|
14
|
+
default: "Padrão"
|
|
15
|
+
name: Nome
|
|
16
|
+
visible: "Visível"
|
|
17
|
+
bigbluebutton_recording:
|
|
18
|
+
description: "Descrição"
|
|
19
|
+
end_time: "Horário de Fim"
|
|
20
|
+
meetingid: "ID da Reunião"
|
|
21
|
+
metadata: Metadados
|
|
22
|
+
name: Nome
|
|
23
|
+
published: Publicada
|
|
24
|
+
recordid: "ID da Gravação"
|
|
25
|
+
room_id: "ID da Sala"
|
|
26
|
+
size: "Tamanho"
|
|
27
|
+
server_id: "ID do Servidor"
|
|
28
|
+
start_time: "Horário de Início"
|
|
29
|
+
bigbluebutton_room:
|
|
30
|
+
allow_start_stop_recording: "Permitir ao usuário iniciar/parar a gravação"
|
|
31
|
+
attendee_api_password: "Chave interna da API para participantes"
|
|
32
|
+
attendee_key: "Chave para participantes"
|
|
33
|
+
auto_start_video: "Auto iniciar vídeo"
|
|
34
|
+
auto_start_audio: "Auto iniciar áudio"
|
|
35
|
+
auto_start_recording: "Auto iniciar gravação"
|
|
36
|
+
background: "Imagem de fundo"
|
|
37
|
+
default_layout: "Layout Padrão"
|
|
38
|
+
dial_number: "Número de discagem"
|
|
39
|
+
duration: Duração
|
|
40
|
+
external: "Criada externamente"
|
|
41
|
+
logout_url: "URL de saída"
|
|
42
|
+
max_participants: "Número Máximo de Participantes"
|
|
43
|
+
meetingid: "ID da Reunião"
|
|
44
|
+
metadata: Metadados
|
|
45
|
+
moderator_api_password: "Chave interna da API para moderadores"
|
|
46
|
+
moderator_key: "Chave para moderadores"
|
|
47
|
+
moderator_only_message: "Mensagem mostrada somente aos moderadores"
|
|
48
|
+
name: Nome
|
|
49
|
+
param: Identificador
|
|
50
|
+
private: Privada
|
|
51
|
+
presenter_share_only: "Somente apresentador compartilha áudio e vídeo"
|
|
52
|
+
record: Gravar
|
|
53
|
+
server_id: "ID do Servidor"
|
|
54
|
+
voice_bridge: "Voice Bridge"
|
|
55
|
+
welcome_msg: "Mensagem de boas-vindas"
|
|
56
|
+
bigbluebutton_server:
|
|
57
|
+
name: Nome
|
|
58
|
+
param: Identificador
|
|
59
|
+
salt: "Chave de segurança"
|
|
60
|
+
url: URL
|
|
61
|
+
version: Versão
|
|
62
|
+
bigbluebutton_server_config:
|
|
63
|
+
available_layouts: "Layouts disponíveis"
|
|
64
|
+
models:
|
|
65
|
+
bigbluebutton_metadata: "Metadado de Gravação da Webconferência"
|
|
66
|
+
bigbluebutton_playback_format: "Formato de Reprodução de Webconferência"
|
|
67
|
+
bigbluebutton_recording: "Gravação de Webconferência"
|
|
68
|
+
bigbluebutton_room: "Sala de Webconferência"
|
|
69
|
+
bigbluebutton_server: "Servidor de Webconferência"
|
|
70
|
+
bigbluebutton_server_config: "Configurações do Servidor de Webconferência"
|
|
71
|
+
bigbluebutton_rails:
|
|
72
|
+
bigbluebutton: BigBlueButton
|
|
73
|
+
metadata:
|
|
74
|
+
errors:
|
|
75
|
+
name_format: "pode utilizar apenas letras, números e os símbolos \"-\" ou \"_\", mas apenas letras no início"
|
|
76
|
+
playback_types:
|
|
77
|
+
notice:
|
|
78
|
+
update:
|
|
79
|
+
success: "Formato de reprodução atualizado com sucesso."
|
|
80
|
+
presentation:
|
|
81
|
+
name: "Reproduzir"
|
|
82
|
+
tip: "Reproduz a gravação em uma página HTML5. Não é feito download da gravação para o seu computador, portanto exige internet para a gravação ser reproduzida."
|
|
83
|
+
presentation_export:
|
|
84
|
+
name: "Download HTML"
|
|
85
|
+
tip: "Faz o download de uma página HTML que você pode usar para reproduzir a gravação usando o seu navegador mesmo sem conexão com a internet. Tem todas as características da versão online, mas com a vantagem de não exigir internet. Atualmente só pode ser reproduzida usando o navegador Firefox."
|
|
86
|
+
presentation_video:
|
|
87
|
+
name: "Download"
|
|
88
|
+
tip: "Realiza o download da gravação em um arquivo de vídeo (no formato WebM). Você pode usar esse arquivo de vídeo para assistir a gravação offline e/ou compartilhar esta gravação em outros sites."
|
|
89
|
+
recordings:
|
|
90
|
+
default:
|
|
91
|
+
description: "Reunião realizada em %{time} (UTC)"
|
|
92
|
+
errors:
|
|
93
|
+
check_for_server:
|
|
94
|
+
no_server: "Não há um servidor associado a esta gravação"
|
|
95
|
+
play:
|
|
96
|
+
no_format: "Não há URL de playback para esta gravação"
|
|
97
|
+
notice:
|
|
98
|
+
destroy:
|
|
99
|
+
success: "Sua gravação foi destruída com sucesso."
|
|
100
|
+
success_with_bbb_error: "A gravação foi destruída com sucesso mas não foi removida do servidor de webconferência (\"%{error}\")"
|
|
101
|
+
publish:
|
|
102
|
+
success: "Sua gravação foi publicada com sucesso."
|
|
103
|
+
unpublish:
|
|
104
|
+
success: "Sua gravação foi ocultada com sucesso."
|
|
105
|
+
update:
|
|
106
|
+
success: "Sua gravação foi atualizada com sucesso."
|
|
107
|
+
rooms:
|
|
108
|
+
default_welcome_msg: "Bem-vindo(a) a <b>%%CONFNAME%%</b>!<br><br>Para compartilhar o seu microfone, clique no botão com um headset (à esquerda da barra superior). Use um headset para ter uma melhor experiência de áudio com menos ruídos.<br>"
|
|
109
|
+
default_welcome_msg_dial_number: "Bem-vindo(a) a <b>%%CONFNAME%%</b>!<br><br>Para compartilhar o seu microfone, clique no botão com um headset (à esquerda da barra superior). Use um headset para ter uma melhor experiência de áudio com menos ruídos.<br>Você pode discar para esta conferência através de um telefone usando o número \"%%DIALNUM%%\".<br>"
|
|
110
|
+
errors:
|
|
111
|
+
fetch_recordings:
|
|
112
|
+
no_server: "Não há nenhum servidor associado a esta sala."
|
|
113
|
+
join:
|
|
114
|
+
cannot_create: "Você não tem permissões para iniciar esta reunião."
|
|
115
|
+
failure: "Falha de autenticação."
|
|
116
|
+
not_running: "A reunião não está em andamento. Você deve aguardar por um moderador para ingressar."
|
|
117
|
+
wrong_params: "Parâmetros errados na sua requisição."
|
|
118
|
+
generate_dial_number:
|
|
119
|
+
not_unique: "Desculpe, mas não foi possível gerar um número de discagem único. Você pode tentar novamente ou então atribuir um número manualmente."
|
|
120
|
+
param_format: "você pode usar apenas letras, números e os símbolos \"-\" ou \"_\" (não no começo ou fim)"
|
|
121
|
+
server:
|
|
122
|
+
nil: "Sua sala deve ser associada a um servidor para executar esta operação."
|
|
123
|
+
notice:
|
|
124
|
+
create:
|
|
125
|
+
failure: "Sua sala não pôde ser criada."
|
|
126
|
+
success: "Sua sala foi criada com sucesso."
|
|
127
|
+
destroy:
|
|
128
|
+
success: "A reunião foi destruída com sucesso."
|
|
129
|
+
success_with_bbb_error: "A sala foi destruída com sucesso mas a reunião não foi finalizada no servidor de webconferência (\"%{error}\")"
|
|
130
|
+
end:
|
|
131
|
+
not_running: "A reunião não pôde ser finalizada pois não está em andamento."
|
|
132
|
+
success: "A reunião foi finalizada com sucesso."
|
|
133
|
+
fetch_recordings:
|
|
134
|
+
success: "A lista de gravações para esta sala foi atualizada com sucesso."
|
|
135
|
+
generate_dial_number:
|
|
136
|
+
success: "Um número de discagem único foi gerado e gravado."
|
|
137
|
+
update:
|
|
138
|
+
failure: "Sua sala não pode ser atualizada."
|
|
139
|
+
success: "Sua sala foi atualizada com sucesso."
|
|
140
|
+
servers:
|
|
141
|
+
errors:
|
|
142
|
+
param_format: "você pode usar apenas letras, números e os símbolos \"-\" ou \"_\" (não no começo ou fim)"
|
|
143
|
+
url_format: "deve utilizar o padrão http://<servidor>/bigbluebutton/api"
|
|
144
|
+
notice:
|
|
145
|
+
create:
|
|
146
|
+
success: "Seu servidor foi criado com sucesso."
|
|
147
|
+
fetch_recordings:
|
|
148
|
+
success: "A lista de gravações foi atualizada com sucesso."
|
|
149
|
+
publish_recordings:
|
|
150
|
+
success: "Suas gravações foram publicadas com sucesso."
|
|
151
|
+
unpublish_recordings:
|
|
152
|
+
success: "Suas gravações foram ocultadas com sucesso."
|
|
153
|
+
update:
|
|
154
|
+
success: "Seu servidor foi atualizado."
|
|
155
|
+
server_configs:
|
|
156
|
+
layouts:
|
|
157
|
+
defaultlayout: "Layout Padrão"
|
|
158
|
+
lecture: "Aula"
|
|
159
|
+
lectureassistant: "Assistente de aula"
|
|
160
|
+
presentfocus: "Webinar"
|
|
161
|
+
videochat: "Vídeo Chat"
|
|
162
|
+
webcamsfocus: "Reunião"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Resque tasks
|
|
2
|
+
require 'resque/tasks'
|
|
3
|
+
require 'resque/scheduler/tasks'
|
|
4
|
+
|
|
5
|
+
task "resque:setup" => :environment
|
|
6
|
+
|
|
7
|
+
namespace :resque do
|
|
8
|
+
task :setup do
|
|
9
|
+
require 'resque'
|
|
10
|
+
require 'resque-scheduler'
|
|
11
|
+
|
|
12
|
+
# you probably already have this somewhere
|
|
13
|
+
Resque.redis = 'localhost:6379'
|
|
14
|
+
|
|
15
|
+
# If you want to be able to dynamically change the schedule,
|
|
16
|
+
# uncomment this line. A dynamic schedule can be updated via the
|
|
17
|
+
# Resque::Scheduler.set_schedule (and remove_schedule) methods.
|
|
18
|
+
# When dynamic is set to true, the scheduler process looks for
|
|
19
|
+
# schedule changes and applies them on the fly.
|
|
20
|
+
# Note: This feature is only available in >=2.0.0.
|
|
21
|
+
# Resque::Scheduler.dynamic = true
|
|
22
|
+
|
|
23
|
+
# The schedule doesn't need to be stored in a YAML, it just needs to
|
|
24
|
+
# be a hash. YAML is usually the easiest.
|
|
25
|
+
Resque.schedule = YAML.load_file('config/workers_schedule.yml')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
finish_meetings:
|
|
2
|
+
every:
|
|
3
|
+
- "5m"
|
|
4
|
+
class: BigbluebuttonFinishMeetings
|
|
5
|
+
description: "Checks for meetings that finished and mark as finished. Same as 'rake bigbluebutton_rails:meetings:finish'."
|
|
6
|
+
|
|
7
|
+
update_recordings:
|
|
8
|
+
every:
|
|
9
|
+
- "30m"
|
|
10
|
+
class: BigbluebuttonUpdateRecordings
|
|
11
|
+
description: "Gets the recordings in the server to populate the db. Same as 'rake bigbluebutton_rails:recordings:update'."
|
|
12
|
+
|
|
13
|
+
update_server_configs:
|
|
14
|
+
every:
|
|
15
|
+
- "1h"
|
|
16
|
+
class: BigbluebuttonUpdateServerConfigs
|
|
17
|
+
description: "Updates the server configs that are stored locally. Same as 'rake bigbluebutton_rails:server_configs:update'."
|
data/lib/bigbluebutton_rails.rb
CHANGED
|
@@ -3,19 +3,25 @@ require 'rails'
|
|
|
3
3
|
require 'classes/bigbluebutton_attendee'
|
|
4
4
|
|
|
5
5
|
module BigbluebuttonRails
|
|
6
|
+
require 'browser'
|
|
7
|
+
require 'resque'
|
|
8
|
+
require 'resque-scheduler'
|
|
6
9
|
require 'bigbluebutton_rails/rails'
|
|
7
10
|
require 'bigbluebutton_rails/utils'
|
|
8
11
|
require 'bigbluebutton_rails/controller_methods'
|
|
9
12
|
require 'bigbluebutton_rails/internal_controller_methods'
|
|
13
|
+
require 'bigbluebutton_rails/background_tasks'
|
|
10
14
|
require 'bigbluebutton_rails/rails/routes'
|
|
11
15
|
require 'bigbluebutton_rails/exceptions'
|
|
16
|
+
require 'bigbluebutton_rails/dial_number'
|
|
12
17
|
|
|
13
18
|
# Default controllers to generate the routes
|
|
14
19
|
mattr_accessor :controllers
|
|
15
20
|
@@controllers = {
|
|
16
21
|
:servers => 'bigbluebutton/servers',
|
|
17
22
|
:rooms => 'bigbluebutton/rooms',
|
|
18
|
-
:recordings => 'bigbluebutton/recordings'
|
|
23
|
+
:recordings => 'bigbluebutton/recordings',
|
|
24
|
+
:playback_types => 'bigbluebutton/playback_types'
|
|
19
25
|
}
|
|
20
26
|
|
|
21
27
|
# Default scope for routes
|
|
@@ -51,6 +57,12 @@ module BigbluebuttonRails
|
|
|
51
57
|
@@metadata_user_id,
|
|
52
58
|
@@metadata_user_name ]
|
|
53
59
|
|
|
60
|
+
# Name of the metadata parameter that will contain the room's invitation
|
|
61
|
+
# URL, in case `invitation_url_method` is implemented by the application.
|
|
62
|
+
# Has to be a symbol!
|
|
63
|
+
mattr_accessor :metadata_invitation_url
|
|
64
|
+
@@metadata_invitation_url = :'invitation-url'
|
|
65
|
+
|
|
54
66
|
# Name of the attribute of a user that defines his name/username.
|
|
55
67
|
# Has to be a symbol!
|
|
56
68
|
mattr_accessor :user_attr_name
|
|
@@ -61,6 +73,22 @@ module BigbluebuttonRails
|
|
|
61
73
|
mattr_accessor :user_attr_id
|
|
62
74
|
@@user_attr_id = :'id'
|
|
63
75
|
|
|
76
|
+
# Name of the method that returns the invitation URL of a room.
|
|
77
|
+
# Must be implemented by the application, there's no default implemented in this gem.
|
|
78
|
+
# Has to be a symbol!
|
|
79
|
+
mattr_accessor :invitation_url_method
|
|
80
|
+
@@invitation_url_method = :'invitation_url'
|
|
81
|
+
|
|
82
|
+
# Whether or not the gem should pass the voice bridges set in the rooms when making
|
|
83
|
+
# API calls. By default it is false, meaning that the voice bridge will never be
|
|
84
|
+
# passed, so it will be generated by the web conference server. Setting it to true
|
|
85
|
+
# will make the voice bridge set locally in the room to be used in the web conference
|
|
86
|
+
# server. Notice that the voice bridge has to be unique in a web conference server, so
|
|
87
|
+
# if you are setting the voice bridges manually, you will also have to make sure that
|
|
88
|
+
# the voice bridges are unique (there's nothing in the gem to guarantee this uniqueness).
|
|
89
|
+
mattr_accessor :use_local_voice_bridges
|
|
90
|
+
@@use_local_voice_bridges = false
|
|
91
|
+
|
|
64
92
|
# Finds the BigbluebuttonRoom associated with the recording data in 'data', if any.
|
|
65
93
|
# TODO: if not found, remove the association or keep the old one?
|
|
66
94
|
def self.match_room_recording(data)
|
|
@@ -73,7 +101,7 @@ module BigbluebuttonRails
|
|
|
73
101
|
|
|
74
102
|
def self.set_controllers(options)
|
|
75
103
|
unless options.nil?
|
|
76
|
-
@@controllers.merge!(options).slice!(:servers, :rooms, :recordings)
|
|
104
|
+
@@controllers.merge!(options).slice!(:servers, :rooms, :recordings, :playback_types)
|
|
77
105
|
end
|
|
78
106
|
end
|
|
79
107
|
|