Code cosmetics
pull/346/head
OzzieIsaacs 7 years ago
parent b6f06658a2
commit b6b73d39c2

@ -20,7 +20,7 @@ def init_cache_busting(app):
app.logger.debug('Computing cache-busting values...') app.logger.debug('Computing cache-busting values...')
# compute file hashes # compute file hashes
for dirpath, dirnames, filenames in os.walk(static_folder): for dirpath, __, filenames in os.walk(static_folder):
for filename in filenames: for filename in filenames:
# compute version component # compute version component
rooted_filename = os.path.join(dirpath, filename) rooted_filename = os.path.join(dirpath, filename)

@ -73,26 +73,27 @@ if not os.path.exists(dbpath):
migrate() migrate()
def getDrive(gauth=None): def getDrive(drive=None, gauth=None):
if not gauth:
gauth = GoogleAuth(settings_file='settings.yaml')
# Try to load saved client credentials
gauth.LoadCredentialsFile("gdrive_credentials")
if gauth.access_token_expired:
# Refresh them if expired
gauth.Refresh()
else:
# Initialize the saved creds
gauth.Authorize()
# Save the current credentials to a file
return GoogleDrive(gauth)
def getEbooksFolder(drive=None):
if not drive: if not drive:
drive = getDrive() if not gauth:
gauth = GoogleAuth(settings_file='settings.yaml')
# Try to load saved client credentials
gauth.LoadCredentialsFile("gdrive_credentials")
if gauth.access_token_expired:
# Refresh them if expired
gauth.Refresh()
else:
# Initialize the saved creds
gauth.Authorize()
# Save the current credentials to a file
return GoogleDrive(gauth)
if drive.auth.access_token_expired: if drive.auth.access_token_expired:
drive.auth.Refresh() drive.auth.Refresh()
return drive
def getEbooksFolder(drive=None):
drive = getDrive(drive)
ebooksFolder = "title = '%s' and 'root' in parents and mimeType = 'application/vnd.google-apps.folder' and trashed = false" % config.config_google_drive_folder ebooksFolder = "title = '%s' and 'root' in parents and mimeType = 'application/vnd.google-apps.folder' and trashed = false" % config.config_google_drive_folder
fileList = drive.ListFile({'q': ebooksFolder}).GetList() fileList = drive.ListFile({'q': ebooksFolder}).GetList()
@ -113,20 +114,14 @@ def getEbooksFolderId(drive=None):
def getFolderInFolder(parentId, folderName, drive=None): def getFolderInFolder(parentId, folderName, drive=None):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
folder = "title = '%s' and '%s' in parents and mimeType = 'application/vnd.google-apps.folder' and trashed = false" % (folderName.replace("'", "\\'"), parentId) folder = "title = '%s' and '%s' in parents and mimeType = 'application/vnd.google-apps.folder' and trashed = false" % (folderName.replace("'", "\\'"), parentId)
fileList = drive.ListFile({'q': folder}).GetList() fileList = drive.ListFile({'q': folder}).GetList()
return fileList[0] return fileList[0]
def getFile(pathId, fileName, drive=None): def getFile(pathId, fileName, drive=None):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
metaDataFile = "'%s' in parents and trashed = false and title = '%s'" % (pathId, fileName.replace("'", "\\'")) metaDataFile = "'%s' in parents and trashed = false and title = '%s'" % (pathId, fileName.replace("'", "\\'"))
fileList = drive.ListFile({'q': metaDataFile}).GetList() fileList = drive.ListFile({'q': metaDataFile}).GetList()
@ -134,10 +129,7 @@ def getFile(pathId, fileName, drive=None):
def getFolderId(path, drive=None): def getFolderId(path, drive=None):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
currentFolderId = getEbooksFolderId(drive) currentFolderId = getEbooksFolderId(drive)
sqlCheckPath = path if path[-1] == '/' else path + '/' sqlCheckPath = path if path[-1] == '/' else path + '/'
storedPathName = session.query(GdriveId).filter(GdriveId.path == sqlCheckPath).first() storedPathName = session.query(GdriveId).filter(GdriveId.path == sqlCheckPath).first()
@ -168,10 +160,7 @@ def getFolderId(path, drive=None):
def getFileFromEbooksFolder(drive, path, fileName): def getFileFromEbooksFolder(drive, path, fileName):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
if path: if path:
# sqlCheckPath=path if path[-1] =='/' else path + '/' # sqlCheckPath=path if path[-1] =='/' else path + '/'
folderId = getFolderId(path, drive) folderId = getFolderId(path, drive)
@ -182,10 +171,7 @@ def getFileFromEbooksFolder(drive, path, fileName):
def copyDriveFileRemote(drive, origin_file_id, copy_title): def copyDriveFileRemote(drive, origin_file_id, copy_title):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
copied_file = {'title': copy_title} copied_file = {'title': copy_title}
try: try:
file_data = drive.auth.service.files().copy( file_data = drive.auth.service.files().copy(
@ -197,19 +183,13 @@ def copyDriveFileRemote(drive, origin_file_id, copy_title):
def downloadFile(drive, path, filename, output): def downloadFile(drive, path, filename, output):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
f = getFileFromEbooksFolder(drive, path, filename) f = getFileFromEbooksFolder(drive, path, filename)
f.GetContentFile(output) f.GetContentFile(output)
def backupCalibreDbAndOptionalDownload(drive, f=None): def backupCalibreDbAndOptionalDownload(drive, f=None):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
metaDataFile = "'%s' in parents and title = 'metadata.db' and trashed = false" % getEbooksFolderId() metaDataFile = "'%s' in parents and title = 'metadata.db' and trashed = false" % getEbooksFolderId()
fileList = drive.ListFile({'q': metaDataFile}).GetList() fileList = drive.ListFile({'q': metaDataFile}).GetList()
@ -221,12 +201,9 @@ def backupCalibreDbAndOptionalDownload(drive, f=None):
def copyToDrive(drive, uploadFile, createRoot, replaceFiles, def copyToDrive(drive, uploadFile, createRoot, replaceFiles,
ignoreFiles=[], ignoreFiles= ignoreFiles or [],
parent=None, prevDir=''): parent=None, prevDir=''):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
isInitial = not bool(parent) isInitial = not bool(parent)
if not parent: if not parent:
parent = getEbooksFolder(drive) parent = getEbooksFolder(drive)
@ -254,10 +231,7 @@ def copyToDrive(drive, uploadFile, createRoot, replaceFiles,
def uploadFileToEbooksFolder(drive, destFile, f): def uploadFileToEbooksFolder(drive, destFile, f):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
parent = getEbooksFolder(drive) parent = getEbooksFolder(drive)
splitDir = destFile.split('/') splitDir = destFile.split('/')
for i, x in enumerate(splitDir): for i, x in enumerate(splitDir):
@ -281,10 +255,7 @@ def uploadFileToEbooksFolder(drive, destFile, f):
def watchChange(drive, channel_id, channel_type, channel_address, def watchChange(drive, channel_id, channel_type, channel_address,
channel_token=None, expiration=None): channel_token=None, expiration=None):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
# Watch for all changes to a user's Drive. # Watch for all changes to a user's Drive.
# Args: # Args:
# service: Drive API service instance. # service: Drive API service instance.
@ -327,10 +298,7 @@ def watchFile(drive, file_id, channel_id, channel_type, channel_address,
Raises: Raises:
apiclient.errors.HttpError: if http request to create channel fails. apiclient.errors.HttpError: if http request to create channel fails.
""" """
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
body = { body = {
'id': channel_id, 'id': channel_id,
@ -353,10 +321,7 @@ def stopChannel(drive, channel_id, resource_id):
Raises: Raises:
apiclient.errors.HttpError: if http request to create channel fails. apiclient.errors.HttpError: if http request to create channel fails.
""" """
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
# service=drive.auth.service # service=drive.auth.service
body = { body = {
'id': channel_id, 'id': channel_id,
@ -366,10 +331,7 @@ def stopChannel(drive, channel_id, resource_id):
def getChangeById (drive, change_id): def getChangeById (drive, change_id):
if not drive: drive = getDrive(drive)
drive = getDrive()
if drive.auth.access_token_expired:
drive.auth.Refresh()
# Print a single Change resource information. # Print a single Change resource information.
# #
# Args: # Args:

@ -3,8 +3,8 @@
* Created by idalin<dalin.lin@gmail.com> * Created by idalin<dalin.lin@gmail.com>
* Google Books api document: https://developers.google.com/books/docs/v1/using * Google Books api document: https://developers.google.com/books/docs/v1/using
* Douban Books api document: https://developers.douban.com/wiki/?title=book_v2 (Chinese Only) * Douban Books api document: https://developers.douban.com/wiki/?title=book_v2 (Chinese Only)
*/ */
/* global _, i18nMsg, tinymce */ /* global _, i18nMsg, tinymce */
var dbResults = []; var dbResults = [];
var ggResults = []; var ggResults = [];

@ -63,13 +63,13 @@ $(function() {
$(".load-more .row").infinitescroll({ $(".load-more .row").infinitescroll({
debug: false, debug: false,
navSelector : ".pagination", navSelector : ".pagination",
// selector for the paged navigation (it will be hidden) // selector for the paged navigation (it will be hidden)
nextSelector : ".pagination a:last", nextSelector : ".pagination a:last",
// selector for the NEXT link (to page 2) // selector for the NEXT link (to page 2)
itemSelector : ".load-more .book", itemSelector : ".load-more .book",
animate : true, animate : true,
extraScrollPx: 300 extraScrollPx: 300
// selector for all items you'll retrieve // selector for all items you'll retrieve
}, function(data) { }, function(data) {
$(".load-more .row").isotope( "appended", $(data), null ); $(".load-more .row").isotope( "appended", $(data), null );
}); });

@ -158,7 +158,7 @@ class Gauth:
@Singleton @Singleton
class Gdrive: class Gdrive:
def __init__(self): def __init__(self):
self.drive = gdriveutils.getDrive(Gauth.Instance().auth) self.drive = gdriveutils.getDrive(gauth=Gauth.Instance().auth)
class ReverseProxied(object): class ReverseProxied(object):
@ -794,7 +794,7 @@ def feed_category(book_id):
off = request.args.get("offset") off = request.args.get("offset")
if not off: if not off:
off = 0 off = 0
entries, random, pagination = fill_indexpage((int(off) / (int(config.config_books_per_page)) + 1), entries, __, pagination = fill_indexpage((int(off) / (int(config.config_books_per_page)) + 1),
db.Books, db.Books.tags.any(db.Tags.id == book_id), db.Books.timestamp.desc()) db.Books, db.Books.tags.any(db.Tags.id == book_id), db.Books.timestamp.desc())
xml = render_title_template('feed.xml', entries=entries, pagination=pagination) xml = render_title_template('feed.xml', entries=entries, pagination=pagination)
response = make_response(xml) response = make_response(xml)
@ -1129,7 +1129,7 @@ def author_list():
@app.route("/author/<int:book_id>/<int:page>'") @app.route("/author/<int:book_id>/<int:page>'")
@login_required_if_no_ano @login_required_if_no_ano
def author(book_id, page): def author(book_id, page):
entries, random, pagination = fill_indexpage(page, db.Books, db.Books.authors.any(db.Authors.id == book_id), entries, __, pagination = fill_indexpage(page, db.Books, db.Books.authors.any(db.Authors.id == book_id),
db.Books.timestamp.desc()) db.Books.timestamp.desc())
if entries is None: if entries is None:
flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error") flash(_(u"Error opening eBook. File does not exist or file is not accessible:"), category="error")
@ -2172,7 +2172,7 @@ def delete_shelf(shelf_id):
if current_user.role_admin(): if current_user.role_admin():
deleted = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).delete() deleted = ub.session.query(ub.Shelf).filter(ub.Shelf.id == shelf_id).delete()
else: else:
if not cur_shelf.is_public and not cur_shelf.user_id == int(current_user.id) \ if (not cur_shelf.is_public and cur_shelf.user_id == int(current_user.id)) \
or (cur_shelf.is_public and current_user.role_edit_shelfs()): or (cur_shelf.is_public and current_user.role_edit_shelfs()):
deleted = ub.session.query(ub.Shelf).filter(ub.or_(ub.and_(ub.Shelf.user_id == int(current_user.id), deleted = ub.session.query(ub.Shelf).filter(ub.or_(ub.and_(ub.Shelf.user_id == int(current_user.id),
ub.Shelf.id == shelf_id), ub.Shelf.id == shelf_id),

Loading…
Cancel
Save