1
from flexget.utils.log import log_once
3
__author__ = 'paranoidi'
6
from flexget.utils.simple_persistence import SimplePersistence
7
from flexget.plugin import register_plugin
10
log = logging.getLogger('cron_env')
13
class CronEnvPlugin(object):
17
self.persistence = SimplePersistence(plugin='cron_env')
19
def on_process_start(self, feed, entries):
23
encoding = sys.getfilesystemencoding()
24
if feed.manager.options.quiet:
25
if 'terminal_encoding' in self.persistence:
26
terminal_encoding = self.persistence['terminal_encoding']
27
if terminal_encoding != encoding:
28
log.warning('Your cron environment has different filesystem encoding '
29
'(%s) compared to your terminal environment (%s).' %
30
(encoding, terminal_encoding))
31
if encoding == 'ANSI_X3.4-1968':
32
log.warning('Your current cron environment results filesystem encoding ANSI_X3.4-1968 '
33
'which supports only ASCII letters in filenames.')
35
log_once('Good! Your crontab environment seems to be same as terminal.')
37
log.info('Please run FlexGet manually once for environment verification purposes.')
39
log.debug('Encoding %s stored' % encoding)
40
self.persistence['terminal_encoding'] = encoding
44
if not sys.platform.startswith('win'):
45
register_plugin(CronEnvPlugin, 'cron_env', api_ver=2, builtin=True)