diff --git a/data/interfaces/default/newsletter_config.html b/data/interfaces/default/newsletter_config.html
index f1309976..489be585 100644
--- a/data/interfaces/default/newsletter_config.html
+++ b/data/interfaces/default/newsletter_config.html
@@ -239,7 +239,7 @@
${item['description'] | n}
- % elif item['input_type'] == 'checkbox' and item['name'] != 'email_html_support':
+ % elif item['input_type'] == 'checkbox' and item['name'] != 'newsletter_email_html_support':
% endif
% endfor
-
+
@@ -387,7 +387,7 @@
var REGEX_EMAIL = '([a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*@' +
'(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)';
- var $email_selectors = $('#email_to, #email_cc, #email_bcc').selectize({
+ var $email_selectors = $('#newsletter_email_to, #newsletter_email_cc, #newsletter_email_bcc').selectize({
plugins: ['remove_button'],
maxItems: null,
render: {
@@ -453,9 +453,9 @@
var email_to = $email_selectors[0].selectize;
var email_cc = $email_selectors[1].selectize;
var email_bcc = $email_selectors[2].selectize;
- email_to.setValue(${json.dumps(next((c['value'] for c in newsletter['email_config_options'] if c['name'] == 'email_to'), [])) | n});
- email_cc.setValue(${json.dumps(next((c['value'] for c in newsletter['email_config_options'] if c['name'] == 'email_cc'), [])) | n});
- email_bcc.setValue(${json.dumps(next((c['value'] for c in newsletter['email_config_options'] if c['name'] == 'email_bcc'), [])) | n});
+ email_to.setValue(${json.dumps(next((c['value'] for c in newsletter['email_config_options'] if c['name'] == 'newsletter_email_to'), [])) | n});
+ email_cc.setValue(${json.dumps(next((c['value'] for c in newsletter['email_config_options'] if c['name'] == 'newsletter_email_cc'), [])) | n});
+ email_bcc.setValue(${json.dumps(next((c['value'] for c in newsletter['email_config_options'] if c['name'] == 'newsletter_email_bcc'), [])) | n});
function reloadModal() {
$.ajax({
diff --git a/plexpy/newsletters.py b/plexpy/newsletters.py
index 7425081c..508c35e7 100644
--- a/plexpy/newsletters.py
+++ b/plexpy/newsletters.py
@@ -209,7 +209,7 @@ def set_newsletter_config(newsletter_id=None, agent_id=None, **kwargs):
return False
config_prefix = agent['name'] + '_'
- email_config_prefix = 'email_'
+ email_config_prefix = 'newsletter_email_'
newsletter_config = {k[len(config_prefix):]: kwargs.pop(k)
for k in kwargs.keys() if k.startswith(config_prefix)}
@@ -350,7 +350,11 @@ class Newsletter(object):
if isinstance(v, int):
new_config[k] = helpers.cast_to_int(config.get(k, v))
elif isinstance(v, list):
- new_config[k] = list(config.get(k, v))
+ c = config.get(k, v)
+ if not isinstance(c, list):
+ new_config[k] = [c]
+ else:
+ new_config[k] = c
else:
new_config[k] = config.get(k, v)
@@ -489,7 +493,10 @@ class Newsletter(object):
return config_options
def return_email_config_options(self):
- return EMAIL(self.email_config).return_config_options()
+ config_options = EMAIL(self.email_config).return_config_options()
+ for c in config_options:
+ c['name'] = 'newsletter_' + c['name']
+ return config_options
class RecentlyAdded(Newsletter):
diff --git a/plexpy/notifiers.py b/plexpy/notifiers.py
index 84570a6c..29028e0a 100644
--- a/plexpy/notifiers.py
+++ b/plexpy/notifiers.py
@@ -767,13 +767,19 @@ class Notifier(object):
for k, v in default.iteritems():
if isinstance(v, int):
new_config[k] = helpers.cast_to_int(config.get(k, v))
+ elif isinstance(v, list):
+ c = config.get(k, v)
+ if not isinstance(c, list):
+ new_config[k] = [c]
+ else:
+ new_config[k] = c
else:
new_config[k] = config.get(k, v)
return new_config
def return_default_config(self):
- return self._DEFAULT_CONFIG
+ return self._DEFAULT_CONFIG.copy()
def notify(self, subject='', body='', action='', **kwargs):
if self.NAME != 'Script':
@@ -1274,9 +1280,9 @@ class EMAIL(Notifier):
NAME = 'Email'
_DEFAULT_CONFIG = {'from_name': 'Tautulli',
'from': '',
- 'to': '',
- 'cc': '',
- 'bcc': '',
+ 'to': [],
+ 'cc': [],
+ 'bcc': [],
'smtp_server': '',
'smtp_port': 25,
'smtp_user': '',
@@ -1285,16 +1291,6 @@ class EMAIL(Notifier):
'html_support': 1
}
- def __init__(self, config=None):
- super(EMAIL, self).__init__(config=config)
-
- if not isinstance(self.config['to'], list):
- self.config['to'] = [x.strip() for x in self.config['to'].split(';')]
- if not isinstance(self.config['cc'], list):
- self.config['cc'] = [x.strip() for x in self.config['cc'].split(';')]
- if not isinstance(self.config['bcc'], list):
- self.config['bcc'] = [x.strip() for x in self.config['bcc'].split(';')]
-
def agent_notify(self, subject='', body='', action='', **kwargs):
if self.config['html_support']:
msg = MIMEMultipart('alternative')
@@ -2005,7 +2001,7 @@ class JOIN(Notifier):
"""
NAME = 'Join'
_DEFAULT_CONFIG = {'api_key': '',
- 'device_names': '',
+ 'device_names': [],
'priority': 2,
'incl_subject': 1,
'incl_poster': 0,
@@ -2014,12 +2010,6 @@ class JOIN(Notifier):
'music_provider': ''
}
- def __init__(self, config=None):
- super(JOIN, self).__init__(config=config)
-
- if not isinstance(self.config['device_names'], list):
- self.config['device_names'] = [x.strip() for x in self.config['device_names'].split(',')]
-
def agent_notify(self, subject='', body='', action='', **kwargs):
data = {'apikey': self.config['api_key'],
'deviceNames': ','.join(self.config['device_names']),