3
from flexget.plugin import *
5
log = logging.getLogger('path_by_ext')
9
Allows specifying path based on content-type
14
torrent: ~/watch/torrent/
19
from flexget import validator
20
config = validator.factory('dict')
21
config.accept_any_key('any')
24
def on_feed_modify(self, feed):
25
self.ext(feed, self.set_path)
27
def set_path(self, entry, path):
28
log.debug('Setting %s path to %s' % (entry['title'], path))
31
def ext(self, feed, callback):
33
for entry in feed.entries:
34
if 'mime-type' in entry:
35
# check if configuration has mimetype that entry has
36
if entry['mime-type'] in config:
37
callback(entry, config[entry['mime-type']])
38
# check if entry mimetype extension matches in config
39
ext = mimetypes.types_map.get(entry['mime-type'])
40
path = config.get(ext) or config.get(ext[1:])
44
log.debug('Unknown mimetype %s' % entry['mime-type'])
46
# try to find from url
47
for ext, path in config.iteritems():
48
if entry['url'].endswith('.'+ext):
51
register_plugin(PluginPathByExt, 'path_by_ext')