Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'uri'
- require 'net/http'
- require "base64"
- class Animeindoco
- def initialize
- @data = nil
- @mirror = {}
- @tmirror = {}
- @post = {}
- end
- def getUpdate
- uri = URI('http://animeindo.co/')
- res = Net::HTTP.get_response(uri).body
- data = res.scan(/<a href="(.*?)">\n<div class="newepisode">\n<span class="viewer">(.*?)<\/span>\n<div class="newepisodetitle"><h3>(.*?)<\/h3><\/div>/)
- @data = data
- newset = []
- num = 1
- for link, type, title in data
- newset << "<b>#{num}. #{title}</b>[<b>#{type}</b>] #{link}"
- num += 1
- end
- return newset
- end
- def genSid
- return [*('a'..'z'),*('0'..'9')].shuffle[0,8].join
- end
- def getMirror(link)
- uri = URI(link)
- res = Net::HTTP.get_response(uri).body
- lm = res.match(/<(IFRAME SRC|iframe src)="(.*?)"/).captures
- @mirror[link] = {}
- data = res.match(/<ul>(.*?)<\/ul>/im).captures
- if @post.key? link
- return @post[link]
- end
- @post[link] = []
- if data
- m = data[0]
- m1 = m.match(/<a><div class="titlecur">(.*?)<\/div><\/a>/).captures
- if lm and m1
- sid = genSid
- @tmirror[sid] = lm[1]
- @post[link] << [sid, m1[0]]
- @mirror[link][m1[0]] = lm[1]
- end
- m2 = m.scan(/<a href="(.*?)"><div class="titlemor">(.*?)<\/div><\/a>/)
- for l, t in m2
- getLinkMirror(link, l, t)
- end
- end
- return @post[link]
- end
- def getLinkMirror(link, linkmirror, title)
- uri = URI(link + linkmirror)
- res = Net::HTTP.get_response(uri).body
- lm2 = res.match(/<(IFRAME SRC|iframe src)="(.*?)"/).captures
- if lm2
- lm2 = lm2[1]
- sid = genSid
- @mirror[link][title] = lm2
- @post[link] << [sid, title]
- @tmirror[sid] = lm2
- end
- end
- def getDirectLink(sid)
- if @tmirror.key?(sid)
- link = @tmirror[sid]
- directlink = getDirrectLinkMirror(link)
- return directlink
- end
- end
- def getDirrectLinkMirror(link)
- if link.include? "anilink"
- direct = anilink(link)
- return direct
- elsif link.include? "mp4upload"
- direct = mp4upload(link)
- return direct
- elsif link.include? "savefile"
- direct = savefile(link)
- return direct
- elsif link.include? "videonest"
- direct = videonest(link)
- return direct
- elsif link.include? "yourupload"
- direct = yourupload(link)
- return direct
- end
- end
- def httpsrequest(link)
- uri = URI(link)
- http = Net::HTTP.new(uri.host, uri.port)
- http.use_ssl = true
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
- request = Net::HTTP::Get.new(uri.request_uri)
- response = http.request(request)
- return response.body
- end
- def httprequest(link)
- uri = URI(link)
- http = Net::HTTP.new(uri.host, uri.port)
- request = Net::HTTP::Get.new(uri.request_uri)
- response = http.request(request)
- return response.body
- end
- def anilink(link)
- begin
- uri = URI(link)
- http = Net::HTTP.new(uri.host, uri.port)
- request = Net::HTTP::Get.new(uri.request_uri)
- request["User-Agent"] = "Malaikat V.1"
- response = http.request(request)
- cookie = response['set-cookie'].match("__cfduid ?= ?([^;]*)").captures
- cfray = response['cf-ray']
- if cookie
- request["Cookie"] = "__cfduid=" + cookie[0]
- request["CF-RAY"] = cfray
- response = http.request(request)
- end
- dl = ""
- dlink = response.body.match(/"file":"(.*?)",/).captures
- if dlink
- dl = dlink[0]
- end
- return dl
- rescue
- link = link.split("url=")[1].split("&")[0].gsub("%3D", "=")
- link = Base64.decode64(link)
- return link
- end
- end
- def savefile(link)
- data = httprequest(link)
- dl = ""
- dlink = data.scan(/,'(.*?)'.split\('|'\)\)\)/)
- if dlink
- dl = dlink[2][0].split("|")
- co = dl[0].split("'")[-1]
- lset = ([co] + dl[1, dl.length]).reject{|i| i == ""}
- set = []
- hset = []
- for d in lset
- if d == "file"
- break
- end
- set << d
- end
- for d in set
- if d == "provider"
- break
- end
- hset << d
- end
- path = (set - hset).reverse - ["provider"]
- domain = hset.reverse - ["http", "type"]
- #return path, domain
- dl = "http://#{domain.join(".")}:#{path[0]}/d/#{path[1]}/#{path[2, path.length].join(".")}"
- end
- return dl
- end
- def videonest(link)
- data = httprequest(link)
- dl = ""
- dlink = data.match(/file: "(.*?)",/).captures
- if dlink
- dl = dlink[0]
- end
- return dl
- end
- def mp4upload(link)
- data = httpsrequest(link)
- dl = ""
- dlink = data.match(/"file": "(.*?)",/).captures
- if dlink
- dl = dlink[0]
- end
- return dl
- end
- def yourupload(link)
- data = httpsrequest(link)
- dl = ""
- dlink = data.match(/<source type="(.*?)" src="(.*?)" data-title="(.*?)"\/>/).captures
- if dlink
- dl = "http://www.yourupload.com" + dlink[1].split("?")[0]
- end
- return dl
- end
- end
- #print Animeindoco.new.getDirrectLinkMirror("http://anilink.me/embed/jwplayer.php?url=aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8wQjI5RVd4cDVFeFg4YkMxVmJtSldXVkJzTWtVL3ZpZXc=&sub=&thumbnail=")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement