Exemple #1
0
def init_firebase_client(CRYPTO_TOKEN_PATH):
    global log
    if log is None:
        log = logging.Logger(__file__, CRYPTO_TOKEN_PATH)
    log.info("Setting up Firebase client")
    firebase_cred = credentials.Certificate(CRYPTO_TOKEN_PATH)
    firebase_admin.initialize_app(firebase_cred)
    global firebase_client
    if firebase_client is None:
        firebase_client = firestore.client()
    log.info("Done")
    return firebase_client
Exemple #2
0
if __name__ == '__main__':
    if (len(sys.argv) != 4):
        print(
            "Usage python add_to_firebase.py crypto_token suggested_replies|message_tags|conversation_tags input_path"
        )
        print(
            "Adds data items that don't currently exist, and overwrittes items that already exist."
        )
        exit(1)

    CRYPTO_TOKEN_PATH = sys.argv[1]
    CONTENT_TYPE = sys.argv[2]
    INPUT_PATH = sys.argv[3]

    log = logging.Logger(__file__, CRYPTO_TOKEN_PATH)

    firebase_client = firebase_util.init_firebase_client(CRYPTO_TOKEN_PATH)

    valid_content_type = [
        "suggested_replies", "message_tags", "conversation_tags"
    ]
    if CONTENT_TYPE not in valid_content_type:
        log.error("Content type '{}' not known, expected one of {}".format(
            CONTENT_TYPE, valid_content_type))
        exit(1)

    with open(INPUT_PATH, 'r') as f:
        data_dict = json.load(f)

    if CONTENT_TYPE == "suggested_replies":
Exemple #3
0
def get_dir_size_in_mb(dirpath):
    dir_size = 0
    for (path, dirs, files) in os.walk(dirpath):
        for file in files:
            filename = os.path.join(path, file)
            dir_size += os.path.getsize(filename)
    return round((dir_size / (1024 * 1024)), 1)


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description="Monitor size of a directory")
    parser.add_argument("crypto_token_file",
                        type=str,
                        help="path to Firebase crypto token file")
    parser.add_argument("project", type=str, help="name of the project")
    parser.add_argument("dirpath",
                        type=str,
                        help="path of directory to monitor")
    args = parser.parse_args()

    dirpath = os.path.abspath(args.dirpath)
    project = args.project

    log = logging.Logger(__file__, args.crypto_token_file)
    firebase_client = init_firebase_client(args.crypto_token_file)

    while True:
        get_size_and_upload(dirpath, project)
        time.sleep(DEFAULT_INTERVAL)