GitIgnore update + fixes for initial setup

This commit is contained in:
Jack Darlington 2017-02-22 22:06:59 +00:00
parent 6d30382ae0
commit 7b709c15c2
5 changed files with 15 additions and 7 deletions

3
.gitignore vendored
View File

@ -23,3 +23,6 @@ cps/static/[0-9]*
*.bak *.bak
*.log.* *.log.*
tags tags
settings.yaml
gdrive_credentials

View File

@ -274,6 +274,8 @@ def setup_db():
return False return False
dbpath = os.path.join(config.config_calibre_dir, "metadata.db") dbpath = os.path.join(config.config_calibre_dir, "metadata.db")
if not os.path.exists(dbpath):
return False
engine = create_engine('sqlite:///{0}'.format(dbpath.encode('utf-8')), echo=False) engine = create_engine('sqlite:///{0}'.format(dbpath.encode('utf-8')), echo=False)
try: try:
conn = engine.connect() conn = engine.connect()

View File

@ -204,9 +204,9 @@ def copyToDrive(drive, uploadFile, createRoot, replaceFiles,
if os.path.basename(uploadFile) not in ignoreFiles: if os.path.basename(uploadFile) not in ignoreFiles:
existingFiles=drive.ListFile({'q' : "title = '%s' and '%s' in parents and trashed = false" % (os.path.basename(uploadFile), parent['id'])}).GetList() existingFiles=drive.ListFile({'q' : "title = '%s' and '%s' in parents and trashed = false" % (os.path.basename(uploadFile), parent['id'])}).GetList()
if len(existingFiles) > 0: if len(existingFiles) > 0:
driveFile = drive.CreateFile({'title': os.path.basename(uploadFile), 'parents' : [{"kind": "drive#fileLink", 'id' : parent['id']}], })
else:
driveFile=existingFiles[0] driveFile=existingFiles[0]
else:
driveFile = drive.CreateFile({'title': os.path.basename(uploadFile), 'parents' : [{"kind": "drive#fileLink", 'id' : parent['id']}], })
driveFile.SetContentFile(os.path.join(prevDir,uploadFile)) driveFile.SetContentFile(os.path.join(prevDir,uploadFile))
driveFile.Upload() driveFile.Upload()

View File

@ -312,7 +312,7 @@ class Config:
else: else:
self.config_google_drive_watch_changes_response=None self.config_google_drive_watch_changes_response=None
if self.config_calibre_dir is not None: if (self.config_calibre_dir is not None and not self.config_use_google_drive) or os.path.exists(self.config_calibre_dir + '/metadata.db'):
self.db_configured = True self.db_configured = True
else: else:
self.db_configured = False self.db_configured = False

View File

@ -43,6 +43,7 @@ import re
import db import db
from shutil import move, copyfile from shutil import move, copyfile
from tornado.ioloop import IOLoop from tornado.ioloop import IOLoop
import shutil
import StringIO import StringIO
from shutil import move from shutil import move
import gdriveutils import gdriveutils
@ -198,6 +199,9 @@ lm.anonymous_user = ub.Anonymous
app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT' app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
db.setup_db() db.setup_db()
def is_gdrive_ready():
return os.path.exists('settings.yaml') and os.path.exists('gdrive_credentials')
@babel.localeselector @babel.localeselector
def get_locale(): def get_locale():
# if a user is logged in, use the locale from the user settings # if a user is logged in, use the locale from the user settings
@ -1889,17 +1893,14 @@ def configuration_helper(origin):
if content.config_google_drive_client_id != to_save["config_google_drive_client_id"]: if content.config_google_drive_client_id != to_save["config_google_drive_client_id"]:
content.config_google_drive_client_id = to_save["config_google_drive_client_id"] content.config_google_drive_client_id = to_save["config_google_drive_client_id"]
create_new_yaml=True create_new_yaml=True
db_change = True
if "config_google_drive_client_secret" in to_save: if "config_google_drive_client_secret" in to_save:
if content.config_google_drive_client_secret != to_save["config_google_drive_client_secret"]: if content.config_google_drive_client_secret != to_save["config_google_drive_client_secret"]:
content.config_google_drive_client_secret = to_save["config_google_drive_client_secret"] content.config_google_drive_client_secret = to_save["config_google_drive_client_secret"]
create_new_yaml=True create_new_yaml=True
db_change = True
if "config_google_drive_calibre_url_base" in to_save: if "config_google_drive_calibre_url_base" in to_save:
if content.config_google_drive_calibre_url_base != to_save["config_google_drive_calibre_url_base"]: if content.config_google_drive_calibre_url_base != to_save["config_google_drive_calibre_url_base"]:
content.config_google_drive_calibre_url_base = to_save["config_google_drive_calibre_url_base"] content.config_google_drive_calibre_url_base = to_save["config_google_drive_calibre_url_base"]
create_new_yaml=True create_new_yaml=True
db_change = True
if ("config_use_google_drive" in to_save and not content.config_use_google_drive) or ("config_use_google_drive" not in to_save and content.config_use_google_drive): if ("config_use_google_drive" in to_save and not content.config_use_google_drive) or ("config_use_google_drive" not in to_save and content.config_use_google_drive):
content.config_use_google_drive = "config_use_google_drive" in to_save content.config_use_google_drive = "config_use_google_drive" in to_save
db_change = True db_change = True
@ -1953,6 +1954,8 @@ def configuration_helper(origin):
if "passwd_role" in to_save: if "passwd_role" in to_save:
content.config_default_role = content.config_default_role + ub.ROLE_PASSWD content.config_default_role = content.config_default_role + ub.ROLE_PASSWD
try: try:
if content.config_use_google_drive and is_gdrive_ready() and not os.path.exists(config.config_calibre_dir + "/metadata.db"):
gdriveutils.downloadFile(Gdrive.Instance().drive, None, "metadata.db", config.config_calibre_dir + "/metadata.db")
if db_change: if db_change:
if config.db_configured: if config.db_configured:
db.session.close() db.session.close()
@ -1984,7 +1987,7 @@ def configuration_helper(origin):
if origin: if origin:
success = True success = True
return render_title_template("config_edit.html", origin=origin, success=success, content=config, return render_title_template("config_edit.html", origin=origin, success=success, content=config,
show_authenticate_google_drive=not os.path.exists('settings.yaml') or not os.path.exists('gdrive_credentials'), show_authenticate_google_drive=not is_gdrive_ready(),
title=_(u"Basic Configuration")) title=_(u"Basic Configuration"))