Global mime mapping for ebook types

This commit is contained in:
John Schember 2009-01-11 19:34:44 -05:00
parent a8d7678eed
commit 910e2de034
3 changed files with 10 additions and 22 deletions

View File

@ -9,16 +9,9 @@ import os, fnmatch
from calibre.devices.usbms.driver import USBMS from calibre.devices.usbms.driver import USBMS
class CYBOOKG3(USBMS): class CYBOOKG3(USBMS):
MIME_MAP = {
'mobi' : 'application/mobi',
'prc' : 'application/prc',
'html' : 'application/html',
'pdf' : 'application/pdf',
'rtf' : 'application/rtf',
'txt' : 'text/plain',
}
# Ordered list of supported formats # Ordered list of supported formats
FORMATS = MIME_MAP.keys() # Be sure these have an entry in calibre.devices.mime
FORMATS = ['mobi', 'prc', 'html', 'pdf', 'rtf', 'txt']
VENDOR_ID = 0x0bda VENDOR_ID = 0x0bda
PRODUCT_ID = 0x0703 PRODUCT_ID = 0x0703

View File

@ -9,14 +9,8 @@ import os, fnmatch
from calibre.devices.usbms.driver import USBMS from calibre.devices.usbms.driver import USBMS
class KINDLE(USBMS): class KINDLE(USBMS):
MIME_MAP = {
'azw' : 'application/azw',
'mobi' : 'application/mobi',
'prc' : 'application/prc',
'txt' : 'text/plain',
}
# Ordered list of supported formats # Ordered list of supported formats
FORMATS = MIME_MAP.keys() FORMATS = ['azw', 'mobi', 'prc', 'txt']
VENDOR_ID = 0x1949 VENDOR_ID = 0x1949
PRODUCT_ID = 0x0001 PRODUCT_ID = 0x0001

View File

@ -12,11 +12,11 @@ from itertools import cycle
from calibre.devices.usbms.device import Device from calibre.devices.usbms.device import Device
from calibre.devices.usbms.books import BookList, Book from calibre.devices.usbms.books import BookList, Book
from calibre.devices.errors import FreeSpaceError from calibre.devices.errors import FreeSpaceError
from calibre.devices.mime import MIME_MAP
class USBMS(Device): class USBMS(Device):
EBOOK_DIR_MAIN = '' EBOOK_DIR_MAIN = ''
EBOOK_DIR_CARD = '' EBOOK_DIR_CARD = ''
MIME_MAP = {}
FORMATS = [] FORMATS = []
def __init__(self, key='-1', log_packets=False, report_progress=None): def __init__(self, key='-1', log_packets=False, report_progress=None):
@ -41,7 +41,7 @@ class USBMS(Device):
# Get all books in all directories under the root ebook_dir directory # Get all books in all directories under the root ebook_dir directory
for path, dirs, files in os.walk(os.path.join(prefix, ebook_dir)): for path, dirs, files in os.walk(os.path.join(prefix, ebook_dir)):
# Filter out anything that isn't in the list of supported ebook types # Filter out anything that isn't in the list of supported ebook types
for book_type in self.MIME_MAP.keys(): for book_type in self.FORMATS:
for filename in fnmatch.filter(files, '*.%s' % (book_type)): for filename in fnmatch.filter(files, '*.%s' % (book_type)):
title, author, mime = self.__class__.extract_book_metadata_by_filename(filename) title, author, mime = self.__class__.extract_book_metadata_by_filename(filename)
@ -138,10 +138,11 @@ class USBMS(Device):
else: else:
book_title = os.path.splitext(filename)[0].replace('_', ' ') book_title = os.path.splitext(filename)[0].replace('_', ' ')
fileext = os.path.splitext(filename)[1] fileext = os.path.splitext(filename)[1][1:]
if fileext in cls.MIME_MAP.keys():
book_mime = cls.MIME_MAP[fileext] if fileext in cls.FORMATS:
book_mime = MIME_MAP[fileext] if fileext in MIME_MAP.keys() else 'Unknown'
return book_title, book_author, book_mime return book_title, book_author, book_mime
# ls, rm, cp, mkdir, touch, cat # ls, rm, cp, mkdir, touch, cat