obok.py: first try device, and only if that fails fall back to Desktop progs

This commit is contained in:
Norbert Preining 2015-09-18 09:10:06 +09:00
parent 2db7ee8894
commit fe6074949b

View File

@ -248,29 +248,31 @@ class KoboLibrary(object):
print u"Obok v{0}\nCopyright © 2012-2015 Physisticated et al.".format(__version__) print u"Obok v{0}\nCopyright © 2012-2015 Physisticated et al.".format(__version__)
self.kobodir = '' self.kobodir = ''
kobodb = '' kobodb = ''
if sys.platform.startswith('win'):
if sys.getwindowsversion().major > 5: # - first check whether serials have been found or are provided
self.kobodir = os.environ['LOCALAPPDATA'] # and a device is connected. In this case, use the device
else: # - otherwise fall back to Kobo Desktop Application for Windows and Mac
self.kobodir = os.path.join(os.environ['USERPROFILE'], 'Local Settings', 'Application Data') if (device_path and (len(serials) > 0)):
self.kobodir = os.path.join(self.kobodir, 'Kobo', 'Kobo Desktop Edition') self.kobodir = os.path.join(device_path, '.kobo')
elif sys.platform.startswith('darwin'): # devices use KoboReader.sqlite
self.kobodir = os.path.join(os.environ['HOME'], 'Library', 'Application Support', 'Kobo', 'Kobo Desktop Edition') kobodb = os.path.join(self.kobodir, 'KoboReader.sqlite')
# desktop versions use Kobo.sqlite if (not(os.path.exists(kobodb))):
kobodb = os.path.join(self.kobodir, 'Kobo.sqlite') # give up here, we haven't found anything useful
if (self.kobodir == '' or not(os.path.exists(kobodb))): self.kobodir = ''
# kobodb is either not set or not an existing file, that means that either: kobodb = ''
# . windows or mac: desktop app is not installed
# . linux if (self.kobodir == ''):
# we check for a connected device and try to set up kobodir and kobodb from there # we haven't found a device with serials, so try desktop apps
if (device_path): if sys.platform.startswith('win'):
self.kobodir = os.path.join(device_path, '.kobo') if sys.getwindowsversion().major > 5:
# devices use KoboReader.sqlite self.kobodir = os.environ['LOCALAPPDATA']
kobodb = os.path.join(self.kobodir, 'KoboReader.sqlite') else:
if (not(os.path.exists(kobodb))): self.kobodir = os.path.join(os.environ['USERPROFILE'], 'Local Settings', 'Application Data')
# give up here, we haven't found anything useful self.kobodir = os.path.join(self.kobodir, 'Kobo', 'Kobo Desktop Edition')
self.kobodir = '' elif sys.platform.startswith('darwin'):
kobodb = '' self.kobodir = os.path.join(os.environ['HOME'], 'Library', 'Application Support', 'Kobo', 'Kobo Desktop Edition')
# desktop versions use Kobo.sqlite
kobodb = os.path.join(self.kobodir, 'Kobo.sqlite')
if (self.kobodir != ''): if (self.kobodir != ''):
self.bookdir = os.path.join(self.kobodir, 'kepub') self.bookdir = os.path.join(self.kobodir, 'kepub')