lib/nnmClub_api/search.rb in nnmClub_api-0.1.2 vs lib/nnmClub_api/search.rb in nnmClub_api-0.1.3
- old
+ new
@@ -1,9 +1,5 @@
-require "uri"
-require "open-uri"
-require "nokogiri"
-
class Hash
def any_nil?
@result = false
self.keys.each { |key|
@result = self[key].nil? ? true : false
@@ -11,37 +7,27 @@
}
@result
end
end
-
module NnmClub
-
class Search
- attr_reader :torrents, :url
- def initialize(query, category = nil)
- torrents = []
- query = URI.escape(query)
- @url = NnmClub::URL+"nm=#{query}"+(!category.nil? ? "&c=#{category}" : "")
-
- document = Nokogiri::HTML(open(@url))
- document.css("table.forumline.tablesorter").css(".prow1",".prow2").each { |row|
-
- size = row.at("td[6]/u").nil? ? nil : row.at("td[6]/u").text.to_i
- title = row.css(".topictitle").empty? ? nil : row.css(".topictitle").text.strip
- seeders = row.css(".seedmed").empty? ? nil : row.css(".seedmed").text.to_i
- leechers = row.css(".leechmed").empty? ? nil : row.css(".leechmed").text.to_i
- torrent_id = row.css(".topictitle").empty? ? nil : row.css(".topictitle").first[:href].split("=").last
-
- torrent = { :title => title,
- :size => size,
- :seeders => seeders,
- :leechers => leechers,
- :torrent_id => torrent_id,
- :tracker => NnmClub::ID
+ attr_reader :torrents
+ def initialize(query, agent = Mechanize.new)
+ form = agent.get(NnmClub::URL).forms.last
+ form.field("nm").value = query
+ form.checkbox("sd").check
+ form.checkbox("a").check
+ torrents = form.submit.search(".prow1",".prow2").collect { |row|
+ torrent = {
+ :title => row.css(".topictitle").empty? ? (nil and status=true) : row.css(".topictitle").text.strip,
+ :size => row.at("td[6]/u").nil? ? nil : row.at("td[6]/u").text.to_i,
+ :seeders => row.css(".seedmed").empty? ? nil : row.css(".seedmed").text.to_i,
+ :torrent_id => status ? nil : row.css(".topictitle").first[:href].split("=").last
}
- torrents.push(torrent) unless torrent.any_nil?
+ torrent unless torrent.any_nil?
}
@torrents = torrents
+
end
end
end
\ No newline at end of file