Advertisement
agunq

autoddl

Mar 22nd, 2017
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 4.91 KB | None | 0 0
  1. require 'uri'
  2. require 'net/http'
  3. require "base64"
  4.  
  5. class Animeindoco
  6.    
  7.     def initialize
  8.         @data = nil
  9.         @mirror = {}
  10.         @tmirror = {}
  11.         @post = {}
  12.     end
  13.  
  14.     def getUpdate
  15.         uri = URI('http://animeindo.co/')
  16.         res = Net::HTTP.get_response(uri).body
  17.         data = res.scan(/<a href="(.*?)">\n<div class="newepisode">\n<span class="viewer">(.*?)<\/span>\n<div class="newepisodetitle"><h3>(.*?)<\/h3><\/div>/)
  18.         @data = data
  19.         newset = []
  20.         num = 1
  21.         for link, type, title in data
  22.             newset << "<b>#{num}. #{title}</b>[<b>#{type}</b>] #{link}"
  23.             num += 1
  24.         end
  25.         return newset
  26.     end
  27.    
  28.     def genSid
  29.         return [*('a'..'z'),*('0'..'9')].shuffle[0,8].join
  30.     end
  31.  
  32.     def getMirror(link)
  33.         uri = URI(link)
  34.         res = Net::HTTP.get_response(uri).body
  35.         lm = res.match(/<(IFRAME SRC|iframe src)="(.*?)"/).captures
  36.         @mirror[link] = {}
  37.         data = res.match(/<ul>(.*?)<\/ul>/im).captures
  38.         if @post.key? link
  39.             return @post[link]
  40.         end
  41.         @post[link] = []
  42.         if data
  43.             m = data[0]
  44.             m1 = m.match(/<a><div class="titlecur">(.*?)<\/div><\/a>/).captures
  45.             if lm and m1
  46.                 sid = genSid
  47.                 @tmirror[sid] = lm[1]
  48.                 @post[link] << [sid, m1[0]]
  49.                 @mirror[link][m1[0]] = lm[1]
  50.             end
  51.             m2 = m.scan(/<a href="(.*?)"><div class="titlemor">(.*?)<\/div><\/a>/)
  52.             for l, t in m2
  53.                 getLinkMirror(link, l, t)
  54.             end
  55.         end
  56.         return @post[link]
  57.     end
  58.  
  59.     def getLinkMirror(link, linkmirror, title)
  60.         uri = URI(link + linkmirror)
  61.         res = Net::HTTP.get_response(uri).body
  62.         lm2 = res.match(/<(IFRAME SRC|iframe src)="(.*?)"/).captures
  63.         if lm2
  64.             lm2 = lm2[1]
  65.             sid = genSid
  66.             @mirror[link][title] = lm2
  67.             @post[link] << [sid, title]
  68.             @tmirror[sid] = lm2
  69.         end
  70.     end
  71.  
  72.     def getDirectLink(sid)
  73.         if @tmirror.key?(sid)
  74.             link = @tmirror[sid]
  75.             directlink = getDirrectLinkMirror(link)
  76.             return directlink
  77.         end
  78.        
  79.     end
  80.  
  81.     def getDirrectLinkMirror(link)
  82.         if link.include? "anilink"
  83.             direct = anilink(link)
  84.             return direct
  85.         elsif link.include? "mp4upload"
  86.             direct = mp4upload(link)
  87.             return direct
  88.         elsif link.include? "savefile"
  89.             direct = savefile(link)
  90.             return direct
  91.         elsif link.include? "videonest"
  92.             direct = videonest(link)
  93.             return direct
  94.         elsif link.include? "yourupload"
  95.             direct = yourupload(link)
  96.             return direct
  97.         end
  98.     end
  99.  
  100.     def httpsrequest(link)
  101.         uri = URI(link)
  102.         http = Net::HTTP.new(uri.host, uri.port)
  103.         http.use_ssl = true
  104.         http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  105.         request = Net::HTTP::Get.new(uri.request_uri)
  106.         response = http.request(request)
  107.         return response.body
  108.     end
  109.  
  110.     def httprequest(link)
  111.         uri = URI(link)
  112.         http = Net::HTTP.new(uri.host, uri.port)
  113.         request = Net::HTTP::Get.new(uri.request_uri)
  114.         response = http.request(request)
  115.         return response.body
  116.     end
  117.  
  118.     def anilink(link)
  119.         begin
  120.             uri = URI(link)
  121.             http = Net::HTTP.new(uri.host, uri.port)
  122.             request = Net::HTTP::Get.new(uri.request_uri)
  123.             request["User-Agent"] = "Malaikat V.1"
  124.             response = http.request(request)
  125.             cookie = response['set-cookie'].match("__cfduid ?= ?([^;]*)").captures
  126.             cfray = response['cf-ray']
  127.                 if cookie
  128.                         request["Cookie"] = "__cfduid=" + cookie[0]
  129.                 request["CF-RAY"] = cfray
  130.                 response = http.request(request)
  131.                 end
  132.             dl = ""
  133.             dlink = response.body.match(/"file":"(.*?)",/).captures
  134.             if dlink
  135.                 dl = dlink[0]
  136.             end
  137.             return dl
  138.         rescue
  139.             link = link.split("url=")[1].split("&")[0].gsub("%3D", "=")
  140.             link = Base64.decode64(link)
  141.             return link
  142.         end
  143.        
  144.     end
  145.  
  146.     def savefile(link)
  147.         data = httprequest(link)
  148.         dl = ""
  149.         dlink = data.scan(/,'(.*?)'.split\('|'\)\)\)/)
  150.         if dlink
  151.             dl = dlink[2][0].split("|")
  152.             co = dl[0].split("'")[-1]
  153.             lset = ([co] + dl[1, dl.length]).reject{|i| i == ""}
  154.             set = []
  155.             hset = []
  156.             for d in lset
  157.                 if d == "file"
  158.                     break      
  159.                 end
  160.                 set << d
  161.             end
  162.             for d in set
  163.                 if d == "provider"
  164.                     break      
  165.                 end
  166.                 hset << d
  167.             end    
  168.             path = (set - hset).reverse - ["provider"]
  169.             domain = hset.reverse - ["http", "type"]
  170.             #return path, domain
  171.             dl = "http://#{domain.join(".")}:#{path[0]}/d/#{path[1]}/#{path[2, path.length].join(".")}"    
  172.         end
  173.         return dl
  174.     end
  175.  
  176.     def videonest(link)
  177.         data = httprequest(link)
  178.         dl = ""
  179.         dlink = data.match(/file: "(.*?)",/).captures
  180.         if dlink
  181.             dl = dlink[0]
  182.         end
  183.         return dl
  184.     end
  185.  
  186.     def mp4upload(link)
  187.         data = httpsrequest(link)
  188.         dl = ""
  189.         dlink = data.match(/"file": "(.*?)",/).captures
  190.         if dlink
  191.             dl = dlink[0]
  192.         end
  193.         return dl
  194.     end
  195.  
  196.  
  197.     def yourupload(link)
  198.         data = httpsrequest(link)
  199.         dl = ""
  200.         dlink = data.match(/<source type="(.*?)" src="(.*?)" data-title="(.*?)"\/>/).captures
  201.         if dlink
  202.             dl = "http://www.yourupload.com" + dlink[1].split("?")[0]
  203.         end
  204.         return dl
  205.     end
  206.  
  207. end
  208.  
  209. #print Animeindoco.new.getDirrectLinkMirror("http://anilink.me/embed/jwplayer.php?url=aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8wQjI5RVd4cDVFeFg4YkMxVmJtSldXVkJzTWtVL3ZpZXc=&sub=&thumbnail=")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement