~ubuntu-branches/ubuntu/karmic/calibre/karmic

« back to all changes in this revision

Viewing changes to src/calibre/customize/builtins.py

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-07-30 12:49:41 UTC
  • mfrom: (1.3.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090730124941-qjdsmri25zt8zocn
Tags: 0.6.3+dfsg-0ubuntu1
* New upstream release. Please see http://calibre.kovidgoyal.net/new_in_6/
  for the list of new features and changes.
* remove_postinstall.patch: Update for new version.
* build_debug.patch: Does not apply any more, disable for now. Might not be
  necessary any more.
* debian/copyright: Fix reference to versionless GPL.
* debian/rules: Drop obsolete dh_desktop call.
* debian/rules: Add workaround for weird Python 2.6 setuptools behaviour of
  putting compiled .so files into src/calibre/plugins/calibre/plugins
  instead of src/calibre/plugins.
* debian/rules: Drop hal fdi moving, new upstream version does not use hal
  any more. Drop hal dependency, too.
* debian/rules: Install udev rules into /lib/udev/rules.d.
* Add debian/calibre.preinst: Remove unmodified
  /etc/udev/rules.d/95-calibre.rules on upgrade.
* debian/control: Bump Python dependencies to 2.6, since upstream needs
  it now.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from __future__ import with_statement
2
1
__license__   = 'GPL v3'
3
2
__copyright__ = '2008, Kovid Goyal <kovid at kovidgoyal.net>'
4
3
 
5
 
import textwrap, os
 
4
import textwrap
 
5
import os
 
6
import glob
6
7
from calibre.customize import FileTypePlugin, MetadataReaderPlugin, MetadataWriterPlugin
7
 
from calibre.constants import __version__
 
8
from calibre.constants import numeric_version
8
9
 
9
10
class HTML2ZIP(FileTypePlugin):
10
11
    name = 'HTML to ZIP'
14
15
file containing all linked files. This plugin is run \
15
16
every time you add an HTML file to the library.\
16
17
'''))
17
 
    version = tuple(map(int, (__version__.split('.'))[:3]))
18
 
    file_types = set(['html', 'htm', 'xhtml', 'xhtm'])
 
18
    version = numeric_version
 
19
    file_types = set(['html', 'htm', 'xhtml', 'xhtm', 'shtm', 'shtml'])
19
20
    supported_platforms = ['windows', 'osx', 'linux']
20
21
    on_import = True
21
 
    
 
22
 
22
23
    def run(self, htmlfile):
23
 
        of = self.temporary_file('_plugin_html2zip.zip')
24
 
        from calibre.ebooks.html import gui_main as html2oeb
25
 
        html2oeb(htmlfile, of)
 
24
        from calibre.ptempfile import TemporaryDirectory
 
25
        from calibre.gui2.convert.gui_conversion import gui_convert
 
26
        from calibre.customize.conversion import OptionRecommendation
 
27
        from calibre.ebooks.epub import initialize_container
 
28
 
 
29
        with TemporaryDirectory('_plugin_html2zip') as tdir:
 
30
            recs =[('debug_input', tdir, OptionRecommendation.HIGH)]
 
31
            if self.site_customization and self.site_customization.strip():
 
32
                recs.append(['input_encoding', self.site_customization.strip(),
 
33
                    OptionRecommendation.HIGH])
 
34
            gui_convert(htmlfile, tdir, recs)
 
35
            of = self.temporary_file('_plugin_html2zip.zip')
 
36
            opf = glob.glob(os.path.join(tdir, '*.opf'))[0]
 
37
            ncx = glob.glob(os.path.join(tdir, '*.ncx'))
 
38
            if ncx:
 
39
                os.remove(ncx[0])
 
40
            epub = initialize_container(of.name, os.path.basename(opf))
 
41
            epub.add_dir(tdir)
 
42
            epub.close()
 
43
 
26
44
        return of.name
27
45
 
28
 
class OPFMetadataReader(MetadataReaderPlugin):
29
 
    
30
 
    name        = 'Read OPF metadata'
31
 
    file_types  = set(['opf'])
32
 
    description = _('Read metadata from %s files')%'OPF'
33
 
    
 
46
    def customization_help(self, gui=False):
 
47
        return _('Character encoding for the input HTML files. Common choices '
 
48
        'include: cp1252, latin1, iso-8859-1 and utf-8.')
 
49
 
 
50
 
 
51
class ComicMetadataReader(MetadataReaderPlugin):
 
52
 
 
53
    name = 'Read comic metadata'
 
54
    file_types = set(['cbr', 'cbz'])
 
55
    description = _('Extract cover from comic files')
 
56
 
34
57
    def get_metadata(self, stream, ftype):
35
 
        from calibre.ebooks.metadata.opf2 import OPF
 
58
        if ftype == 'cbr':
 
59
            from calibre.libunrar import extract_member as extract_first
 
60
            extract_first
 
61
        else:
 
62
            from calibre.libunzip import extract_member as extract_first
36
63
        from calibre.ebooks.metadata import MetaInformation
37
 
        return MetaInformation(OPF(stream, os.getcwd()))
38
 
 
39
 
class RTFMetadataReader(MetadataReaderPlugin):
40
 
    
41
 
    name        = 'Read RTF metadata' 
42
 
    file_types  = set(['rtf'])
43
 
    description = _('Read metadata from %s files')%'RTF'
44
 
    
 
64
        ret = extract_first(stream)
 
65
        mi = MetaInformation(None, None)
 
66
        if ret is not None:
 
67
            path, data = ret
 
68
            ext = os.path.splitext(path)[1][1:]
 
69
            mi.cover_data = (ext.lower(), data)
 
70
        return mi
 
71
 
 
72
class EPUBMetadataReader(MetadataReaderPlugin):
 
73
 
 
74
    name        = 'Read EPUB metadata'
 
75
    file_types  = set(['epub'])
 
76
    description = _('Read metadata from %s files')%'EPUB'
 
77
 
45
78
    def get_metadata(self, stream, ftype):
46
 
        from calibre.ebooks.metadata.rtf import get_metadata
 
79
        from calibre.ebooks.metadata.epub import get_metadata
47
80
        return get_metadata(stream)
48
81
 
49
82
class FB2MetadataReader(MetadataReaderPlugin):
50
 
    
 
83
 
51
84
    name        = 'Read FB2 metadata'
52
85
    file_types  = set(['fb2'])
53
86
    description = _('Read metadata from %s files')%'FB2'
54
 
    
 
87
 
55
88
    def get_metadata(self, stream, ftype):
56
89
        from calibre.ebooks.metadata.fb2 import get_metadata
57
90
        return get_metadata(stream)
58
91
 
 
92
class HTMLMetadataReader(MetadataReaderPlugin):
 
93
 
 
94
    name        = 'Read HTML metadata'
 
95
    file_types  = set(['html'])
 
96
    description = _('Read metadata from %s files')%'HTML'
 
97
 
 
98
    def get_metadata(self, stream, ftype):
 
99
        from calibre.ebooks.metadata.html import get_metadata
 
100
        return get_metadata(stream)
 
101
 
 
102
class IMPMetadataReader(MetadataReaderPlugin):
 
103
 
 
104
    name        = 'Read IMP metadata'
 
105
    file_types  = set(['imp'])
 
106
    description = _('Read metadata from %s files')%'IMP'
 
107
    author      = 'Ashish Kulkarni'
 
108
 
 
109
    def get_metadata(self, stream, ftype):
 
110
        from calibre.ebooks.metadata.imp import get_metadata
 
111
        return get_metadata(stream)
 
112
 
 
113
class LITMetadataReader(MetadataReaderPlugin):
 
114
 
 
115
    name        = 'Read LIT metadata'
 
116
    file_types  = set(['lit'])
 
117
    description = _('Read metadata from %s files')%'LIT'
 
118
 
 
119
    def get_metadata(self, stream, ftype):
 
120
        from calibre.ebooks.metadata.lit import get_metadata
 
121
        return get_metadata(stream)
59
122
 
60
123
class LRFMetadataReader(MetadataReaderPlugin):
61
 
    
 
124
 
62
125
    name        = 'Read LRF metadata'
63
126
    file_types  = set(['lrf'])
64
127
    description = _('Read metadata from %s files')%'LRF'
65
 
    
 
128
 
66
129
    def get_metadata(self, stream, ftype):
67
130
        from calibre.ebooks.lrf.meta import get_metadata
68
131
        return get_metadata(stream)
69
132
 
 
133
class LRXMetadataReader(MetadataReaderPlugin):
 
134
 
 
135
    name        = 'Read LRX metadata'
 
136
    file_types  = set(['lrx'])
 
137
    description = _('Read metadata from %s files')%'LRX'
 
138
 
 
139
    def get_metadata(self, stream, ftype):
 
140
        from calibre.ebooks.metadata.lrx import get_metadata
 
141
        return get_metadata(stream)
 
142
 
 
143
class MOBIMetadataReader(MetadataReaderPlugin):
 
144
 
 
145
    name        = 'Read MOBI metadata'
 
146
    file_types  = set(['mobi', 'prc', 'azw'])
 
147
    description = _('Read metadata from %s files')%'MOBI'
 
148
 
 
149
    def get_metadata(self, stream, ftype):
 
150
        from calibre.ebooks.mobi.reader import get_metadata
 
151
        return get_metadata(stream)
 
152
 
 
153
class ODTMetadataReader(MetadataReaderPlugin):
 
154
 
 
155
    name        = 'Read ODT metadata'
 
156
    file_types  = set(['odt'])
 
157
    description = _('Read metadata from %s files')%'ODT'
 
158
 
 
159
    def get_metadata(self, stream, ftype):
 
160
        from calibre.ebooks.metadata.odt import get_metadata
 
161
        return get_metadata(stream)
 
162
 
 
163
class OPFMetadataReader(MetadataReaderPlugin):
 
164
 
 
165
    name        = 'Read OPF metadata'
 
166
    file_types  = set(['opf'])
 
167
    description = _('Read metadata from %s files')%'OPF'
 
168
 
 
169
    def get_metadata(self, stream, ftype):
 
170
        from calibre.ebooks.metadata.opf2 import OPF
 
171
        from calibre.ebooks.metadata import MetaInformation
 
172
        return MetaInformation(OPF(stream, os.getcwd()))
 
173
 
 
174
class PDBMetadataReader(MetadataReaderPlugin):
 
175
 
 
176
    name        = 'Read PDB metadata'
 
177
    file_types  = set(['pdb'])
 
178
    description = _('Read metadata from %s files') % 'PDB'
 
179
    author      = 'John Schember'
 
180
 
 
181
    def get_metadata(self, stream, ftype):
 
182
        from calibre.ebooks.metadata.pdb import get_metadata
 
183
        return get_metadata(stream)
 
184
 
70
185
class PDFMetadataReader(MetadataReaderPlugin):
71
 
    
 
186
 
72
187
    name        = 'Read PDF metadata'
73
188
    file_types  = set(['pdf'])
74
189
    description = _('Read metadata from %s files')%'PDF'
75
 
    
76
 
    def get_metadata(self, stream, ftype):
77
 
        from calibre.ebooks.metadata.pdf import get_metadata
78
 
        return get_metadata(stream)
79
 
 
80
 
class LITMetadataReader(MetadataReaderPlugin):
81
 
    
82
 
    name        = 'Read LIT metadata'
83
 
    file_types  = set(['lit'])
84
 
    description = _('Read metadata from %s files')%'LIT'
85
 
    
86
 
    def get_metadata(self, stream, ftype):
87
 
        from calibre.ebooks.metadata.lit import get_metadata
88
 
        return get_metadata(stream)
89
 
 
90
 
class IMPMetadataReader(MetadataReaderPlugin):
91
 
    
92
 
    name        = 'Read IMP metadata'
93
 
    file_types  = set(['imp'])
94
 
    description = _('Read metadata from %s files')%'IMP'
95
 
    author      = 'Ashish Kulkarni'
96
 
    
97
 
    def get_metadata(self, stream, ftype):
98
 
        from calibre.ebooks.metadata.imp import get_metadata
 
190
 
 
191
    def get_metadata(self, stream, ftype):
 
192
        from calibre.ebooks.metadata.pdf import get_metadata, get_quick_metadata
 
193
        if self.quick:
 
194
            return get_quick_metadata(stream)
 
195
        return get_metadata(stream)
 
196
 
 
197
class RARMetadataReader(MetadataReaderPlugin):
 
198
 
 
199
    name = 'Read RAR metadata'
 
200
    file_types = set(['rar'])
 
201
    description = _('Read metadata from ebooks in RAR archives')
 
202
 
 
203
    def get_metadata(self, stream, ftype):
 
204
        from calibre.ebooks.metadata.rar import get_metadata
99
205
        return get_metadata(stream)
100
206
 
101
207
class RBMetadataReader(MetadataReaderPlugin):
102
 
    
 
208
 
103
209
    name        = 'Read RB metadata'
104
210
    file_types  = set(['rb'])
105
211
    description = _('Read metadata from %s files')%'RB'
106
212
    author      = 'Ashish Kulkarni'
107
 
    
 
213
 
108
214
    def get_metadata(self, stream, ftype):
109
215
        from calibre.ebooks.metadata.rb import get_metadata
110
216
        return get_metadata(stream)
111
217
 
112
 
class EPUBMetadataReader(MetadataReaderPlugin):
113
 
    
114
 
    name        = 'Read EPUB metadata'
115
 
    file_types  = set(['epub'])
116
 
    description = _('Read metadata from %s files')%'EPUB'
117
 
    
118
 
    def get_metadata(self, stream, ftype):
119
 
        from calibre.ebooks.metadata.epub import get_metadata
120
 
        return get_metadata(stream)
121
 
 
122
 
class HTMLMetadataReader(MetadataReaderPlugin):
123
 
    
124
 
    name        = 'Read HTML metadata'
125
 
    file_types  = set(['html'])
126
 
    description = _('Read metadata from %s files')%'HTML'
127
 
    
128
 
    def get_metadata(self, stream, ftype):
129
 
        from calibre.ebooks.metadata.html import get_metadata
130
 
        return get_metadata(stream)
131
 
 
132
 
class MOBIMetadataReader(MetadataReaderPlugin):
133
 
    
134
 
    name        = 'Read MOBI metadata'
135
 
    file_types  = set(['mobi', 'prc', 'azw'])
136
 
    description = _('Read metadata from %s files')%'MOBI'
137
 
    
138
 
    def get_metadata(self, stream, ftype):
139
 
        from calibre.ebooks.mobi.reader import get_metadata
140
 
        return get_metadata(stream)
141
 
 
 
218
class RTFMetadataReader(MetadataReaderPlugin):
 
219
 
 
220
    name        = 'Read RTF metadata'
 
221
    file_types  = set(['rtf'])
 
222
    description = _('Read metadata from %s files')%'RTF'
 
223
 
 
224
    def get_metadata(self, stream, ftype):
 
225
        from calibre.ebooks.metadata.rtf import get_metadata
 
226
        return get_metadata(stream)
142
227
 
143
228
class TOPAZMetadataReader(MetadataReaderPlugin):
144
 
    
 
229
 
145
230
    name        = 'Read Topaz metadata'
146
231
    file_types  = set(['tpz', 'azw1'])
147
232
    description = _('Read metadata from %s files')%'MOBI'
148
 
    
 
233
 
149
234
    def get_metadata(self, stream, ftype):
150
235
        from calibre.ebooks.metadata.topaz import get_metadata
151
236
        return get_metadata(stream)
152
237
 
153
 
class ODTMetadataReader(MetadataReaderPlugin):
154
 
    
155
 
    name        = 'Read ODT metadata'
156
 
    file_types  = set(['odt'])
157
 
    description = _('Read metadata from %s files')%'ODT'
158
 
    
159
 
    def get_metadata(self, stream, ftype):
160
 
        from calibre.ebooks.metadata.odt import get_metadata
161
 
        return get_metadata(stream)
162
 
 
163
 
class LRXMetadataReader(MetadataReaderPlugin):
164
 
    
165
 
    name        = 'Read LRX metadata'
166
 
    file_types  = set(['lrx'])
167
 
    description = _('Read metadata from %s files')%'LRX'
168
 
    
169
 
    def get_metadata(self, stream, ftype):
170
 
        from calibre.ebooks.metadata.lrx import get_metadata
171
 
        return get_metadata(stream)
172
 
 
173
 
class ComicMetadataReader(MetadataReaderPlugin):
174
 
    
175
 
    name = 'Read comic metadata'
176
 
    file_types = set(['cbr', 'cbz'])
177
 
    description = _('Extract cover from comic files')
178
 
    
179
 
    def get_metadata(self, stream, ftype):
180
 
        if ftype == 'cbr':
181
 
            from calibre.libunrar import extract_member as extract_first
182
 
        else:
183
 
            from calibre.libunzip import extract_member as extract_first
184
 
        from calibre.ebooks.metadata import MetaInformation 
185
 
        ret = extract_first(stream)
186
 
        mi = MetaInformation(None, None)
187
 
        if ret is not None:
188
 
            path, data = ret
189
 
            ext = os.path.splitext(path)[1][1:]
190
 
            mi.cover_data = (ext.lower(), data)
191
 
        return mi
192
 
    
 
238
class TXTMetadataReader(MetadataReaderPlugin):
 
239
 
 
240
    name        = 'Read TXT metadata'
 
241
    file_types  = set(['txt'])
 
242
    description = _('Read metadata from %s files') % 'TXT'
 
243
    author      = 'John Schember'
 
244
 
 
245
    def get_metadata(self, stream, ftype):
 
246
        from calibre.ebooks.metadata.txt import get_metadata
 
247
        return get_metadata(stream)
 
248
 
193
249
class ZipMetadataReader(MetadataReaderPlugin):
194
 
    
 
250
 
195
251
    name = 'Read ZIP metadata'
196
252
    file_types = set(['zip', 'oebzip'])
197
253
    description = _('Read metadata from ebooks in ZIP archives')
198
 
    
 
254
 
199
255
    def get_metadata(self, stream, ftype):
200
256
        from calibre.ebooks.metadata.zip import get_metadata
201
257
        return get_metadata(stream)
202
258
 
203
 
class RARMetadataReader(MetadataReaderPlugin):
204
 
    
205
 
    name = 'Read RAR metadata'
206
 
    file_types = set(['rar'])
207
 
    description = _('Read metadata from ebooks in RAR archives')
208
 
    
209
 
    def get_metadata(self, stream, ftype):
210
 
        from calibre.ebooks.metadata.rar import get_metadata
211
 
        return get_metadata(stream)
212
 
 
213
259
 
214
260
class EPUBMetadataWriter(MetadataWriterPlugin):
215
 
    
 
261
 
216
262
    name = 'Set EPUB metadata'
217
263
    file_types = set(['epub'])
218
264
    description = _('Set metadata in %s files')%'EPUB'
219
 
    
 
265
 
220
266
    def set_metadata(self, stream, mi, type):
221
267
        from calibre.ebooks.metadata.epub import set_metadata
222
268
        set_metadata(stream, mi)
223
 
        
 
269
 
224
270
class LRFMetadataWriter(MetadataWriterPlugin):
225
 
    
 
271
 
226
272
    name = 'Set LRF metadata'
227
273
    file_types = set(['lrf'])
228
274
    description = _('Set metadata in %s files')%'LRF'
229
 
    
 
275
 
230
276
    def set_metadata(self, stream, mi, type):
231
277
        from calibre.ebooks.lrf.meta import set_metadata
232
278
        set_metadata(stream, mi)
233
279
 
234
 
class RTFMetadataWriter(MetadataWriterPlugin):
235
 
    
236
 
    name = 'Set RTF metadata'
237
 
    file_types = set(['rtf'])
238
 
    description = _('Set metadata in %s files')%'RTF'
239
 
    
240
 
    def set_metadata(self, stream, mi, type):
241
 
        from calibre.ebooks.metadata.rtf import set_metadata
242
 
        set_metadata(stream, mi)
243
 
 
244
280
class MOBIMetadataWriter(MetadataWriterPlugin):
245
 
    
 
281
 
246
282
    name        = 'Set MOBI metadata'
247
283
    file_types  = set(['mobi', 'prc', 'azw'])
248
284
    description = _('Set metadata in %s files')%'MOBI'
249
285
    author      = 'Marshall T. Vandegrift'
250
 
    
 
286
 
251
287
    def set_metadata(self, stream, mi, type):
252
288
        from calibre.ebooks.metadata.mobi import set_metadata
253
289
        set_metadata(stream, mi)
254
 
        
 
290
 
 
291
class PDBMetadataWriter(MetadataWriterPlugin):
 
292
 
 
293
    name        = 'Set PDB metadata'
 
294
    file_types  = set(['pdb'])
 
295
    description = _('Set metadata from %s files') % 'PDB'
 
296
    author      = 'John Schember'
 
297
 
 
298
    def set_metadata(self, stream, mi, type):
 
299
        from calibre.ebooks.metadata.pdb import set_metadata
 
300
        set_metadata(stream, mi)
 
301
 
255
302
class PDFMetadataWriter(MetadataWriterPlugin):
256
303
 
257
304
    name        = 'Set PDF metadata'
258
305
    file_types  = set(['pdf'])
259
306
    description = _('Set metadata in %s files') % 'PDF'
260
 
    author      = 'John Schember'
261
 
    
 
307
    author      = 'Kovid Goyal'
 
308
 
262
309
    def set_metadata(self, stream, mi, type):
263
310
        from calibre.ebooks.metadata.pdf import set_metadata
264
311
        set_metadata(stream, mi)
265
312
 
 
313
class RTFMetadataWriter(MetadataWriterPlugin):
 
314
 
 
315
    name = 'Set RTF metadata'
 
316
    file_types = set(['rtf'])
 
317
    description = _('Set metadata in %s files')%'RTF'
 
318
 
 
319
    def set_metadata(self, stream, mi, type):
 
320
        from calibre.ebooks.metadata.rtf import set_metadata
 
321
        set_metadata(stream, mi)
 
322
 
 
323
 
 
324
from calibre.ebooks.comic.input import ComicInput
 
325
from calibre.ebooks.epub.input import EPUBInput
 
326
from calibre.ebooks.fb2.input import FB2Input
 
327
from calibre.ebooks.html.input import HTMLInput
 
328
from calibre.ebooks.lit.input import LITInput
 
329
from calibre.ebooks.mobi.input import MOBIInput
 
330
from calibre.ebooks.odt.input import ODTInput
 
331
from calibre.ebooks.pdb.input import PDBInput
 
332
from calibre.ebooks.pdf.input import PDFInput
 
333
from calibre.ebooks.pml.input import PMLInput
 
334
from calibre.ebooks.rb.input import RBInput
 
335
from calibre.web.feeds.input import RecipeInput
 
336
from calibre.ebooks.rtf.input import RTFInput
 
337
from calibre.ebooks.txt.input import TXTInput
 
338
 
 
339
from calibre.ebooks.epub.output import EPUBOutput
 
340
from calibre.ebooks.fb2.output import FB2Output
 
341
from calibre.ebooks.lit.output import LITOutput
 
342
from calibre.ebooks.lrf.output import LRFOutput
 
343
from calibre.ebooks.mobi.output import MOBIOutput
 
344
from calibre.ebooks.oeb.output import OEBOutput
 
345
from calibre.ebooks.pdb.output import PDBOutput
 
346
from calibre.ebooks.pdf.output import PDFOutput
 
347
from calibre.ebooks.pml.output import PMLOutput
 
348
from calibre.ebooks.rb.output import RBOutput
 
349
from calibre.ebooks.rtf.output import RTFOutput
 
350
from calibre.ebooks.txt.output import TXTOutput
 
351
 
 
352
from calibre.customize.profiles import input_profiles, output_profiles
 
353
 
 
354
 
 
355
from calibre.devices.bebook.driver import BEBOOK, BEBOOK_MINI
 
356
from calibre.devices.blackberry.driver import BLACKBERRY
 
357
from calibre.devices.cybookg3.driver import CYBOOKG3
 
358
from calibre.devices.eb600.driver import EB600
 
359
from calibre.devices.irexdr.driver import IREXDR1000
 
360
from calibre.devices.jetbook.driver import JETBOOK
 
361
from calibre.devices.kindle.driver import KINDLE, KINDLE2, KINDLE_DX
 
362
from calibre.devices.prs500.driver import PRS500
 
363
from calibre.devices.prs505.driver import PRS505
 
364
from calibre.devices.prs700.driver import PRS700
 
365
from calibre.devices.android.driver import ANDROID
266
366
 
267
367
plugins = [HTML2ZIP]
 
368
plugins += [
 
369
    ComicInput,
 
370
    EPUBInput,
 
371
    FB2Input,
 
372
    HTMLInput,
 
373
    LITInput,
 
374
    MOBIInput,
 
375
    ODTInput,
 
376
    PDBInput,
 
377
    PDFInput,
 
378
    PMLInput,
 
379
    RBInput,
 
380
    RecipeInput,
 
381
    RTFInput,
 
382
    TXTInput,
 
383
]
 
384
plugins += [
 
385
    EPUBOutput,
 
386
    FB2Output,
 
387
    LITOutput,
 
388
    LRFOutput,
 
389
    MOBIOutput,
 
390
    OEBOutput,
 
391
    PDBOutput,
 
392
    PDFOutput,
 
393
    PMLOutput,
 
394
    RBOutput,
 
395
    RTFOutput,
 
396
    TXTOutput,
 
397
]
 
398
plugins += [
 
399
    BEBOOK,
 
400
    BEBOOK_MINI,
 
401
    BLACKBERRY,
 
402
    CYBOOKG3,
 
403
    EB600,
 
404
    IREXDR1000,
 
405
    JETBOOK,
 
406
    KINDLE,
 
407
    KINDLE2,
 
408
    KINDLE_DX,
 
409
    PRS500,
 
410
    PRS505,
 
411
    PRS700,
 
412
    ANDROID,
 
413
]
268
414
plugins += [x for x in list(locals().values()) if isinstance(x, type) and \
269
415
                                        x.__name__.endswith('MetadataReader')]
270
416
plugins += [x for x in list(locals().values()) if isinstance(x, type) and \
271
417
                                        x.__name__.endswith('MetadataWriter')]
 
418
plugins += input_profiles + output_profiles