class PirateBay::Result
Attributes
category[RW]
id[RW]
leeches[RW]
link[RW]
magnet_link[RW]
name[RW]
seeds[RW]
size[RW]
status[RW]
Public Class Methods
new(row = nil, url)
click to toggle source
# File lib/piratebay_api/result.rb, line 9 def initialize(row = nil, url) if row.css('td')[1].css("img[alt='Trusted']").size > 0 status = 'Trusted' elsif row.css('td')[1].css("img[alt='VIP']").size > 0 status = 'VIP' else status = nil end magnet_links = row.css('td')[1].css("a[title='Download this torrent using magnet']") if magnet_links.size > 0 magnet_link = magnet_links.first[:href] else magnet_link = nil end domain = url.split('.')[1] self.id = row.inner_html.match(/torrent\/([\d]+)\//)[1] self.name = row.css('.detName').first.content.strip self.seeds = row.css('td')[2].content.to_i self.leeches = row.css('td')[3].content.to_i self.category = row.css('td')[0].css('a').map(&:content).join(' > ') self.link = 'https://torrents.thepiratebay.' + domain + "/#{id}/#{name}.torrent" self.magnet_link = magnet_link self.status = status raw_filesize = row.css('.detDesc').first.content.match(/Size (.*[G|M|K]iB)/i)[1] self.size = filesize_in_bytes(raw_filesize) end
Public Instance Methods
filesize_in_bytes(filesize)
click to toggle source
# File lib/piratebay_api/result.rb, line 41 def filesize_in_bytes(filesize) match = filesize.match(/([\d.]+)(.*)/) if match raw_size = match[1].to_f case match[2].strip when /gib/i then raw_size * 1000000000 when /mib/i then raw_size * 1000000 when /kib/i then raw_size * 1000 else nil end else nil end end
to_s()
click to toggle source
# File lib/piratebay_api/result.rb, line 5 def to_s "<PirateBay::Result @name => #{name}, @seeds => #{seeds}, @size => #{size}>" end