diff --git a/maps.py b/maps.py
index bfefed4cf..07aff9e28 100644
--- a/maps.py
+++ b/maps.py
@@ -97,6 +97,17 @@ def _get_location_from_tags(tags: []) -> str:
return None
+def _get_category_from_tags(tags: []) -> str:
+ """Returns the location category from the tags list
+ """
+ locn = get_location_dict_from_tags(tags)
+ if locn:
+ if locn.get('category'):
+ location_str = remove_html(locn['category'])
+ return location_str
+ return None
+
+
def html_address_book_list(base_dir: str, nickname: str, domain: str) -> str:
"""Creates a list of potential addresses when creating a new post
with a location
@@ -211,6 +222,30 @@ def get_location_from_post(post_json_object: {}) -> str:
return locn
+def get_category_from_post(post_json_object: {}) -> str:
+ """Returns the location category for the given post
+ """
+ locn = None
+
+ # location represented via a tag
+ post_obj = post_json_object
+ if has_object_dict(post_json_object):
+ post_obj = post_json_object['object']
+ if post_obj.get('tag'):
+ if isinstance(post_obj['tag'], list):
+ locn = _get_category_from_tags(post_obj['tag'])
+
+ # location representation used by pixelfed
+ locn2 = None
+ if post_obj.get('location'):
+ locn2 = post_obj['location']
+ if isinstance(locn2, dict):
+ if locn2.get('category'):
+ locn = remove_html(locn2['category'])
+
+ return locn
+
+
def _geocoords_from_osm_link(url: str, osm_domain: str) -> (int, float, float):
"""Returns geocoordinates from an OSM map link
"""
diff --git a/webapp_post.py b/webapp_post.py
index bec60721c..e419e45a9 100644
--- a/webapp_post.py
+++ b/webapp_post.py
@@ -131,6 +131,7 @@ from maps import set_map_preferences_coords
from maps import set_map_preferences_url
from maps import geocoords_from_map_link
from maps import get_location_from_post
+from maps import get_category_from_post
from session import get_json_valid
from session import get_json
@@ -3187,6 +3188,10 @@ def individual_post_as_html(signing_priv_key_pem: str,
buy_links = get_buy_links(post_json_object, translate, buy_sites)
# show embedded map if the location contains a map url
location_str = get_location_from_post(post_json_object)
+ category_str = ''
+ if location_str:
+ category_str = get_category_from_post(post_json_object)
+
loc_str = location_str
if location_str:
# if this is a location with an address then remove the address
@@ -3250,6 +3255,12 @@ def individual_post_as_html(signing_priv_key_pem: str,
'
' + translate['Address'] + ':
' + category_text + ': ' + \ + category_str + '
\n' locn_text = 'Location' if translate.get('Location'): locn_text = translate['Location']