class TTWatcher::Sites::TorrentSite
Public Class Methods
search_request_valid?(name)
click to toggle source
@param [String] name
@return [TrueClass, FalseClass]
Returns +false+ when +name+ too short or not exists.
# File sources/ttwatcher/sites/torrent_site.rb, line 12 def self.search_request_valid?(name) name && name.length >= 3 end
Public Instance Methods
find_torrent(name, request_params = {})
click to toggle source
Searches torrents.
@param [String] name
Torrent name.
@return [TorrentList, NilClass]
# File sources/ttwatcher/sites/torrent_site.rb, line 24 def find_torrent(name, request_params = {}) return nil unless self.class.search_request_valid? name html_body = download_page search_url(name), request_params torrents = parser.parse html_body return torrents end
Private Instance Methods
notificate_about_parser_crash!(exception)
click to toggle source
# File sources/ttwatcher/sites/torrent_site.rb, line 65 def notificate_about_parser_crash!(exception) Logger.with_backtrace "Parser #{self} crashed with message: *** #{exception.message} ***" end
parser()
click to toggle source
Returns a parser associated with Site
instance throw class names.
@return [Parsers::Base]
# File sources/ttwatcher/sites/torrent_site.rb, line 52 def parser @parser ||= begin class_name = self.class.name.split('::').last parser = TTWatcher::Parsers.const_get class_name parser.new self end rescue NameError => exception notificate_about_parser_crash! exception return nil end
search_url(name=nil)
click to toggle source
Url for torrent searching.
see Sites#search_url for an example.
@param [String] name
Used to extend url with +name+ when it need. For an example check Rutor#search_url
# File sources/ttwatcher/sites/torrent_site.rb, line 43 def search_url(name=nil) raise NotImplementedError, "Abstract method called!" end