You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

86 lines
2.5 KiB
Python

import resolv, urllib, urllib2, argparse
# TODO:
# http://www.mediafire.com/view/?vxltbkr2l9ycmah => http://www.mediafire.com/?vxltbkr2l9ycmah
suites = {
'1channel': {
"1channel + PutLocker (video)": "http://www.1channel.ch/external.php?title=Big+Buck+Bunny&url=aHR0cDovL3d3dy5wdXRsb2NrZXIuY29tL2ZpbGUvOTg3RkVCRjVEQjY0NUUyRQ==&domain=cHV0bG9ja2VyLmNvbQ==&loggedin=0"
},
'putlocker': {
"PutLocker (video)": "http://www.putlocker.com/file/987FEBF5DB645E2E",
"SockShare (video)": "http://www.sockshare.com/file/88DF2133C85521BD"
},
'filebox': {
"Filebox (video)": "http://www.filebox.com/p0rp8nabrcfk"
},
'pastebin': {
"Pastebin": "http://pastebin.com/imyEc26g"
},
'mediafire': {
"MediaFire": "http://www.mediafire.com/?vxltbkr2l9ycmah",
"MediaFire with password (mfddl)": "http://www.mediafire.com/?traa1p0lki9611h"
},
'youtube': {
"YouTube": "http://www.youtube.com/watch?v=XSGBVzeBUbk"
},
'vidxden': {
"VidX Den": "http://www.vidxden.com/l404fifyhfn1"
},
'vidbux': {
"VidBux": "http://www.vidbux.com/5ovunjri3fqq"
},
'filenuke': {
"Filenuke": "http://filenuke.com/osk9yi7vbtq0"
}
}
parser = argparse.ArgumentParser(description='Testing script for the resolv library.')
parser.add_argument('suites', metavar='SUITE', type=str, nargs='*',
help='suites to test (leave empty to test all suites)')
args = parser.parse_args()
options = vars(args)
to_test = {}
if len(options['suites']) == 0:
for key, suite in suites.iteritems():
for description, url in suite.iteritems():
to_test[description] = url
else:
for suite in options['suites']:
for description, url in suites[suite].iteritems():
to_test[description] = url
def process_result(res):
if res.state == "finished":
print "Successful!\nType: %s\nResults: %s\nCookie jar: %s" % (res.result_type, str(res.results), str(res.cookiejar))
elif res.state == "failed":
print "Failed."
elif res.state == "invalid":
print "Invalid URL."
elif res.state == "need_password":
pw = raw_input("Password required. Enter password: ")
res.verify_password(pw)
process_result(res)
elif res.state == "password_invalid":
pw = raw_input("Password invalid! Try again: ")
res.verify_password(pw)
process_result(res)
else:
print "Unknown result state: %s" % res.state
for title, url in to_test.iteritems():
print "============ %s ============" % title
print "RESOLVE:"
res = resolv.resolve(url)
process_result(res)
print ""
print "RECURSE:"
res = resolv.recurse(url)
process_result(res)
print ""