class MyJobAnime44
Public Class Methods
new(args={})
click to toggle source
# File lib/lib/job.rb, line 3 def initialize(args={}) require 'kconv' require 'mechanize' require 'net/http' @a = args @debug = args[:debug] ||= false @a[:url] ||= 'http://www.anime44.com/' @a[:status] ||= :top_page return if @a[:url].nil? @agent = Mechanize.new @a[:recursive] ||= 4 end
Public Instance Methods
anime44_fetch()
click to toggle source
# File lib/lib/job.rb, line 116 def anime44_fetch print "video".yellow savedir = @a[:machine].savedir Dir.chdir savedir filename = "#{@a[:title].gsub(' ','').gsub(' ','')}.mp4" savepath = "#{savedir}/#{filename}" if File.exist?(savepath) && File.size(savepath) > 1024 * 1024 * 3 puts "File Already Saved ".yellow.bold + savepath return else puts "Fetching ".green.bold + savepath MyLogger.ln "Fetch Attempt Start ".green.bold + savepath end # use curl command # no need UA... command = "curl -# -L -R -o '#{filename}' '#{@a[:url]}' >/dev/null 2>&1 &" puts command system command unless @debug end
anime44_first()
click to toggle source
# File lib/lib/job.rb, line 33 def anime44_first print :anime44_first if @debug puts @a[:url] if @debug begin @agent.get @a[:url] rescue => ex p ex if @debug p @a[:url] if @debug return end @title = @agent.page.title flg = false videozer_embeds_links = @agent.page.search('embed[@src^="http://www.videozer"]').map {|ne| ne[:src] } unless videozer_embeds_links[0].nil? flg = true url1 = videozer_embeds_links[0].gsub('http://www.videozer.com/embed/','http://video195.videozer.com/video?v=') url = "#{url1}&r=1&t=#{Time.new.to_i.to_s}&u=&start=0" job = MyJobAnime44.new( @a.merge({ :url => url, :title => @title, :status => :anime44_fetch})) @a[:machine].retry job end unless flg == true begin @agent.get @a[:url] rescue => ex p ex if @debug p @a[:url] if @debug return end daily_embeds_links = @agent.page.search('embed[@src^="http://www.daily"]').map {|ne| ne[:src] } unless daily_embeds_links[0].nil? uri = daily_src2hqurl(daily_embeds_links[0]) if uri[:status] == :ok flg = true job = MyJobAnime44.new( @a.merge({ :url => uri[:url], :title => @title, :status => :anime44_fetch})) @a[:machine].retry job end end end begin if @a[:recursive] > 0 alignleft = @agent.page.search('div.alignleft a')[0]['href'] job = MyJobAnime44.new( @a.merge({ :url => alignleft, :recursive => @a[:recursive] -1 , :status => :anime44_first})) @a[:machine].retry job else p "recursive stop" if @debug end rescue => ex end begin if @a[:recursive] > 0 alignright = @agent.page.search('div.alignright a')[0]['href'] job = MyJobAnime44.new( @a.merge({ :url => alignright, :recursive => @a[:recursive] - 1, :status => :anime44_first})) @a[:machine].retry job else p "recursive stop" if @debug end rescue => ex end end
daily_src2hqurl(url)
click to toggle source
# File lib/lib/job.rb, line 139 def daily_src2hqurl(url) require 'json' begin js= JSON.parse(@agent.get(url.gsub('swf','sequence/full')).body) uri = js[0]['layerList'][0]['sequenceList'][1]['layerList'][2]['param']['videoPluginParameters']['hqURL'] rescue =>ex return {:status => :error} end {:status => :ok,:url => uri} end
run()
click to toggle source
# File lib/lib/job.rb, line 150 def run send @a[:status] end
top_page()
click to toggle source
# File lib/lib/job.rb, line 16 def top_page print :top_page if @debug @agent.get @a[:url] # p @agent.page @agent.page.search('table')[1].css('td li') targs = @agent.page.search('table')[1].css('td li')# .select {|ne| ne.text =~ /\(Raw\)/ } a_s = [] targs.each {|ne| a_s << ne.css('a').map{|e|e[:href]}[0]} a_s.each do |link| job = MyJobAnime44.new(@a.merge({ :url => link, :status => :anime44_first })) @a[:machine].retry job end end