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.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.blackberry.driver import BLACKBERRY
from calibre.devices.cybookg3.driver import CYBOOKG3, CYBOOK_OPUS from calibre.devices.cybookg3.driver import CYBOOKG3, CYBOOK_OPUS
from calibre.devices.eb600.driver import EB600, COOL_ER, SHINEBOOK, \ 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.eslick.driver import ESLICK
from calibre.devices.nuut2.driver import NUUT2 from calibre.devices.nuut2.driver import NUUT2
from calibre.devices.iriver.driver import IRIVER_STORY from calibre.devices.iriver.driver import IRIVER_STORY
from calibre.devices.boox.driver import BOOX
from calibre.ebooks.metadata.fetch import GoogleBooks, ISBNDB, Amazon from calibre.ebooks.metadata.fetch import GoogleBooks, ISBNDB, Amazon
plugins = [HTML2ZIP, PML2PMLZ, GoogleBooks, ISBNDB, Amazon] plugins = [HTML2ZIP, PML2PMLZ, GoogleBooks, ISBNDB, Amazon]
@ -455,8 +454,8 @@ plugins += [
TXTOutput, TXTOutput,
] ]
plugins += [ plugins += [
BEBOOK, HANLINV3,
BEBOOK_MINI, HANLINV5,
BLACKBERRY, BLACKBERRY,
CYBOOKG3, CYBOOKG3,
ILIAD, 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' __docformat__ = 'restructuredtext en'
''' '''
Device driver for BeBook Device driver for Hanlin
''' '''
import re import re
from calibre.devices.usbms.driver import USBMS from calibre.devices.usbms.driver import USBMS
class BEBOOK(USBMS): class HANLINV3(USBMS):
name = 'BeBook driver' name = 'Hanlin V3 driver'
gui_name = 'BeBook' gui_name = 'Hanlin V3'
description = _('Communicate with the BeBook eBook reader.') description = _('Communicate with Hanlin V3 eBook readers.')
author = 'Tijmen Ruizendaal' author = 'Tijmen Ruizendaal'
supported_platforms = ['windows', 'osx', 'linux'] supported_platforms = ['windows', 'osx', 'linux']
# Ordered list of supported formats # 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] VENDOR_ID = [0x0525]
PRODUCT_ID = [0x8803, 0x6803] PRODUCT_ID = [0x8803, 0x6803]
@ -34,8 +34,8 @@ class BEBOOK(USBMS):
OSX_MAIN_MEM = 'Linux File-Stor Gadget Media' OSX_MAIN_MEM = 'Linux File-Stor Gadget Media'
OSX_CARD_A_MEM = 'Linux File-Stor Gadget Media' OSX_CARD_A_MEM = 'Linux File-Stor Gadget Media'
MAIN_MEMORY_VOLUME_LABEL = 'BeBook Internal Memory' MAIN_MEMORY_VOLUME_LABEL = 'Hanlin V3 Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'BeBook Storage Card' STORAGE_CARD_VOLUME_LABEL = 'Hanlin V3 Storage Card'
SUPPORTS_SUB_DIRS = True SUPPORTS_SUB_DIRS = True
@ -89,18 +89,40 @@ class BEBOOK(USBMS):
return tuple(drives) return tuple(drives)
class BEBOOK_MINI(BEBOOK): class HANLINV5(HANLINV3):
name = 'BeBook Mini driver' name = 'Hanlin V5 driver'
gui_name = 'BeBook Mini' gui_name = 'Hanlin V5'
description = _('Communicate with the BeBook Mini eBook reader.') description = _('Communicate with Hanlin V5 eBook readers.')
VENDOR_ID = [0x0492] VENDOR_ID = [0x0492]
PRODUCT_ID = [0x8813] PRODUCT_ID = [0x8813]
BCD = [0x319] BCD = [0x319]
OSX_MAIN_MEM = 'BeBook Mini Internal Memory' OSX_MAIN_MEM = 'Hanlin V5 Internal Memory'
OSX_CARD_MEM = 'BeBook Mini Storage Card' OSX_CARD_MEM = 'Hanlin V5 Storage Card'
MAIN_MEMORY_VOLUME_LABEL = 'BeBook Mini Internal Memory' MAIN_MEMORY_VOLUME_LABEL = 'Hanlin V5 Internal Memory'
STORAGE_CARD_VOLUME_LABEL = 'BeBook Mini Storage Card' 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'