Rapidshare to Megaupload script
MRAB
google at mrabarnett.plus.com
Sat Feb 14 17:17:09 EST 2009
aiwarrior wrote:
> I've made this script and would like to have some input and share it
> with the community.
> I also have a page with some code i produce on my spare time. http://pneves.net
> Thanks
>
[snip]
>
> def from_rapidshare(url):
> '''Check if this is a rapidshare link'''
> return (url.startswith("rapidshare.com") or
> url.startswith("www.rapidshare.com") or
> url.startswith("http://rapidshare.com") or
> url.startswith("http://www.rapidshare.com"))
>
You can shorten:
s.startswith(x) or s.startswith(y) or ...
to:
s.startswith((x, y, ...))
[snip]
> cfg = ConfigParser.SafeConfigParser()
> cfg.read(path)
> try:
> m_user = cfg.get("Acc_Details", "m_user")
> m_password = cfg.get("Acc_Details", "m_password")
> r_user = cfg.get("Acc_Details", "r_user")
> r_password = cfg.get("Acc_Details", "r_password")
> except ConfigParser.NoSectionError or ConfigParser.NoOptionError:
In order to catch multiple exceptions it should be:
except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
> print "no section or No Option"
> print
> os.remove(path)
> return (m_user, m_password, r_user, r_password)
>
> def cookie_processor(cookie):
> cookie = cookie.split("; ")
> ## cookie = dict( [cookie[x].split("=") for x in xrange ( len
> (cookie) ) ] )
Or:
## cookie = dict(x.split("=") for x in cookie)
> ## if cookie['user'] != None:
When checking for None use "is" and "is not":
## if cookie['user'] is not None:
> return cookie
> ## else:
> ## print "Scheme has changed or authentication failes. Last
> option most likely"
> ## sys.exit()
Raising an exception is better than exiting.
> ##
>
[snip]
> def mu_auth(login):
> r_user = login[0]
> r_password = login[1]
> cred = urllib.urlencode({"login": r_user, "password": r_password})
> try:
> req = urllib2.urlopen("http://www.megaupload.com", cred)
> cookie_mu = cookie_processor( req.headers.get("set-cookie",
> "") )
>
> except:
Don't use an empty "except"; be explicit in which exception you want to
catch .
[snip]
>
> if sys.argv[1] == "-h" or sys.argv[1] == "–help":
Or:
if sys.argv[1] in ("-h", "–help"):
[snip]
> elif from_rapidshare(sys.argv[1]): #if argument is one or more urls
> for i in range(1, len(sys.argv)):
Or:
for arg in sys.argv[1 : ]:
and so on.
> if from_rapidshare(sys.argv[i]):
> urls.append(sys.argv[i])
> else:
> print "This is not valid argument" , sys.argv[1]
> sys.exit()
> urls = []
>
[snip]
HTH
More information about the Python-list
mailing list