diff --git a/data/interfaces/default/css/tautulli.css b/data/interfaces/default/css/tautulli.css
index a49c071f..dc982489 100644
--- a/data/interfaces/default/css/tautulli.css
+++ b/data/interfaces/default/css/tautulli.css
@@ -4046,6 +4046,19 @@ a:hover .overlay-refresh-image:hover {
-webkit-appearance: none;
margin: 0;
}
+.newsletter-time_frame .input-group-addon {
+ height: 32px;
+ width: 52px;
+ margin-top: 5px;
+ line-height: 1.42857143;
+}
+.newsletter-time_frame input.form-control {
+ width: calc(50% - 37px);
+}
+.newsletter-time_frame select.form-control {
+ width: calc(50% - 15px);
+ height: 32px;
+}
.newsletter-loader-container {
font-family: 'Open Sans', Arial, sans-serif;
position: absolute;
diff --git a/data/interfaces/default/newsletter_config.html b/data/interfaces/default/newsletter_config.html
index 9eda2dc9..dd23bc40 100644
--- a/data/interfaces/default/newsletter_config.html
+++ b/data/interfaces/default/newsletter_config.html
@@ -57,6 +57,22 @@
+
% for item in newsletter['config_options']:
% if item['input_type'] == 'help':
diff --git a/plexpy/common.py b/plexpy/common.py
index 19d10ecc..1c578b13 100644
--- a/plexpy/common.py
+++ b/plexpy/common.py
@@ -522,7 +522,8 @@ NEWSLETTER_PARAMETERS = [
{'name': 'Start Date', 'type': 'str', 'value': 'start_date', 'description': 'The start date of the newesletter.'},
{'name': 'End Date', 'type': 'str', 'value': 'end_date', 'description': 'The end date of the newesletter.'},
{'name': 'Week Number', 'type': 'int', 'value': 'week_number', 'description': 'The week number of the newsletter.'},
- {'name': 'Newsletter Days', 'type': 'int', 'value': 'newsletter_days', 'description': 'The past number of days 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 URL', 'type': 'str', 'value': 'newsletter_url', 'description': 'The self-hosted URL to the newsletter.'},
{'name': 'Newsletter UUID', 'type': 'str', 'value': 'newsletter_uuid', 'description': 'The unique identifier for the newsletter.'},
]
diff --git a/plexpy/newsletters.py b/plexpy/newsletters.py
index f4071311..bbfd07dd 100644
--- a/plexpy/newsletters.py
+++ b/plexpy/newsletters.py
@@ -296,7 +296,8 @@ def generate_newsletter_uuid():
class Newsletter(object):
NAME = ''
_DEFAULT_CONFIG = {'custom_cron': 0,
- 'last_days': 7,
+ 'time_frame': 7,
+ 'time_frame_units': 'days',
'formatted': 1,
'notifier_id': 0}
_DEFAULT_EMAIL_CONFIG = EMAIL().return_default_config()
@@ -324,7 +325,7 @@ class Newsletter(object):
pass
if self.end_date is None:
- self.end_date = arrow.now().ceil('day')
+ self.end_date = arrow.now()
if start_date:
try:
@@ -333,7 +334,10 @@ class Newsletter(object):
pass
if self.start_date is None:
- self.start_date = self.end_date.shift(days=-self.config['last_days']+1).floor('day')
+ if self.config['time_frame_units'] == 'days':
+ self.start_date = self.end_date.shift(days=-self.config['time_frame']+1).floor('day')
+ else:
+ self.start_date = self.end_date.shift(hours=-self.config['time_frame']).floor('hour')
self.end_time = self.end_date.timestamp
self.start_time = self.start_date.timestamp
@@ -478,7 +482,8 @@ class Newsletter(object):
'start_date': self.start_date.format(date_format),
'end_date': self.end_date.format(date_format),
'week_number': self.start_date.isocalendar()[1],
- 'newsletter_days': self.config['last_days'],
+ 'newsletter_time_frame': self.config['time_frame'],
+ 'newsletter_time_frame_units': self.config['time_frame_units'],
'newsletter_url': base_url.rstrip('/') + plexpy.HTTP_ROOT + 'newsletter/' + self.uuid,
'newsletter_uuid': self.uuid
}
@@ -528,14 +533,7 @@ class Newsletter(object):
return self._return_config_options()
def _return_config_options(self):
- config_options = [
- {'label': 'Number of Days',
- 'value': self.config['last_days'],
- 'name': 'newsletter_config_last_days',
- 'description': 'The past number of days to include in the newsletter.',
- 'input_type': 'number'
- }
- ]
+ config_options = []
return config_options
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 69398e2e..ef96037f 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -5521,7 +5521,8 @@ class WebInterface(object):
"friendly_name": "",
"cron": "0 0 * * 1",
"active": 1
- "config": {"last_days": 7,
+ "config": {"time_frame": 7,
+ "time_frame_units": "days",
"incl_libraries": [1, 2]
},
"email_config": {...},