class Configuration::Client

Constants

FIELDS
HOST

HOST = '127.0.0.1:3000'

Attributes

download_dir[RW]
host[R]
interval[R]
peer_port[RW]
port[R]
transmission[R]

Public Class Methods

new(args) click to toggle source
# File lib/transmission-connect/configuration.rb, line 56
def initialize(args)
  @host = args.delete(:host) || '127.0.0.1'
  @port = args.delete(:port) || 9091
  @username = args[:username]
  @password = args[:password]
  @interval = args.delete(:interval) || 5
  @up = args.delete(:up) || false
  @down = args.delete(:down) || false
  @transmission = Transmission::Client.new(@host, @port, @username, @password)
  @transmission.session do |session|
    self.peer_port = session.peer_port
    self.download_dir = session.download_dir
  end
end

Public Instance Methods

down?() click to toggle source
# File lib/transmission-connect/configuration.rb, line 92
def down?
  @down
end
options() click to toggle source
# File lib/transmission-connect/configuration.rb, line 96
def options
  @options ||= {
      :port => peer_port,
      :up => up?,
      :down => down?,
      :download_dir => download_dir,
      :host => @host
  }
end
report() click to toggle source
# File lib/transmission-connect/configuration.rb, line 71
def report
  @transmission.torrents(FIELDS) do |torrents|
    result = {:client => options}
    torrents.each do |torrent|
      result[torrent.hashString.to_sym] = torrent.attributes
    end
    EM::HttpRequest.new("#{HOST}/transmission/").post :body => {:torrents => result.to_json}
  end
end
session_stats() click to toggle source
# File lib/transmission-connect/configuration.rb, line 81
def session_stats
  @transmission.session_stat do |ss|
    result = ss.attributes.merge(:client => options)
    EM::HttpRequest.new("#{HOST}/transmission/stat").post :body => {:session_stat => result.to_json}
  end
end
up?() click to toggle source
# File lib/transmission-connect/configuration.rb, line 88
def up?
  @up
end