class VlcProxy::Connection
When HTTP enabled on VLC, a LUA web server runs in background listening
on the specific port on localhost by default. VLC requires setting a password for basic auth as well
Public Class Methods
new(hostname, password, port = 8080, scheme = 'http')
click to toggle source
# File lib/vlc_proxy/connection.rb, line 9 def initialize(hostname, password, port = 8080, scheme = 'http') @hostname = hostname @password = password @port = port @scheme = scheme @logger = VlcProxy.config.logger end
Public Instance Methods
connected?()
click to toggle source
Test if the connection works with the connection parameters
Returns true if VLC is running and returns a response on /status Returns false if there are any connection errors
# File lib/vlc_proxy/connection.rb, line 20 def connected? response = execute('status') valid_response?(response) rescue VlcProxy::AccessDeniedError, Errno::ECONNREFUSED => e @logger.error(e.message) false end
execute(action, command = '', parameters = {})
click to toggle source
# File lib/vlc_proxy/connection.rb, line 28 def execute(action, command = '', parameters = {}) uri = build_uri(action, command, parameters) request = Net::HTTP::Get.new(uri) request.basic_auth('', @password) Net::HTTP.start(uri.hostname, uri.port) do |http| @logger.debug('Starting HTTP request') http.request(request) end end
Private Instance Methods
build_uri(action, command = '', parameters = {})
click to toggle source
# File lib/vlc_proxy/connection.rb, line 57 def build_uri(action, command = '', parameters = {}) base_url = "#{@scheme}://#{@hostname}:#{@port}/requests/#{action}.xml" base_url += "?command=#{command}" unless command.empty? unless parameters.empty? params = parameters.map { |key, value| "#{key}=#{value}" }.join('&') base_url += "&#{params}" end @logger.debug("built uri: #{base_url}") URI(base_url) end
http_success?(response)
click to toggle source
# File lib/vlc_proxy/connection.rb, line 41 def http_success?(response) response.code == '200' end
valid_response?(response)
click to toggle source
# File lib/vlc_proxy/connection.rb, line 49 def valid_response?(response) return true if http_success?(response) raise VlcProxy::AccessDeniedError if http_unauthorized?(response) false end