diff --git a/config/accounts.json.example b/config/accounts.json.example index 8410a87..5293c90 100644 --- a/config/accounts.json.example +++ b/config/accounts.json.example @@ -7,7 +7,9 @@ "authelia_user": "mmustermann", "custom_links": [ {"label": "Google Suche", "url": "https://www.google.com/search?q=[fullname]"}, - {"label": "LinkedIn", "url": "https://www.linkedin.com/search/results/all/?keywords=[fullname]"} + {"label": "LinkedIn", "url": "https://www.linkedin.com/search/results/all/?keywords=[fullname]"}, + {"label": "Google Maps Home", "url": "https://www.google.com/maps?q=[homecity]"}, + {"label": "Google Maps Work", "url": "https://www.google.com/maps?q=[workcity]"} ] }, { diff --git a/src/api/main.py b/src/api/main.py index 54706dd..69ed8d0 100644 --- a/src/api/main.py +++ b/src/api/main.py @@ -356,6 +356,18 @@ def web_contact( contact = _row_to_contact_out(row) + homecity = "" + workcity = "" + for addr in contact.get("addresses", []): + city = (addr.get("city") or "").strip() + if not city: + continue + addr_type = (addr.get("type") or "").lower() + if addr_type == "home" and not homecity: + homecity = city + elif addr_type == "work" and not workcity: + workcity = city + custom_links = [] contact_account = contact.get("account") if contact_account: @@ -365,6 +377,18 @@ def web_contact( custom_links = acc.custom_links break + resolved_links = [] + for link in custom_links: + url = link["url"] + if "[homecity]" in url and not homecity: + continue + if "[workcity]" in url and not workcity: + continue + url = url.replace("[fullname]", quote_plus(contact.get("full_name") or "")) + url = url.replace("[homecity]", quote_plus(homecity)) + url = url.replace("[workcity]", quote_plus(workcity)) + resolved_links.append({"label": link["label"], "url": url}) + return templates.TemplateResponse( "contact.html", { @@ -374,6 +398,6 @@ def web_contact( "show_all": show_all, "contact": contact, "search": search or "", - "custom_links": custom_links, + "custom_links": resolved_links, }, ) diff --git a/src/api/templates/contact.html b/src/api/templates/contact.html index e61cf77..004b9d7 100644 --- a/src/api/templates/contact.html +++ b/src/api/templates/contact.html @@ -394,7 +394,7 @@
Schnelllinks
{% for link in custom_links %} - + {{ link.label }} {% endfor %}