Rename BeBook driver to Hanlin to avoid confustion as it supports the EZReader, and LBook in addition to the BeBook. Move Boox and have it subclass Hanlin driver as it uses 90% of the Hanlin driver's code.

This commit is contained in:
John Schember 2009-12-26 19:02:32 -05:00
parent 95c298b5af
commit e9c01f2226
5 changed files with 41 additions and 107 deletions

View File

@ -400,7 +400,7 @@ from calibre.ebooks.txt.output import TXTOutput
from calibre.customize.profiles import input_profiles, output_profiles
from calibre.devices.bebook.driver import BEBOOK, BEBOOK_MINI
from calibre.devices.hanlin.driver import HANLINV3, HANLINV5, BOOX
from calibre.devices.blackberry.driver import BLACKBERRY
from calibre.devices.cybookg3.driver import CYBOOKG3, CYBOOK_OPUS
from calibre.devices.eb600.driver import EB600, COOL_ER, SHINEBOOK, \
@ -417,7 +417,6 @@ from calibre.devices.nokia.driver import N770, N810
from calibre.devices.eslick.driver import ESLICK
from calibre.devices.nuut2.driver import NUUT2
from calibre.devices.iriver.driver import IRIVER_STORY
from calibre.devices.boox.driver import BOOX
from calibre.ebooks.metadata.fetch import GoogleBooks, ISBNDB, Amazon
plugins = [HTML2ZIP, PML2PMLZ, GoogleBooks, ISBNDB, Amazon]
@ -455,8 +454,8 @@ plugins += [
TXTOutput,
]
plugins += [
BEBOOK,
BEBOOK_MINI,
HANLINV3,
HANLINV5,
BLACKBERRY,
CYBOOKG3,
ILIAD,

View File

@ -1,87 +0,0 @@
__license__ = 'GPL v3'
__copyright__ = '2009, Jesus Manuel Marinho Valcarce <jjjesss at gmail.com>'
__docformat__ = 'restructuredtext en'
'''
Device driver for BOOX
'''
import re
from calibre.devices.usbms.driver import USBMS
class BOOX(USBMS):
name = 'BOOX driver'
gui_name = 'BOOX'
description = _('Communicate with the BOOX eBook reader.')
author = 'Jesus Manuel Marinho Valcarce'
supported_platforms = ['windows', 'osx', 'linux']
# Ordered list of supported formats
FORMATS = ['ebub', 'pdf', 'html', 'txt', 'rtf', 'mobi', 'prc', 'chm']
VENDOR_ID = [0x0525]
PRODUCT_ID = [0xa4a5]
BCD = [0x322]
VENDOR_NAME = 'Linux 2.6.26-466-ga04670e with fsl-usb2-udc'
WINDOWS_MAIN_MEM = 'FILE-STOR_GADGET'
WINDOWS_CARD_A_MEM = 'FILE-STOR_GADGET'
OSX_MAIN_MEM = 'Linux File-Stor Gadget Media'
OSX_CARD_A_MEM = 'Linux File-Stor Gadget Media'
MAIN_MEMORY_VOLUME_LABEL = 'BOOX Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'BOOX Storage Card'
EBOOK_DIR_MAIN = 'MyBooks'
EBOOK_DIR_CARD_A = 'MyBooks'
SUPPORTS_SUB_DIRS = True
def windows_sort_drives(self, drives):
main = drives.get('main', None)
card = drives.get('carda', None)
if card and main and card > main:
drives['main'] = card
drives['carda'] = main
if card and not main:
drives['main'] = card
drives['carda'] = None
return drives
def osx_sort_names(self, names):
main = names.get('main', None)
card = names.get('carda', None)
try:
main_num = int(re.findall('\d+', main)[0]) if main else None
except:
main_num = None
try:
card_num = int(re.findall('\d+', card)[0]) if card else None
except:
card_num = None
if card_num is not None and main_num is not None and card_num > main_num:
names['main'] = card
names['carda'] = main
if card and not main:
names['main'] = card
names['carda'] = None
return names
def linux_swap_drives(self, drives):
if len(drives) < 2: return drives
drives = list(drives)
t = drives[0]
drives[0] = drives[1]
drives[1] = t
return tuple(drives)

View File

@ -5,23 +5,23 @@ __copyright__ = '2009, Tijmen Ruizendaal <tijmen at mybebook.com>'
__docformat__ = 'restructuredtext en'
'''
Device driver for BeBook
Device driver for Hanlin
'''
import re
from calibre.devices.usbms.driver import USBMS
class BEBOOK(USBMS):
class HANLINV3(USBMS):
name = 'BeBook driver'
gui_name = 'BeBook'
description = _('Communicate with the BeBook eBook reader.')
name = 'Hanlin V3 driver'
gui_name = 'Hanlin V3'
description = _('Communicate with Hanlin V3 eBook readers.')
author = 'Tijmen Ruizendaal'
supported_platforms = ['windows', 'osx', 'linux']
# Ordered list of supported formats
FORMATS = ['mobi', 'epub', 'fb2', 'lit', 'prc', 'pdf', 'rtf', 'txt']
FORMATS = ['epub', 'mobi', 'fb2', 'lit', 'prc', 'pdf', 'rtf', 'txt']
VENDOR_ID = [0x0525]
PRODUCT_ID = [0x8803, 0x6803]
@ -34,8 +34,8 @@ class BEBOOK(USBMS):
OSX_MAIN_MEM = 'Linux File-Stor Gadget Media'
OSX_CARD_A_MEM = 'Linux File-Stor Gadget Media'
MAIN_MEMORY_VOLUME_LABEL = 'BeBook Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'BeBook Storage Card'
MAIN_MEMORY_VOLUME_LABEL = 'Hanlin V3 Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'Hanlin V3 Storage Card'
SUPPORTS_SUB_DIRS = True
@ -89,18 +89,40 @@ class BEBOOK(USBMS):
return tuple(drives)
class BEBOOK_MINI(BEBOOK):
name = 'BeBook Mini driver'
gui_name = 'BeBook Mini'
description = _('Communicate with the BeBook Mini eBook reader.')
class HANLINV5(HANLINV3):
name = 'Hanlin V5 driver'
gui_name = 'Hanlin V5'
description = _('Communicate with Hanlin V5 eBook readers.')
VENDOR_ID = [0x0492]
PRODUCT_ID = [0x8813]
BCD = [0x319]
OSX_MAIN_MEM = 'BeBook Mini Internal Memory'
OSX_CARD_MEM = 'BeBook Mini Storage Card'
OSX_MAIN_MEM = 'Hanlin V5 Internal Memory'
OSX_CARD_MEM = 'Hanlin V5 Storage Card'
MAIN_MEMORY_VOLUME_LABEL = 'BeBook Mini Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'BeBook Mini Storage Card'
MAIN_MEMORY_VOLUME_LABEL = 'Hanlin V5 Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'Hanlin V5 Storage Card'
class BOOX(HANLINV3):
name = 'BOOX driver'
gui_name = 'BOOX'
description = _('Communicate with the BOOX eBook reader.')
author = 'Jesus Manuel Marinho Valcarce'
supported_platforms = ['windows', 'osx', 'linux']
# Ordered list of supported formats
FORMATS = ['ebub', 'pdf', 'html', 'txt', 'rtf', 'mobi', 'prc', 'chm']
VENDOR_ID = [0x0525]
PRODUCT_ID = [0xa4a5]
BCD = [0x322]
MAIN_MEMORY_VOLUME_LABEL = 'BOOX Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'BOOX Storage Card'
EBOOK_DIR_MAIN = 'MyBooks'
EBOOK_DIR_CARD_A = 'MyBooks'