Dashboard
PHP:
8.2.30
OS:
Linux
User:
dh_nv8b2m
/
/
usr
/
lib
/
python3
/
dist-packages
/
duplicity
/
backends
/
__pycache__
📤 Upload
📝 New File
📁 New Folder
Close
Editing: gdrivebackend.cpython-310.pyc
o ��La�= � @ s~ d dl mZ d dlZd dlZd dlmZ d dlmZ d dlmZ d dl ZG dd� dej j�Zej � de� ej j�dg� dS ) � )�strN)�log)�util)�BackendExceptionc @ s` e Zd ZdZdZdZdd� Zdd� Zdd � Zd d� Z dd � Z dd� Zdd� Zdd� Z dd� ZdS )� GDriveBackendz1Connect to remote store using Google Drive API V3�d i P c C s� t jj�| |� zddlm} ddlm} W n ty* } zt dt |� ��d }~ww i | _i | _i | _ i | _d | _d|jv rYddi| _d|jd d i| _d d i| _ dd i| _n!d|jv rvdd i| _d d i| _ dd i| _|jd d | _nt d��|jd ur�|jd |j }n|j}dtjv r�|�tjd �}|j|kr�t d|j|f ��n�dtjv �rLdtjv �rLddlm} ddlm} d }tj�tjd �r�ttjd d�� } t�| �}W d � n1 s�w Y |r�|j �s<|r�|j!r�|j"r�|�#|� � n!|�$tjd dg�} | j%d |k�rt d| j%d |f ��| �&� }ttjd d��} t�'|| � W d � n 1 �s7w Y |j(|k�rKt d|j(|f ��nt d��|dd|d�| _)| j�rb| jd }n | j�rj| j}nd}|j�*d �}|D ]a} | �s{�qtd!| d" | d# }| j)�+� j,d,|d$d%d&�| j�| j�| j �| j���-� }|�.d'g �}t/|�dk�r�| d(|gd)�}|�0| j� | j)�+� j1d,|d*d+�| j���-� }n|d }|d* }�qt|| _2i | _3d S )-Nr )�build)�CredentialszpGDrive backend requires Google API client installation. Please read the manpage for setup details. Exception: %s�driveID�corpora�drive�driveId�includeItemsFromAllDrivesT�supportsAllDrives�myDriveFolderID�userzVgdrive: backend requires a query paramater should either be driveID or myDriveFolderID�@�GOOGLE_SERVICE_JSON_FILEzGService account email in the JSON file (%s) does not match the URL (%s)�GOOGLE_CLIENT_SECRET_JSON_FILE�GOOGLE_CREDENTIALS_FILE)�InstalledAppFlow)�Request�rbz*https://www.googleapis.com/auth/drive.file� client_idz;Client ID in the JSON file (%s) does not match the URL (%s)�wbzBClient ID in the credentials file (%s) does not match the URL (%s)zxGOOGLE_SERVICE_JSON_FILE or GOOGLE_CLIENT_SECRET_JSON_FILE environment variable not set. Please read the manpage to fix.�v3)�credentials�root�/zname = 'z' and 'zR' in parents and mimeType = 'application/vnd.google-apps.folder' and trashed=false� �files(name,id),nextPageToken)�q�pageSize�fields�filesz"application/vnd.google-apps.folder)�name�mimeType�parents�id)�bodyr# � )4� duplicity�backend�Backend�__init__�googleapiclient.discoveryr �google.oauth2.service_accountr �ImportErrorr r �shared_drive_corpora�shared_drive_id�shared_drive_flags_include�shared_drive_flags_support�shared_root_folder_id� query_args�username�hostname�os�environ�from_service_account_file�service_account_email�google_auth_oauthlib.flowr �google.auth.transport.requestsr �path�exists�open�pickle�load�valid�expired� refresh_token�refresh�from_client_secrets_file� client_config�run_console�dumpr r �splitr$ �list�execute�get�len�update�create�folder�id_cache)�self� parsed_urlr r �er r r r �token�flow�parent_folder_id�folder_names�folder_namer! �results� file_list� file_metadatarT r* r* �B/usr/lib/python3/dist-packages/duplicity/backends/gdrivebackend.pyr. % s� ��� � ����������������������� zGDriveBackend.__init__c C s� ddl m} t�|�}|| jv rs| j| }z7| j�� jd|dd�| j��� � }|d |krK|d sK|d D ]}|| j krJt�d||f � | W S q5W n |ye } z |j jd kr[� W Y d }~nd }~ww t�d ||f � | j|= d|| j f }| j�� jd|dd d�| j�| j�| j�| j��� � }|�dg �} t| �dkr�t�d|f � n"t| �dkr�| d d }| d d | j|<