def list_bitcasa_files(base64="/"): bitcasa_utils = BitcasaUtils() client = bitcasa_utils.create_client() if not client: redirect("../auth") else: if not base64: base64 = "/" try: folder = client.get_folder(base64) except BitcasaException as e: if bitcasa_utils.test_auth(): auth_name="View Files" auth_url="/bitcasafilelister/files/" msg = "You access token is stored locally. To retrieve base64 paths click view files below" else: auth_name="Login" auth_url="/bitcasafilelister/auth/" msg = "Your authentication token is either invalid or not set. Please set one by logging in. After authentication, you will also be able to view your files" return template("bitcasafilelister", is_error=True, error_msg=e, auth_url=auth_url, authorization_code="", auth_name=auth_name, msg=msg) parent_path = folder.path[:folder.path.rfind('/')] if not parent_path: parent_path = "/" download_url = "https://developer.api.bitcasa.com/v1/files/" return template("fileslist", folder=folder, access_token=client.access_token, parent_path=parent_path, download_url=download_url, BitcasaFile=BitcasaFile)
def show_bitcasa_files(): """List files in bitcasa""" authorization_code = request.query.authorization_code is_error = request.query.error is_error = is_error.lower() == "true" bitcasa_utils = BitcasaUtils() if bitcasa_utils.test_auth(): auth_name="View Files" auth_url="/bitcasafilelister/files/" msg = "You access token is stored locally. To retrieve base64 paths click view files below" else: auth_name="Login" auth_url="/bitcasafilelister/auth/" msg = "Your authentication token is either invalid or not set. Please set one by logging in. After authentication, you will also be able to view your files" return template("bitcasafilelister", is_error=is_error, error_msg="", authorization_code=authorization_code, auth_url=auth_url, auth_name=auth_name, msg=msg)
def main(): global log, utils, bitc args = Args() args.parse() log = logger.create("BitcasaFileFetcher", args) from helpers import utils from bitcasadownload import BitcasaDownload from lib import BitcasaUtils from lib.gdrive import GoogleDrive if args.run_level == Args.RUN_LEVEL_MAIN: client = None if not args.args.upload or not args.args.local: bitcasa_utils = BitcasaUtils() if bitcasa_utils.test_auth(): args.args.token = bitcasa_utils.token else: log.error("Bitcasa Access token not set or invalid. Use the following commands to get one.") log.info("python BitcasaFileLister") return client = bitcasa_utils.create_client() if args.args.upload: if args.args.provider == "gdrive": g = GoogleDrive() if not g.test_auth(): log.error("Google Drive Access token not set or invalid. Use the following command to get one.") log.info("python BitcasaFileFetcher oauth --provider gdrive") return log.debug("Initializing download") bitc = BitcasaDownload(args.args, client, should_exit) if should_exit.is_set(): log.info("Exiting") return input_thread = threading.Thread(target=handle_input, name="Handle Exit") input_thread.daemon = True input_thread.start() if args.args.single: bitc.process_single() else: bitc.process() elif args.run_level == Args.RUN_LEVEL_OAUTH: if args.args.provider == "bitcasa": run_server(args.args.nolaunch) elif args.args.provider == "gdrive": g = GoogleDrive() try: g.get_service(True, not args.args.nolaunch) except: log.exception("Error authenticating to Google drive") elif args.run_level == Args.RUN_LEVEL_TEST: if args.args.provider == "bitcasa": bitcasa_utils = BitcasaUtils() if bitcasa_utils.test_auth(): log.info("Connected to Bitcasa successfully") else: log.info("Error connecting to Bitcasa") elif args.args.provider == "gdrive": g = GoogleDrive() if g.test_auth(): log.info("Connected to Google Drive successfully") else: log.info("Error connecting to Google drive") else: log.error("An error occurred processing your command. Please check the syntax and try again") log.info("Done")