def main(): opts, args = parser.parse_args(sys.argv[1:]) pyacd.set_amazon_domain(opts.domain) for m in ["email", "session"]: if not opts.__dict__[m]: print >>sys.stderr, "mandatory option is missing (%s)\n" % m parser.print_help() exit(2) if not opts.password: opts.password = getpass.getpass() if os.path.isdir(opts.session): print >>sys.stderr, "%s should not be directory." % s exit(2) if opts.verbose: print >>sys.stderr, "Loading previous session...", try: s = pyacd.Session.load_from_file(opts.session) if opts.verbose: print >>sys.stderr, "Done." except: s = pyacd.Session() if opts.verbose: print >>sys.stderr, "Failed." if opts.verbose: print >>sys.stderr, "Logging into %s..." % opts.domain, try: session = pyacd.login(opts.email, opts.password, session=s) if opts.verbose: print >>sys.stderr, "Done." if opts.verbose: print >>sys.stderr, "Updating current session...", session.save_to_file(opts.session) if opts.verbose: print >>sys.stderr, "Done." except: if opts.verbose: print >>sys.stderr, "Failed."
def validate_options(opts): ''' Given a collection of parsed options, validate that they are correct and apply global settings. :param opts: The options to validate :returns: True if valid, false otherwise ''' pyacd.set_amazon_domain(opts.domain) # update options of authentication if opts.email: if not opts.password: opts.password = getpass.getpass() # check if we need debug logging if opts.debug: logging.basicConfig() log = logging.getLogger(__name__) log.setLevel(logging.DEBUG) # check options of authentication if (opts.email and opts.password) or opts.session: return True raise NimbusException("missing neccessary session options")
def main(): opts,args=parser.parse_args(sys.argv[1:]) pyacd.set_amazon_domain(opts.domain) args=list(set(args)) if "-" in args: args.remove("-") args += [x.strip() for x in sys.stdin.readlines()] if 0==len(args): sys.stderr.write("No dir selected.\n") parser.print_help() sys.exit(2) else: pass # Check options of authentication if opts.email: if not opts.password: opts.password = getpass.getpass() if (opts.email and opts.password) or opts.session: pass # OK case else: print >>sys.stderr, "Either email and password or session is mondatory." sys.exit(2) session = None; s = None if opts.session: if opts.verbose: print >>sys.stderr, "Loading previous session...", try: s=pyacd.Session.load_from_file(opts.session) if opts.verbose: print >>sys.stderr, "Done." except: s=pyacd.Session() if opts.verbose: print >>sys.stderr, "Failed." if opts.verbose: print >>sys.stderr, "Logging into %s..."%opts.domain, try: if opts.email and opts.password and s: session=pyacd.login(opts.email,opts.password,session=s) elif opts.email and opts.password: session=pyacd.login(opts.email,opts.password) else: session=pyacd.login(session=s) if opts.verbose: print >>sys.stderr, "Done." except: if opts.verbose: print >>sys.stderr, "Failed." sys.exit(2) # Check login status if not session: sys.stderr.write("Unexpected error occured.\n") sys.exit(2) elif not session.is_logged_in(): sys.stderr.write("Login failed.\n%s\n"%session) sys.exit(2) for path in args: if path[0]!='/':path='/'+path folder = path.split("/")[-1] parent = "/".join(path.split("/")[:-1]) parent = parent if len(parent)!=0 else "/" if opts.verbose: sys.stderr.write("Making %s in %s ... "%(folder,parent)) # create folder try: pyacd.api.create_by_path(parent,folder,Type=pyacd.types.FOLDER) except pyacd.PyAmazonCloudDriveApiException,e: sys.stderr.write("Aborted.\n"%e.message) continue except pyacd.PyAmazonCloudDriveError,e: sys.stderr.write("Already exists.\n") continue
def main(): opts,args=parser.parse_args(sys.argv[1:]) pyacd.set_amazon_domain(opts.domain) args=list(set(args)) if "-" in args: args.remove("-") args += [x.strip() for x in sys.stdin.readlines()] if 0==len(args): sys.stderr.write("No file selected.\n") parser.print_help() sys.exit(2) else: for file in args: if not os.path.exists(file): sys.stderr.write('Not found "%s"\n'%file) sys.exit(2) elif os.path.isdir(file): sys.stderr.write('"%s" is not file\n'%file) sys.exit(2) # Check options of authentication if opts.email: if not opts.password: opts.password = getpass.getpass() if (opts.email and opts.password) or opts.session: pass # OK case else: print >>sys.stderr, "Either email and password or session is mondatory." sys.exit(2) session = None; s = None if opts.session: if opts.verbose: print >>sys.stderr, "Loading previous session...", try: s=pyacd.Session.load_from_file(opts.session) if opts.verbose: print >>sys.stderr, "Done." except: s=pyacd.Session() if opts.verbose: print >>sys.stderr, "Failed." if opts.verbose: print >>sys.stderr, "Logging into %s..."%opts.domain, try: if opts.email and opts.password and s: session=pyacd.login(opts.email,opts.password,session=s) elif opts.email and opts.password: session=pyacd.login(opts.email,opts.password) else: session=pyacd.login(session=s) if opts.verbose: print >>sys.stderr, "Done." except: if opts.verbose: print >>sys.stderr, "Failed." sys.exit(2) # Check login status if not session: sys.stderr.write("Unexpected error occured.\n") sys.exit(2) elif not session.is_logged_in(): sys.stderr.write("Login failed.\n%s\n"%session) sys.exit(2) # Check destination path=opts.path if path[0]!='/':path='/'+path if path[-1]!='/':path=path+'/' try: dest = pyacd.api.get_info_by_path(path) if dest.Type == pyacd.types.FILE: sys.stderr.write('"%s" is file\n'%path) sys.exit(2) except pyacd.PyAmazonCloudDriveApiException,e: sys.stderr.write('"%s"\n'%e.reason) sys.exit(2)
def main(): opts,args=parser.parse_args(sys.argv[1:]) pyacd.set_amazon_domain(opts.domain) args=list(set(args)) if "-" in args: args.remove("-") args += [x.strip() for x in sys.stdin.readlines()] if 0==len(args): sys.stderr.write("No path selected.\n") parser.print_help() sys.exit(2) else: pass # Check options of authentication if opts.email: if not opts.password: opts.password = getpass.getpass() if (opts.email and opts.password) or opts.session: pass # OK case else: print >>sys.stderr, "Either email and password or session is mondatory." sys.exit(2) session = None; s = None if opts.session: if opts.verbose: print >>sys.stderr, "Loading previous session...", try: s=pyacd.Session.load_from_file(opts.session) if opts.verbose: print >>sys.stderr, "Done." except: s=pyacd.Session() if opts.verbose: print >>sys.stderr, "Failed." if opts.verbose: print >>sys.stderr, "Logging into %s..."%opts.domain, try: if opts.email and opts.password and s: session=pyacd.login(opts.email,opts.password,session=s) elif opts.email and opts.password: session=pyacd.login(opts.email,opts.password) else: session=pyacd.login(session=s) if opts.verbose: print >>sys.stderr, "Done." except: if opts.verbose: print >>sys.stderr, "Failed." sys.exit(2) # Check login status if not session: sys.stderr.write("Unexpected error occured.\n") sys.exit(2) elif not session.is_logged_in(): sys.stderr.write("Login failed.\n%s\n"%session) sys.exit(2) for path in args: if path[0]!='/':path='/'+path if opts.verbose: sys.stderr.write("Moving %s to Recycle ... "%(path)) # get path try: pathobj = pyacd.api.get_info_by_path(path) except pyacd.PyAmazonCloudDriveApiException,e: sys.stderr.write("Aborted. ('%s')\n"%e.message) continue except pyacd.PyAmazonCloudDriveError,e: sys.stderr.write("Not found.\n") continue
def main(): opts,args=parser.parse_args(sys.argv[1:]) pyacd.set_amazon_domain(opts.domain) args=list(set(args)) if "-" in args: args.remove("-") args += [x.strip() for x in sys.stdin.readlines()] if 0==len(args): sys.stderr.write("No file selected.\n") parser.print_help() sys.exit(2) else: pass # Check destination path=opts.path if path[-1]!=os.sep:path=path+os.sep if not os.path.exists(path): sys.stderr.write('"%s" does not exist\n'%path) sys.exit(2) elif not os.path.isdir(path): sys.stderr.write('"%s" is not file\n'%path) sys.exit(2) # Check options of authentication if opts.email: if not opts.password: opts.password = getpass.getpass() if (opts.email and opts.password) or opts.session: pass # OK case else: print >>sys.stderr, "Either email and password or session is mondatory." sys.exit(2) session = None; s = None if opts.session: if opts.verbose: print >>sys.stderr, "Loading previous session...", try: s=pyacd.Session.load_from_file(opts.session) if opts.verbose: print >>sys.stderr, "Done." except: s=pyacd.Session() if opts.verbose: print >>sys.stderr, "Failed." if opts.verbose: print >>sys.stderr, "Logging into %s..."%opts.domain, try: if opts.email and opts.password and s: session=pyacd.login(opts.email,opts.password,session=s) elif opts.email and opts.password: session=pyacd.login(opts.email,opts.password) else: session=pyacd.login(session=s) if opts.verbose: print >>sys.stderr, "Done." except: if opts.verbose: print >>sys.stderr, "Failed." sys.exit(2) # Check login status if not session: sys.stderr.write("Unexpected error occured.\n") sys.exit(2) elif not session.is_logged_in(): sys.stderr.write("Login failed.\n%s\n"%session) sys.exit(2) for f in args: if f[0]!='/':f='/'+f filename = os.path.basename(f) if opts.verbose: sys.stderr.write("Downloading %s to %s ... "%(f,path)) if os.path.exists(path+filename) and not opts.force: sys.stderr.write("Aborted. ('%s' exists.)\n"%(path+filename)) continue # get file try: fileobj = pyacd.api.get_info_by_path(f) except pyacd.PyAmazonCloudDriveApiException,e: sys.stderr.write("Aborted. ('%s')\n"%e.message) continue except pyacd.PyAmazonCloudDriveError,e: sys.stderr.write("Not found.\n") continue
# Copyright (c) 2011 anatanokeitai.com(sakurai_youhei) # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, dis- # tribute, sublicense, and/or sell copies of the Software, and to permit # persons to whom the Software is furnished to do so, subject to the fol- # lowing conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. import pyacd pyacd.set_amazon_domain("www.amazon.co.jp") import os, sys sys.path.insert(0,os.path.dirname(__file__)) import test test.main()