[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/osm 24d369d9c0 02/77: Configurable cache cleaning
From: |
ELPA Syncer |
Subject: |
[elpa] externals/osm 24d369d9c0 02/77: Configurable cache cleaning |
Date: |
Mon, 7 Mar 2022 08:58:03 -0500 (EST) |
branch: externals/osm
commit 24d369d9c01a0ad97a27d5b9b7c2f3cb799b9d23
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>
Configurable cache cleaning
---
osm.el | 31 ++++++++++++++++++++++---------
1 file changed, 22 insertions(+), 9 deletions(-)
diff --git a/osm.el b/osm.el
index ff552647e6..df44d9c753 100644
--- a/osm.el
+++ b/osm.el
@@ -73,6 +73,11 @@
"Tile cache directory."
:type 'string)
+(defcustom osm-tile-max-age (* 60 60 24 14)
+ "Maximum tile age.
+Should be at least 7 days according to the server usage policies."
+ :type '(choice (const nil) integer))
+
(defconst osm--placeholder1
`(image :type xbm :width 256 :height 256 :background nil
:data ,(make-bool-vector (* 256 256) nil)))
@@ -80,6 +85,7 @@
(defvar osm--search-history nil)
+(defvar osm--clean-cache 0)
(defvar-local osm--url-index 0)
(defvar-local osm--queue nil)
(defvar-local osm--active nil)
@@ -289,22 +295,29 @@
map)
"Keymap used by `osm-mode'.")
-(define-derived-mode osm-mode special-mode "Osm"
- "Open Street Map mode."
- :interactive nil
- (let ((cache (osm--tile-cache)))
- (unless (file-exists-p cache)
- (make-directory cache t))
+(defun osm--clean-cache ()
+ "Clean tile cache."
+ (when (and (integerp osm-tile-max-age)
+ (> (- (float-time) osm--clean-cache) osm-tile-max-age))
+ (setq osm--clean-cache (float-time))
(run-with-idle-timer
30 nil
(lambda ()
- (dolist (file (directory-files cache 'full "\\.png\\'" 'nosort))
+ (dolist (file (directory-files-recursively osm-tile-cache "\\.png\\'"
nil))
(when (> (float-time
(time-since
(file-attribute-modification-time
(file-attributes file))))
- (* 60 60 24 7))
- (delete-file file))))))
+ osm-tile-max-age)
+ (delete-file file)))))))
+
+(define-derived-mode osm-mode special-mode "Osm"
+ "Open Street Map mode."
+ :interactive nil
+ (let ((cache (osm--tile-cache)))
+ (unless (file-exists-p cache)
+ (make-directory cache t)))
+ (osm--clean-cache)
(setq-local line-spacing nil
cursor-type nil
left-fringe-width 1
- [elpa] branch externals/osm created (now 833793ed6c), ELPA Syncer, 2022/03/07
- [elpa] externals/osm d065db8615 09/77: Add humanitarian base map, ELPA Syncer, 2022/03/07
- [elpa] externals/osm ebf47f15f4 21/77: Use format-spec, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 809b371219 04/77: Add customizable osm-buffer-name, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 24d369d9c0 02/77: Configurable cache cleaning,
ELPA Syncer <=
- [elpa] externals/osm b30d48f7cb 12/77: Move code around, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 85aa864f25 14/77: Zoom with mouse click, ELPA Syncer, 2022/03/07
- [elpa] externals/osm b259afaed2 18/77: Add osm-server to switch the server, ELPA Syncer, 2022/03/07
- [elpa] externals/osm d490ac4013 08/77: Add French server, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 5d8959d9ad 64/77: Improve keybindings, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 640c885460 48/77: README: Add example configuration, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 548dc8c47c 25/77: Minor cleanup, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 0edc1c77db 13/77: Overwrite more settings, ELPA Syncer, 2022/03/07
- [elpa] externals/osm 21e59942a9 15/77: Handle mouse drag event, ELPA Syncer, 2022/03/07
- [elpa] externals/osm e8ed76566a 11/77: Rename settings, ELPA Syncer, 2022/03/07