# -*- coding: utf-8 -*- # # Copyright (c) 2013-2019 Pawel Jastrzebski # # Permission to use, copy, modify, and/or distribute this software for # any purpose with or without fee is hereby granted, provided that the # above copyright notice and this permission notice appear in all # copies. # # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL # WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE # AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL # DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA # OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER # TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. import os.path import psutil class Kindle: def __init__(self): self.path = self.findDevice() if self.path: self.coverSupport = self.checkThumbnails() else: self.coverSupport = False def findDevice(self): for drive in reversed(psutil.disk_partitions(False)): if (drive[2] == 'FAT32' and drive[3] == 'rw,removable') or \ (drive[2] == 'vfat' and 'rw' in drive[3]) or \ (drive[2] == 'msdos' and 'rw' in drive[3]): if os.path.isdir(os.path.join(drive[1], 'system')) and \ os.path.isdir(os.path.join(drive[1], 'documents')): return drive[1] return False def checkThumbnails(self): if os.path.isdir(os.path.join(self.path, 'system', 'thumbnails')): return True return False