From 54021f5f6847a02bde9d271c902afaa71fbdb8aa Mon Sep 17 00:00:00 2001 From: s3lph Date: Sun, 9 Oct 2022 02:26:47 +0200 Subject: [PATCH] License --- LICENSE | 21 +++++++++++++++++++++ README.md | 17 ++++++++++++++++- generate_map.py | 9 +++++---- 3 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0131699 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 s3lph + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 7d93dba..1c9f20e 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,13 @@ Generate a map similar to https://www.ccc.de/regional from Wikidata and the doku.ccc.de Semantic MediaWiki data. +## TL;DR + +``` +pip3 install -r requirements.txt +./generate_map.py --update-erfalist +``` + ![Map as generated by this tool](map.readme.png) ## Installation @@ -45,6 +52,14 @@ A run without cache takes some time as it fetches all data from their sources: **Use the cache at least for the country and state borders. Otherwise, Wikidata will start rate limiting pretty quickly.** -## Fonts +## License + +Unless otherwise noted, the contents of this repository are licensed under the MIT License (See LICENSE). + +### Fonts The font contained in `style/concertone-regular.ttf` was created by Johan Kallas (johankallas@gmail.com) and is licensed unter the terms of the SIL Open Font License v1.10. + +### Geoshape Data + +The geoshape data contained in `cache.example` is in the public domain. diff --git a/generate_map.py b/generate_map.py index ac2a235..e8fe35e 100755 --- a/generate_map.py +++ b/generate_map.py @@ -1,4 +1,6 @@ #!/usr/bin/env python3 +# +# https://git.kabelsalat.ch/s3lph/erfamap import os import urllib.request @@ -34,10 +36,6 @@ class CachePaths: self.chaostreff_info = os.path.join(path, 'chaostreff-info.json') -#BOUNDING_BOX = [(4.27775, 46.7482713), (19.2403594, 54.9833021)] -# --bbox 4.27775 46.7482713 19.2403594 54.9833021 - - ERFA_URL = 'https://doku.ccc.de/Spezial:Semantische_Suche/format%3Djson/limit%3D50/link%3Dall/headers%3Dshow/searchlabel%3DJSON/class%3Dsortable-20wikitable-20smwtable/sort%3D/order%3Dasc/offset%3D0/-5B-5BKategorie:Erfa-2DKreise-5D-5D-20-5B-5BChaostreff-2DActive::wahr-5D-5D/-3FChaostreff-2DCity/-3FChaostreff-2DPhysical-2DAddress/-3FChaostreff-2DPhysical-2DHousenumber/-3FChaostreff-2DPhysical-2DPostcode/-3FChaostreff-2DPhysical-2DCity/-3FChaostreff-2DCountry/mainlabel%3D/prettyprint%3Dtrue/unescape%3Dtrue' CHAOSTREFF_URL = 'https://doku.ccc.de/Spezial:Semantische_Suche/format%3Djson/limit%3D50/link%3Dall/headers%3Dshow/searchlabel%3DJSON/class%3Dsortable-20wikitable-20smwtable/sort%3D/order%3Dasc/offset%3D0/-5B-5BKategorie:Chaostreffs-5D-5D-20-5B-5BChaostreff-2DActive::wahr-5D-5D/-3FChaostreff-2DCity/-3FChaostreff-2DPhysical-2DAddress/-3FChaostreff-2DPhysical-2DHousenumber/-3FChaostreff-2DPhysical-2DPostcode/-3FChaostreff-2DPhysical-2DCity/-3FChaostreff-2DCountry/mainlabel%3D/prettyprint%3Dtrue/unescape%3Dtrue' @@ -74,6 +72,9 @@ def fetch_geoshapes(target, shape_urls): try: with urllib.request.urlopen(url) as resp: shape = json.load(resp) + if not shape.get('license', 'proprietary').startswith('CC0-'): + # Only include public domain data + continue candidates.setdefault(item, []).append(shape) except urllib.error.HTTPError as e: print(e)