Esempio n. 1
0
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."
Esempio n. 2
0
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
Esempio n. 4
0
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
Esempio n. 6
0
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()