Sha256: f1a17e65debec5771926497120a1e49d88a71feaefe7abd3f656f15b896e2be0

Contents?: true

Size: 1.68 KB

Versions: 6

Compression:

Stored size: 1.68 KB

Contents

module PirateBay
  class Result
    attr_accessor :id, :name, :seeds, :leeches, :category, :link, :magnet_link, :status, :size

    def initialize(row = nil)
      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

      self.id = row.inner_html.match(/torrent\/([\d]+)\//)[1]
      self.name = row.css(".detName").first.content
      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 = row.css("td")[1].css("a[title='Download this torrent']").first[:href]
      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

    def to_s
      "<PirateBay::Result @name => #{name}, @seeds => #{seeds}, @size => #{size}>"
    end
    
    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

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
torrent_api-0.2.6 lib/pirate_bay/result.rb
torrent_api-0.2.5 lib/pirate_bay/result.rb
torrent_api-0.2.3 lib/pirate_bay/result.rb
torrent_api-0.2.2 lib/pirate_bay/result.rb
torrent_api-0.2.1 lib/pirate_bay/result.rb
torrent_api-0.2.0 lib/pirate_bay/result.rb