mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Global mime mapping for ebook types
This commit is contained in:
parent
a8d7678eed
commit
910e2de034
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user