mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-11 07:46:07 -07:00
Add setting to enable static newsletter URL
This commit is contained in:
parent
19cf567366
commit
84406e6797
5 changed files with 18 additions and 9 deletions
|
@ -969,10 +969,17 @@
|
||||||
Note: The <span class="inline-pre">${http_root}newsletter</span> endpoint on your domain must be publicly accessible from the internet.
|
Note: The <span class="inline-pre">${http_root}newsletter</span> endpoint on your domain must be publicly accessible from the internet.
|
||||||
</p>
|
</p>
|
||||||
<p class="help-block settings-warning base-url-warning">Warning: Public Tautulli domain not set under <a data-tab-destination="tabs-web_interface" data-target="#http_base_url">Web Interface</a>.</p>
|
<p class="help-block settings-warning base-url-warning">Warning: Public Tautulli domain not set under <a data-tab-destination="tabs-web_interface" data-target="#http_base_url">Web Interface</a>.</p>
|
||||||
|
|
||||||
|
<div class="checkbox">
|
||||||
|
<label>
|
||||||
|
<input type="checkbox" id="newsletter_static_url" name="newsletter_static_url" value="1" ${config['newsletter_static_url']}> Enable Static Newsletter URL
|
||||||
|
</label>
|
||||||
|
<p class="help-block">Enable static URLs to the last sent scheduled newsletter at <span class="inline-pre">${http_root}newsletter/id/<newsletter_id></span>.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group advanced-setting">
|
<div class="form-group advanced-setting">
|
||||||
<label for="newsletter_dir">Custom Newsletter Template Folder</label>
|
<label for="newsletter_dir">Custom Newsletter Templates Folder</label>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<input type="text" class="form-control" id="newsletter_custom_dir" name="newsletter_custom_dir" value="${config['newsletter_custom_dir']}">
|
<input type="text" class="form-control" id="newsletter_custom_dir" name="newsletter_custom_dir" value="${config['newsletter_custom_dir']}">
|
||||||
|
@ -981,10 +988,10 @@
|
||||||
<p class="help-block">Optional: Enter the full path to your custom newsletter templates folder. Leave blank for default.</p>
|
<p class="help-block">Optional: Enter the full path to your custom newsletter templates folder. Leave blank for default.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group advanced-setting">
|
<div class="form-group advanced-setting">
|
||||||
<label for="newsletter_dir">Newsletter Directory</label>
|
<label for="newsletter_dir">Newsletter Output Directory</label>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<input type="text" class="form-control directory-settings" id="newsletter_dir" name="newsletter_dir" value="${config['newsletter_dir']}">
|
<input type="text" class="form-control" id="newsletter_dir" name="newsletter_dir" value="${config['newsletter_dir']}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="help-block">Enter the full path to where newsletter files will be saved.</p>
|
<p class="help-block">Enter the full path to where newsletter files will be saved.</p>
|
||||||
|
|
|
@ -525,7 +525,7 @@ NEWSLETTER_PARAMETERS = [
|
||||||
{'name': 'Newsletter Time Frame', 'type': 'int', 'value': 'newsletter_time_frame', 'description': 'The time frame included in the newsletter.'},
|
{'name': 'Newsletter Time Frame', 'type': 'int', 'value': 'newsletter_time_frame', 'description': 'The time frame included in the newsletter.'},
|
||||||
{'name': 'Newsletter Time Frame Units', 'type': 'str', 'value': 'newsletter_time_frame_units', 'description': 'The time frame units included in the newsletter.'},
|
{'name': 'Newsletter Time Frame Units', 'type': 'str', 'value': 'newsletter_time_frame_units', 'description': 'The time frame units included in the newsletter.'},
|
||||||
{'name': 'Newsletter URL', 'type': 'str', 'value': 'newsletter_url', 'description': 'The self-hosted URL to the newsletter.'},
|
{'name': 'Newsletter URL', 'type': 'str', 'value': 'newsletter_url', 'description': 'The self-hosted URL to the newsletter.'},
|
||||||
{'name': 'Newsletter Latest URL', 'type': 'str', 'value': 'newsletter_latest_url', 'description': 'The self-hosted URL to the latest scheduled newsletter for the agent.'},
|
{'name': 'Newsletter Static URL', 'type': 'str', 'value': 'newsletter_static_url', 'description': 'The static self-hosted URL to the latest scheduled newsletter for the agent.'},
|
||||||
{'name': 'Newsletter UUID', 'type': 'str', 'value': 'newsletter_uuid', 'description': 'The unique identifier for the newsletter.'},
|
{'name': 'Newsletter UUID', 'type': 'str', 'value': 'newsletter_uuid', 'description': 'The unique identifier for the newsletter.'},
|
||||||
{'name': 'Newsletter ID', 'type': 'int', 'value': 'newsletter_id', 'description': 'The ID number for the newsletter agent.'},
|
{'name': 'Newsletter ID', 'type': 'int', 'value': 'newsletter_id', 'description': 'The ID number for the newsletter agent.'},
|
||||||
]
|
]
|
||||||
|
|
|
@ -316,6 +316,7 @@ _CONFIG_DEFINITIONS = {
|
||||||
'NEWSLETTER_TEMPLATES': (str, 'Newsletter', 'newsletters'),
|
'NEWSLETTER_TEMPLATES': (str, 'Newsletter', 'newsletters'),
|
||||||
'NEWSLETTER_DIR': (str, 'Newsletter', ''),
|
'NEWSLETTER_DIR': (str, 'Newsletter', ''),
|
||||||
'NEWSLETTER_SELF_HOSTED': (int, 'Newsletter', 0),
|
'NEWSLETTER_SELF_HOSTED': (int, 'Newsletter', 0),
|
||||||
|
'NEWSLETTER_STATIC_URL': (int, 'Newsletter', 0),
|
||||||
'NMA_APIKEY': (str, 'NMA', ''),
|
'NMA_APIKEY': (str, 'NMA', ''),
|
||||||
'NMA_ENABLED': (int, 'NMA', 0),
|
'NMA_ENABLED': (int, 'NMA', 0),
|
||||||
'NMA_PRIORITY': (int, 'NMA', 0),
|
'NMA_PRIORITY': (int, 'NMA', 0),
|
||||||
|
|
|
@ -453,9 +453,9 @@ class Newsletter(object):
|
||||||
if '<!-- IGNORE SAVE -->' not in line:
|
if '<!-- IGNORE SAVE -->' not in line:
|
||||||
n_file.write(line + '\r\n')
|
n_file.write(line + '\r\n')
|
||||||
|
|
||||||
logger.info(u"Tautulli Newsletters :: %s newsletter saved to %s" % (self.NAME, newsletter_file))
|
logger.info(u"Tautulli Newsletters :: %s newsletter saved to '%s'" % (self.NAME, newsletter_file))
|
||||||
except OSError as e:
|
except OSError as e:
|
||||||
logger.error(u"Tautulli Newsletters :: Failed to save %s newsletter to %s: %s"
|
logger.error(u"Tautulli Newsletters :: Failed to save %s newsletter to '%s': %s"
|
||||||
% (self.NAME, newsletter_file, e))
|
% (self.NAME, newsletter_file, e))
|
||||||
|
|
||||||
def _send(self):
|
def _send(self):
|
||||||
|
@ -501,7 +501,7 @@ class Newsletter(object):
|
||||||
'newsletter_time_frame': self.config['time_frame'],
|
'newsletter_time_frame': self.config['time_frame'],
|
||||||
'newsletter_time_frame_units': self.config['time_frame_units'],
|
'newsletter_time_frame_units': self.config['time_frame_units'],
|
||||||
'newsletter_url': base_url + self.uuid,
|
'newsletter_url': base_url + self.uuid,
|
||||||
'newsletter_latest_url': base_url + 'id/' + str(self.newsletter_id),
|
'newsletter_static_url': base_url + 'id/' + str(self.newsletter_id),
|
||||||
'newsletter_uuid': self.uuid,
|
'newsletter_uuid': self.uuid,
|
||||||
'newsletter_id': self.newsletter_id
|
'newsletter_id': self.newsletter_id
|
||||||
}
|
}
|
||||||
|
|
|
@ -2756,6 +2756,7 @@ class WebInterface(object):
|
||||||
"show_advanced_settings": plexpy.CONFIG.SHOW_ADVANCED_SETTINGS,
|
"show_advanced_settings": plexpy.CONFIG.SHOW_ADVANCED_SETTINGS,
|
||||||
"newsletter_dir": plexpy.CONFIG.NEWSLETTER_DIR,
|
"newsletter_dir": plexpy.CONFIG.NEWSLETTER_DIR,
|
||||||
"newsletter_self_hosted": checked(plexpy.CONFIG.NEWSLETTER_SELF_HOSTED),
|
"newsletter_self_hosted": checked(plexpy.CONFIG.NEWSLETTER_SELF_HOSTED),
|
||||||
|
"newsletter_static_url": checked(plexpy.CONFIG.NEWSLETTER_STATIC_URL),
|
||||||
"newsletter_custom_dir": plexpy.CONFIG.NEWSLETTER_CUSTOM_DIR
|
"newsletter_custom_dir": plexpy.CONFIG.NEWSLETTER_CUSTOM_DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2778,7 +2779,7 @@ class WebInterface(object):
|
||||||
"allow_guest_access", "cache_images", "http_proxy", "http_basic_auth", "notify_concurrent_by_ip",
|
"allow_guest_access", "cache_images", "http_proxy", "http_basic_auth", "notify_concurrent_by_ip",
|
||||||
"history_table_activity", "plexpy_auto_update",
|
"history_table_activity", "plexpy_auto_update",
|
||||||
"themoviedb_lookup", "tvmaze_lookup", "http_plex_admin",
|
"themoviedb_lookup", "tvmaze_lookup", "http_plex_admin",
|
||||||
"newsletter_self_hosted"
|
"newsletter_self_hosted", "newsletter_static_url"
|
||||||
]
|
]
|
||||||
for checked_config in checked_configs:
|
for checked_config in checked_configs:
|
||||||
if checked_config not in kwargs:
|
if checked_config not in kwargs:
|
||||||
|
@ -5665,7 +5666,7 @@ class WebInterface(object):
|
||||||
cherrypy.response.headers['Cache-Control'] = 'max-age=2592000' # 30 days
|
cherrypy.response.headers['Cache-Control'] = 'max-age=2592000' # 30 days
|
||||||
return self.image(args[1], refresh=True)
|
return self.image(args[1], refresh=True)
|
||||||
|
|
||||||
if len(args) >= 2 and args[0] == 'id':
|
if plexpy.CONFIG.NEWSLETTER_STATIC_URL and len(args) >= 2 and args[0] == 'id':
|
||||||
newsletter_id = args[1]
|
newsletter_id = args[1]
|
||||||
newsletter_uuid = None
|
newsletter_uuid = None
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue