agunq

animeindo.co

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