|
|
|
@ -257,7 +257,12 @@ def getEbooksFolderId(drive=None):
|
|
|
|
|
log.error('Error gDrive, root ID not found')
|
|
|
|
|
gDriveId.path = '/'
|
|
|
|
|
session.merge(gDriveId)
|
|
|
|
|
try:
|
|
|
|
|
session.commit()
|
|
|
|
|
except OperationalError as ex:
|
|
|
|
|
log.error("gdrive.db DB is not Writeable")
|
|
|
|
|
log.debug('Database error: %s', ex)
|
|
|
|
|
session.rollback()
|
|
|
|
|
return gDriveId.gdrive_id
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -272,6 +277,7 @@ def getFile(pathId, fileName, drive):
|
|
|
|
|
|
|
|
|
|
def getFolderId(path, drive):
|
|
|
|
|
# drive = getDrive(drive)
|
|
|
|
|
try:
|
|
|
|
|
currentFolderId = getEbooksFolderId(drive)
|
|
|
|
|
sqlCheckPath = path if path[-1] == '/' else path + '/'
|
|
|
|
|
storedPathName = session.query(GdriveId).filter(GdriveId.path == sqlCheckPath).first()
|
|
|
|
@ -303,6 +309,10 @@ def getFolderId(path, drive):
|
|
|
|
|
session.commit()
|
|
|
|
|
else:
|
|
|
|
|
currentFolderId = storedPathName.gdrive_id
|
|
|
|
|
except OperationalError as ex:
|
|
|
|
|
log.error("gdrive.db DB is not Writeable")
|
|
|
|
|
log.debug('Database error: %s', ex)
|
|
|
|
|
session.rollback()
|
|
|
|
|
return currentFolderId
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -346,7 +356,7 @@ def moveGdriveFolderRemote(origin_file, target_folder):
|
|
|
|
|
addParents=gFileTargetDir['id'],
|
|
|
|
|
removeParents=previous_parents,
|
|
|
|
|
fields='id, parents').execute()
|
|
|
|
|
# if previous_parents has no childs anymore, delete original fileparent
|
|
|
|
|
# if previous_parents has no children anymore, delete original fileparent
|
|
|
|
|
if len(children['items']) == 1:
|
|
|
|
|
deleteDatabaseEntry(previous_parents)
|
|
|
|
|
drive.auth.service.files().delete(fileId=previous_parents).execute()
|
|
|
|
@ -507,9 +517,10 @@ def deleteDatabaseOnChange():
|
|
|
|
|
try:
|
|
|
|
|
session.query(GdriveId).delete()
|
|
|
|
|
session.commit()
|
|
|
|
|
except (OperationalError, InvalidRequestError):
|
|
|
|
|
except (OperationalError, InvalidRequestError) as ex:
|
|
|
|
|
session.rollback()
|
|
|
|
|
log.info(u"GDrive DB is not Writeable")
|
|
|
|
|
log.debug('Database error: %s', ex)
|
|
|
|
|
log.error(u"GDrive DB is not Writeable")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def updateGdriveCalibreFromLocal():
|
|
|
|
@ -524,13 +535,23 @@ def updateDatabaseOnEdit(ID,newPath):
|
|
|
|
|
storedPathName = session.query(GdriveId).filter(GdriveId.gdrive_id == ID).first()
|
|
|
|
|
if storedPathName:
|
|
|
|
|
storedPathName.path = sqlCheckPath
|
|
|
|
|
try:
|
|
|
|
|
session.commit()
|
|
|
|
|
except OperationalError as ex:
|
|
|
|
|
log.error("gdrive.db DB is not Writeable")
|
|
|
|
|
log.debug('Database error: %s', ex)
|
|
|
|
|
session.rollback()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Deletes the hashes in database of deleted book
|
|
|
|
|
def deleteDatabaseEntry(ID):
|
|
|
|
|
session.query(GdriveId).filter(GdriveId.gdrive_id == ID).delete()
|
|
|
|
|
try:
|
|
|
|
|
session.commit()
|
|
|
|
|
except OperationalError as ex:
|
|
|
|
|
log.error("gdrive.db DB is not Writeable")
|
|
|
|
|
log.debug('Database error: %s', ex)
|
|
|
|
|
session.rollback()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Gets cover file from gdrive
|
|
|
|
@ -547,7 +568,12 @@ def get_cover_via_gdrive(cover_path):
|
|
|
|
|
permissionAdded = PermissionAdded()
|
|
|
|
|
permissionAdded.gdrive_id = df['id']
|
|
|
|
|
session.add(permissionAdded)
|
|
|
|
|
try:
|
|
|
|
|
session.commit()
|
|
|
|
|
except OperationalError as ex:
|
|
|
|
|
log.error("gdrive.db DB is not Writeable")
|
|
|
|
|
log.debug('Database error: %s', ex)
|
|
|
|
|
session.rollback()
|
|
|
|
|
return df.metadata.get('webContentLink')
|
|
|
|
|
else:
|
|
|
|
|
return None
|
|
|
|
|