diff --git a/cps/config_sql.py b/cps/config_sql.py index 172ec88d..3885bb01 100644 --- a/cps/config_sql.py +++ b/cps/config_sql.py @@ -22,7 +22,7 @@ import os import json import sys -from sqlalchemy import exc, Column, String, Integer, SmallInteger, Boolean, BLOB +from sqlalchemy import exc, Column, String, Integer, SmallInteger, Boolean, BLOB, JSON from sqlalchemy.ext.declarative import declarative_base from . import constants, cli, logger, ub @@ -92,7 +92,7 @@ class _Settings(_Base): config_use_google_drive = Column(Boolean, default=False) config_google_drive_folder = Column(String) - config_google_drive_watch_changes_response = Column(String) + config_google_drive_watch_changes_response = Column(JSON, default={}) config_use_goodreads = Column(Boolean, default=False) config_goodreads_api_key = Column(String) @@ -280,10 +280,6 @@ class _ConfigSQL(object): v = column.default.arg setattr(self, k, v) - if self.config_google_drive_watch_changes_response: - self.config_google_drive_watch_changes_response = \ - json.loads(self.config_google_drive_watch_changes_response) - have_metadata_db = bool(self.config_calibre_dir) if have_metadata_db: if not self.config_use_google_drive: @@ -302,10 +298,6 @@ class _ConfigSQL(object): '''Apply all configuration values to the underlying storage.''' s = self._read_from_storage() # type: _Settings - if self.config_google_drive_watch_changes_response: - self.config_google_drive_watch_changes_response = json.dumps( - self.config_google_drive_watch_changes_response) - for k, v in self.__dict__.items(): if k[0] == '_': continue diff --git a/cps/gdrive.py b/cps/gdrive.py index 466097c9..f882a1f8 100644 --- a/cps/gdrive.py +++ b/cps/gdrive.py @@ -93,8 +93,7 @@ def watch_gdrive(): try: result = gdriveutils.watchChange(gdriveutils.Gdrive.Instance().drive, notification_id, 'web_hook', address, gdrive_watch_callback_token, current_milli_time() + 604800*1000) - # config.config_google_drive_watch_changes_response = json.dumps(result) - # after save(), config_google_drive_watch_changes_response will be a json object, not string + config.config_google_drive_watch_changes_response = result config.save() except HttpError as e: reason=json.loads(e.content)['error']['errors'][0]