Sha256: 589595bca9fcd5a73aa9f8b5082b22128bb84c5ffd5e7054ddd9e46f25db1223
Contents?: true
Size: 1.65 KB
Versions: 3
Compression:
Stored size: 1.65 KB
Contents
require 'nokogiri' require 'open-uri' class Fetcher class << self def say text puts text if Rails.env.development? end def get_data(config, link_type) sape_user = config['sape_user'] host = config['host'].downcase charset = config['charset'] || 'utf-8' server = config['server'] || 'dispenser-01.sape.ru' links_type = {'simple' => 'code.php', 'context' => 'code_context.php'} url = "http://#{server}/#{links_type[link_type]}?user=#{sape_user}&host=#{host}&format=json&no_slash_fix=true" begin data = open(url) rescue OpenURI::HTTPError fail "Could not receive data" end JSON.parse(data.read) end def fetch_pages(pages, link_type) SapeLink.delete_all say "Links:: #{link_type}" pages.each do |page_url, links| say "Page: #{page_url}" links.each do |link| item = Nokogiri::HTML.parse(link) anchor = item.css('a').text url = item.css('a').attr('href').text host = Domainatrix.parse(url).host SapeLink.create page: page_url, anchor: anchor, host: host, raw_link: link, url: url, link_type: link_type say " Added #{anchor} #{host} #{url}" end end end def fetch_config(config_data, bot_ips) SapeConfig.delete_all say "Ips:" bot_ips.each do |ip| SapeConfig.create name: 'ip', value: ip say " Added #{ip}" end say "Config" config_data.each do |item, data| SapeConfig.create name: item, value: data say " Added #{item} = #{data}" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sape-0.0.9 | lib/sape/fetcher.rb |
sape-0.0.8 | lib/sape/fetcher.rb |
sape-0.0.5 | lib/sape/fetcher.rb |