From 6c0dd9922c9bc95df6f60702cb7a1ff25768791d Mon Sep 17 00:00:00 2001 From: "Kurt G. Nielsen" <17993863+kgn3400@users.noreply.github.com> Date: Mon, 3 Jun 2024 20:11:58 +0200 Subject: [PATCH] Fixed loop out of control --- .../message_log/component_api.py | 38 +++++++++---------- custom_components/message_log/entity.py | 2 +- custom_components/message_log/manifest.json | 14 +++++-- .../message_log/settings_json.py | 2 +- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/custom_components/message_log/component_api.py b/custom_components/message_log/component_api.py index eb392ea..581f923 100644 --- a/custom_components/message_log/component_api.py +++ b/custom_components/message_log/component_api.py @@ -301,7 +301,7 @@ async def async_update(self) -> None: await self.translations.async_refresh() await self.async_remove_outdated() - self.update_scroll_message_pos() + # self.update_scroll_message_pos() await self.async_update_markdown() # ------------------------------------------------------------------ @@ -347,11 +347,7 @@ async def async_create_markdown_latest_and_scroll(self) -> None: # Scroll message if len(self.message_list_sorted) > 1: - while ( - self.settings.message_list[0].added_at - == self.message_list_sorted[self.scroll_message_pos].added_at - ): - self.update_scroll_message_pos() + self.update_scroll_message_pos() item: MessageItem = self.message_list_sorted[self.scroll_message_pos] self.markdown += ( @@ -361,6 +357,21 @@ async def async_create_markdown_latest_and_scroll(self) -> None: else: self.markdown = f'## {self.translations.message_str}\n' + # ------------------------------------------------------------------ + def update_scroll_message_pos(self) -> None: + """Update scroll message pos.""" + if len(self.message_list_sorted) > 1: + self.scroll_message_pos += 1 + + if self.scroll_message_pos >= len( + self.message_list_sorted + ) or self.scroll_message_pos >= self.entry.options.get( + CONF_SCROLL_THROUGH_LAST_MESSAGES_COUNT, 5 + ): + self.scroll_message_pos = 0 + else: + self.scroll_message_pos = 0 + # ------------------------------------------------------------------ async def async_create_markdown_message_list(self) -> None: """Markdown message list.""" @@ -450,21 +461,6 @@ def create_sorted_message_list( ] ) - # ------------------------------------------------------------------ - def update_scroll_message_pos(self) -> None: - """Update scroll message pos.""" - if len(self.settings.message_list) > 1: - self.scroll_message_pos += 1 - - if self.scroll_message_pos >= len( - self.settings.message_list - ) or self.scroll_message_pos >= self.entry.options.get( - CONF_SCROLL_THROUGH_LAST_MESSAGES_COUNT, 5 - ): - self.scroll_message_pos = 0 - else: - self.scroll_message_pos = 0 - # ------------------------------------------------------------------ def get_message(self, num: int = 0) -> str: """Get Message.""" diff --git a/custom_components/message_log/entity.py b/custom_components/message_log/entity.py index b93c627..607a07b 100644 --- a/custom_components/message_log/entity.py +++ b/custom_components/message_log/entity.py @@ -31,6 +31,6 @@ def __init__( manufacturer="KGN", # translation_key=TRANSLATION_KEY, suggested_area="", - sw_version="1.0.21", + sw_version="1.0.23", name=DOMAIN_NAME, ) diff --git a/custom_components/message_log/manifest.json b/custom_components/message_log/manifest.json index 09c288e..a880054 100644 --- a/custom_components/message_log/manifest.json +++ b/custom_components/message_log/manifest.json @@ -1,16 +1,22 @@ { "domain": "message_log", "name": "Message log", - "codeowners": ["@kgn3400"], + "codeowners": [ + "@kgn3400" + ], "config_flow": true, "dependencies": [], "documentation": "https://github.com/kgn3400/message_log", "homekit": {}, "iot_class": "cloud_push", "issue_tracker": "https://github.com/kgn3400/message_log/issues", - "requirements": ["aiofiles", "orjson", "jsonpickle"], + "requirements": [ + "aiofiles", + "orjson", + "jsonpickle" + ], "single_config_entry": true, "ssdp": [], - "version": "1.0.22", + "version": "1.0.23", "zeroconf": [] -} +} \ No newline at end of file diff --git a/custom_components/message_log/settings_json.py b/custom_components/message_log/settings_json.py index e227209..af0a69f 100644 --- a/custom_components/message_log/settings_json.py +++ b/custom_components/message_log/settings_json.py @@ -41,7 +41,7 @@ async def async_read_settings(self, settings_file: str = "") -> None: return self.set_settings_file_name(settings_file) - jsonpickle.set_decoder_options("json") + # jsonpickle.set_decoder_options("json") try: async with aiofiles.open( self.settings_file___, encoding="UTF-8"