gpx file download done properly

This commit is contained in:
fordprefect
2020-04-18 15:15:41 +02:00
parent afb5cc3336
commit 223a2b12b6

View File

@@ -16,6 +16,7 @@ import random
import os
import sys
assert sys.version_info >= (3, 6), "At least Python 3.8 required due to fStrings. Replace all f\"\" and comment this line to enable running in lower versions (but really, you should just update your Python version…)."
import base64
#####################################
######## configuration
@@ -71,7 +72,7 @@ args["outputfilename"] = outputfilename
searchresult = osmsearch.OSMSearch(args)
gpxcontent = searchresult.gpxfile.to_xml()
gpxcontent_escaped = searchresult.gpxfile.to_xml().replace("\\", "\\\\").replace("'", "\\'").replace('"', '\\"')
gpxcontent_base64 = base64.b64encode(gpxcontent.encode("utf-8")).decode("utf-8")
print("""
<html>
@@ -80,20 +81,6 @@ print("""
<link rel="stylesheet" type="text/css" href="style.css">
<meta name="robots" content="noindex,nofollow" />
<title>OSM search to GPX</title>
<script type='text/javascript'>
function download_file(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
</script>
</head>
<body class=body>
<div class=head>
@@ -101,11 +88,11 @@ function download_file(filename, text) {
</div>
<div class=box>
<h4>Success</h4>
Copy file content from here:
<br>
<textarea rows=10 cols=80 style="font-family: monospace;">"""
+ gpxcontent +
"""</textarea>
""" + f"""
<a href="data:text/xml;base64,{gpxcontent_base64}"
""" + """
download="search.gpx">Download GPX file here</a>
<br><br>
<a href=index.html>Return to search page</a>
@@ -116,18 +103,3 @@ OSMsearchToGPX - ein Service von <a href=https://dukun.de>dukun.de</a>
</body>
</html>
""")
# TODO download button does not work this way!
#"""</textarea>
#<br>
#or <button onclick="download_file('OSMsearch.gpx', '{gpxcontent}')">dowload here</button> (requires enabled JavaScript).
#
#<br><br>
#<a href=index.html>Return to search page</a>
#
#</div>
#<div class=foot>
#OSMsearchToGPX - ein Service von <a href=https://dukun.de>dukun.de</a>
#</div>
#</body>
#</html>
#""".format(gpxcontent=gpxcontent_escaped))