diff --git a/record-and-playback/core/lib/recordandplayback/generators/events.rb b/record-and-playback/core/lib/recordandplayback/generators/events.rb index b3cb4dd10cd484431ea69a66b92d2e8e5b8156f9..da07f53627e0f960ad80cd9066fc7e0e0445a645 100755 --- a/record-and-playback/core/lib/recordandplayback/generators/events.rb +++ b/record-and-playback/core/lib/recordandplayback/generators/events.rb @@ -210,23 +210,48 @@ module BigBlueButton end def self.get_start_deskshare_events(events_xml) - BigBlueButton.logger.info("Task: Getting start DESKSHARE events") + BigBlueButton.logger.info("Task: Getting start DESKSHARE events") start_events = [] - doc = Nokogiri::XML(File.open(events_xml)) - doc.xpath("//event[@eventname='DeskshareStartedEvent']").each do |start_event| - s = {:start_timestamp => start_event['timestamp'].to_i, :stream => start_event.xpath('file').text.sub(/(.+)\//, "")} - start_events << s + events = Nokogiri::XML(File.open(events_xml)) + events.xpath('/recording/event[@module="Deskshare" or @module="bbb-webrtc-sfu"]').each do |start_event| + case event['eventname'] + when 'DeskshareStartedEvent' + filename = start_event.at_xpath('file').text + filename = "#{archive_dir}/deskshare/#{File.basename(filename)}" + when 'StartWebRTCDesktopShareEvent' + uri = event.at_xpath('filename').text + filename = "#{archive_dir}/deskshare/#{File.basename(uri)}" + else + next + end + + start_events << { + start_timestamp: start_event['timestamp'].to_i, + stream: filename + } end start_events.sort {|a, b| a[:start_timestamp] <=> b[:start_timestamp]} end def self.get_stop_deskshare_events(events_xml) - BigBlueButton.logger.info("Task: Getting stop DESKSHARE events") + BigBlueButton.logger.info("Task: Getting stop DESKSHARE events") stop_events = [] - doc = Nokogiri::XML(File.open(events_xml)) - doc.xpath("//event[@eventname='DeskshareStoppedEvent']").each do |stop_event| - s = {:stop_timestamp => stop_event['timestamp'].to_i, :stream => stop_event.xpath('file').text.sub(/(.+)\//, "")} - stop_events << s + events = Nokogiri::XML(File.open(events_xml)) + events.xpath('/recording/event[@module="Deskshare" or @module="bbb-webrtc-sfu"]').each do |stop_event| + when 'DeskshareStoppedEvent' + filename = start_event.at_xpath('file').text + filename = "#{archive_dir}/deskshare/#{File.basename(filename)}" + when 'StopWebRTCDesktopShareEvent' + uri = event.at_xpath('filename').text + filename = "#{archive_dir}/deskshare/#{File.basename(uri)}" + else + next + end + + stop_events << { + stop_timestamp: stop_event['timestamp'].to_i, + stream: filename + } end stop_events.sort {|a, b| a[:stop_timestamp] <=> b[:stop_timestamp]} end