class TransmissionClient
Public Class Methods
new(args={})
click to toggle source
# File lib/transmission_client.rb, line 6 def initialize(args={}) @host = args[:host] || "localhost" @port = args[:port] || 9091 @user = args[:user] || "transmission" @pass = args[:pass] || "transmission" @database = args[:database] || ":memory:" @logger = args[:logger] || Logger.new(IO::NULL) @sqlite = SQLite3::Database.new @database @sqlite.execute <<~SQL CREATE TABLE IF NOT EXISTS links ( id INTEGER PRIMARY KEY, link TEXT UNIQUE, created_at TEXT DEFAULT CURRENT_TIMESTAMP ) SQL end
Public Instance Methods
add_magnets(magnets)
click to toggle source
# File lib/transmission_client.rb, line 24 def add_magnets(magnets) magnets.each do |m| record_link m @logger.info Magnet.name(m) transmission.add_magnet m rescue SQLite3::ConstraintException next end end
add_torrents(torrents)
click to toggle source
# File lib/transmission_client.rb, line 34 def add_torrents(torrents) torrents.each do |t| record_link t @logger.info t transmission.add_torrentfile t rescue SQLite3::ConstraintException next end end
count()
click to toggle source
# File lib/transmission_client.rb, line 44 def count list_all.length end
history()
click to toggle source
# File lib/transmission_client.rb, line 54 def history sqlite.get_first_value "SELECT COUNT(id) FROM links" end
purge_all()
click to toggle source
# File lib/transmission_client.rb, line 48 def purge_all transmission.list.each do |t| transmission.delete(t["id"], true) end end
Private Instance Methods
list_all()
click to toggle source
# File lib/transmission_client.rb, line 77 def list_all transmission.list end
record_link(link)
click to toggle source
# File lib/transmission_client.rb, line 73 def record_link(link) sqlite.execute "INSERT INTO links ( link ) VALUES ( ? )", link end
sqlite()
click to toggle source
# File lib/transmission_client.rb, line 69 def sqlite @sqlite end
transmission()
click to toggle source
# File lib/transmission_client.rb, line 60 def transmission @transmission ||= Transmission.new( :host => @host, :port => @port, :user => @user, :pass => @pass ) end