class Sportsflix::Players::Proxies::Acestream::Client
Constants
- ACESTREAM_PROXY_DOCKER_NAME
- ACESTREAM_STREAM_URI_PREFIX
Public Class Methods
new(options)
click to toggle source
# File lib/sportsflix/players/proxies/acestream.rb, line 12 def initialize(options) @verbose = options[:verbose] @video_format = options['video-format'] @server_ip = options['server-ip'] @proxy_image = options['acestream-proxy-image'] @executor = Sportsflix::Utils::Executor.new(options) end
Public Instance Methods
start()
click to toggle source
# File lib/sportsflix/players/proxies/acestream.rb, line 21 def start @executor.run %{docker pull #{@proxy_image}} @executor.run %{docker run -d -t -p 8000:8000 --name #{ACESTREAM_PROXY_DOCKER_NAME} #{@proxy_image}} end
stop()
click to toggle source
# File lib/sportsflix/players/proxies/acestream.rb, line 26 def stop @executor.run %{docker rm -f #{ACESTREAM_PROXY_DOCKER_NAME}} end
url(uri)
click to toggle source
# File lib/sportsflix/players/proxies/acestream.rb, line 30 def url(uri) stream_uuid = uri.sub(ACESTREAM_STREAM_URI_PREFIX, '') machine_ip = @server_ip || get_ip_from_host || local_ip "http://#{machine_ip}:8000/pid/#{stream_uuid}/stream.#{@video_format}" end
Private Instance Methods
get_ip_from_host()
click to toggle source
# File lib/sportsflix/players/proxies/acestream.rb, line 37 def get_ip_from_host ENV['DOCKER_HOST'].gsub(/tcp:\/\/(\S+?):.+/, '\1') if ENV['DOCKER_HOST'] end
local_ip()
click to toggle source
# File lib/sportsflix/players/proxies/acestream.rb, line 41 def local_ip # Turn off reverse DNS resolution temporarily orig = Socket.do_not_reverse_lookup Socket.do_not_reverse_lookup = true begin UDPSocket.open do |s| # Google s.connect '64.233.187.99', 1 s.addr.last end rescue return '127.0.0.1' end ensure # Restore DNS resolution Socket.do_not_reverse_lookup = orig end