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 @@
+
+ +
+
+ +
+
+

The time frame to include in the newsletter. Note: Days uses calendar days (i.e. since midnight).

+
% 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": {...},