From 30a07327bcbcb6fd362645843a23c6a587ff3a1d Mon Sep 17 00:00:00 2001 From: mani Date: Mon, 5 Jan 2026 18:50:26 +0100 Subject: [PATCH] Add option to disable disk caching (RAM only mode) Adds new advanced setting to disable disk-based caching, keeping data only in RAM. When enabled, prevents writing .pickle cache files and disables artwork preloading. Significantly reduces SD card wear on devices like Raspberry Pi while maintaining performance through RAM caching. --- resources/lib/cache_images.py | 7 +++++++ resources/lib/datamanager.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/resources/lib/cache_images.py b/resources/lib/cache_images.py index cb32f2a..55fd55a 100644 --- a/resources/lib/cache_images.py +++ b/resources/lib/cache_images.py @@ -41,6 +41,13 @@ class CacheArtwork(threading.Thread): last_update = 0 home_window = HomeWindow() settings = xbmcaddon.Addon() + + # Check if disk caching is disabled + disable_disk_cache = settings.getSetting('disable_disk_cache') == 'true' + if disable_disk_cache: + log.debug("CacheArtwork : Disk caching disabled, artwork caching skipped") + return + latest_content_hash = "never" check_interval = int(settings.getSetting('cacheImagesOnScreenSaver_interval')) check_interval = check_interval * 60 diff --git a/resources/lib/datamanager.py b/resources/lib/datamanager.py index aa20fc9..1f56dff 100644 --- a/resources/lib/datamanager.py +++ b/resources/lib/datamanager.py @@ -54,6 +54,13 @@ class DataManager: log.debug("last_content_url : use_cache={0} url={1}".format(use_cache, url)) home_window.set_property("last_content_url", url) + # Check if disk caching is disabled + settings = xbmcaddon.Addon() + disable_disk_cache = settings.getSetting('disable_disk_cache') == 'true' + if disable_disk_cache: + use_cache = False + log.debug("Disk caching disabled - data will be kept in RAM only") + user_id = self.user_details.get('user_id') server = self.api.server @@ -164,6 +171,13 @@ class CacheManagerThread(threading.Thread): log.debug("CacheManagerThread : Started") home_window = HomeWindow() + settings = xbmcaddon.Addon() + disable_disk_cache = settings.getSetting('disable_disk_cache') == 'true' + + if disable_disk_cache: + log.debug("CacheManagerThread : Disk caching disabled, skipping cache operations") + return + is_fresh = False # if the data is fresh then just save it