emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/osm 8436c4b4c3 1/2: Add osm--get-json, specify process


From: ELPA Syncer
Subject: [elpa] externals/osm 8436c4b4c3 1/2: Add osm--get-json, specify process encoding (Fix #6)
Date: Sat, 19 Mar 2022 16:57:38 -0400 (EDT)

branch: externals/osm
commit 8436c4b4c3e0e0a2bcd3d395687a286890cedb14
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Add osm--get-json, specify process encoding (Fix #6)
---
 osm.el | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/osm.el b/osm.el
index 8731fbd8eb..fc5eb6098a 100644
--- a/osm.el
+++ b/osm.el
@@ -1304,15 +1304,20 @@ Optionally specify a SERVER and a COMMENT."
           (ignore-errors
             (alist-get
              'display_name
-             (json-parse-string
-              (shell-command-to-string
-               (concat
-                "curl " osm-curl-options " "
-                (shell-quote-argument
-                 (format 
"https://nominatim.openstreetmap.org/reverse?format=json&zoom=%s&lat=%s&lon=%s";
-                         (min 18 (max 3 osm--zoom)) lat lon))))
-              :array-type 'list
-              :object-type 'alist))))))
+             (osm--get-json
+              (format 
"https://nominatim.openstreetmap.org/reverse?format=json&zoom=%s&lat=%s&lon=%s";
+                      (min 18 (max 3 osm--zoom)) lat lon)))))))
+
+(defun osm--get-json (url)
+  "Get json from URL."
+  (json-parse-string
+   (let ((default-process-coding-system '(utf-8-unix . utf-8-unix)))
+     (shell-command-to-string
+      (concat
+       "curl " osm-curl-options " "
+       (shell-quote-argument url))))
+   :array-type 'list
+   :object-type 'alist))
 
 ;;;###autoload
 (defun osm-search (search &optional lucky)
@@ -1324,15 +1329,9 @@ If the prefix argument LUCKY is non-nil take the first 
result and jump there."
                           nil nil nil 'osm--search-history)
          current-prefix-arg))
   ;; TODO add search bounded to current viewbox, bounded=1, viewbox=x1,y1,x2,y2
-  (let* ((json (json-parse-string
-                (shell-command-to-string
-                 (concat
-                  "curl " osm-curl-options " "
-                  (shell-quote-argument
-                   (concat 
"https://nominatim.openstreetmap.org/search?format=json&q=";
-                           (url-encode-url search)))))
-                :array-type 'list
-                :object-type 'alist))
+  (let* ((json (osm--get-json
+                (concat 
"https://nominatim.openstreetmap.org/search?format=json&q=";
+                        (url-encode-url search))))
          (results (mapcar
                    (lambda (x)
                      (let ((lat (string-to-number (alist-get 'lat x)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]