"""
Plugin for UrlResolver
Copyright (C) 2021 gujal
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
"""
#import re
#from urlresolver.plugins.lib import helpers
#from urlresolver import common
#from urlresolver.resolver import UrlResolver, ResolverError
import re
import sys
import time
from lib.net import Net
import re, urllib, json
from lib import helpers
import lib.common as common
class EvoLoadResolver(object):
name = "evoload"
domains = ["evoload.io"]
pattern = r'(?://|\.)(evoload\.io)/(?:e|f|v)/([0-9a-zA-Z]+)'
# def __init__(self):
# self.net = common.Net()
def __init__(self):
self.net = Net()
url = str(sys.argv[1])
host = self.get_host_and_id(url)[0]
media_id = self.get_host_and_id(url)[1]
return self.get_media_url(host, media_id)
def get_host_and_id(self, url):
r = re.search(self.pattern, url, re.I)
if r:
return r.groups()
else:
return False
def get_media_url(self, host, media_id):
surl = 'https://evoload.io/SecurePlayer'
web_url = self.get_url(host, media_id)
rurl = 'https://{0}/'.format(host)
headers = {'User-Agent': common.FF_USER_AGENT,
'Referer': rurl}
html = self.net.http_GET(web_url, headers).content
passe = re.search('
', html).group(1)
headers.update({'Origin': rurl[:-1]})
crsv = self.net.http_GET('https://csrv.evosrv.com/captcha?m412548', headers).content
post = {"code": media_id, "csrv_token": crsv, "pass": passe, "token": "ok"}
shtml = self.net.http_POST(surl, form_data=post, headers=headers, jdata=True).content
r = json.loads(shtml).get('stream')
if r:
surl = r.get('backup') if r.get('backup') else r.get('src')
if surl:
print surl + helpers.append_headers(headers)
else:
print 'errormsg=File1 Not Found or removed'
else:
print 'errormsg=File Not Found or removed'
def get_url(self, host, media_id):
return 'https://%s/e/%s.html' % (host, media_id)
sys.stdout = EvoLoadResolver()