mirror of
				https://git.sr.ht/~tsileo/microblog.pub
				synced 2025-06-05 21:59:23 +02:00 
			
		
		
		
	Fix URL generation when not at domain root
This commit is contained in:
		
				
					committed by
					
						
						Thomas Sileo
					
				
			
			
				
	
			
			
			
						parent
						
							242bf7b515
						
					
				
				
					commit
					1c076049cf
				
			@@ -179,7 +179,7 @@ if CONFIG.emoji:
 | 
			
		||||
    EMOJIS = CONFIG.emoji
 | 
			
		||||
 | 
			
		||||
# Emoji template for the FE
 | 
			
		||||
EMOJI_TPL = '<img src="/static/twemoji/{filename}.svg" alt="{raw}" class="emoji">'
 | 
			
		||||
EMOJI_TPL = '<img src="{base_url}/static/twemoji/{filename}.svg" alt="{raw}" class="emoji">'
 | 
			
		||||
 | 
			
		||||
_load_emojis(ROOT_DIR, BASE_URL)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ def proxied_media_url(url: str) -> str:
 | 
			
		||||
    if url.startswith(BASE_URL):
 | 
			
		||||
        return url
 | 
			
		||||
 | 
			
		||||
    return "/proxy/media/" + base64.urlsafe_b64encode(url.encode()).decode()
 | 
			
		||||
    return BASE_URL + "/proxy/media/" + base64.urlsafe_b64encode(url.encode()).decode()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def resized_media_url(url: str, size: int) -> str:
 | 
			
		||||
 
 | 
			
		||||
@@ -59,13 +59,13 @@ def _filter_domain(text: str) -> str:
 | 
			
		||||
 | 
			
		||||
def _media_proxy_url(url: str | None) -> str:
 | 
			
		||||
    if not url:
 | 
			
		||||
        return "/static/nopic.png"
 | 
			
		||||
        return BASE_URL + "/static/nopic.png"
 | 
			
		||||
 | 
			
		||||
    if url.startswith(BASE_URL):
 | 
			
		||||
        return url
 | 
			
		||||
 | 
			
		||||
    encoded_url = base64.urlsafe_b64encode(url.encode()).decode()
 | 
			
		||||
    return f"/proxy/media/{encoded_url}"
 | 
			
		||||
    return BASE_URL + f"/proxy/media/{encoded_url}"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def is_current_user_admin(request: Request) -> bool:
 | 
			
		||||
@@ -388,7 +388,7 @@ def _html2text(content: str) -> str:
 | 
			
		||||
 | 
			
		||||
def _replace_emoji(u: str, _) -> str:
 | 
			
		||||
    filename = "-".join(hex(ord(c))[2:] for c in u)
 | 
			
		||||
    return config.EMOJI_TPL.format(filename=filename, raw=u)
 | 
			
		||||
    return config.EMOJI_TPL.format(base_url=BASE_URL, filename=filename, raw=u)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _emojify(text: str, is_local: bool) -> str:
 | 
			
		||||
 
 | 
			
		||||
@@ -90,5 +90,5 @@
 | 
			
		||||
    </p>
 | 
			
		||||
</form>
 | 
			
		||||
</div>
 | 
			
		||||
<script src="/static/new.js?v={{ JS_HASH }}"></script>
 | 
			
		||||
<script src="{{ BASE_URL }}/static/new.js?v={{ JS_HASH }}"></script>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
{%- macro header_link(url, text) -%}
 | 
			
		||||
{% set url_for = request.app.router.url_path_for(url) %}
 | 
			
		||||
{% set url_for = BASE_URL + request.app.router.url_path_for(url) %}
 | 
			
		||||
<a href="{{ url_for }}" {% if request.url.path == url_for %}class="active"{% endif %}>{{ text }}</a>
 | 
			
		||||
{% endmacro %}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -4,11 +4,11 @@
 | 
			
		||||
<meta charset="utf-8">
 | 
			
		||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
 | 
			
		||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
			
		||||
<link rel="stylesheet" href="/static/css/main.css?v={{ CSS_HASH }}">
 | 
			
		||||
<link rel="stylesheet" href="{{ BASE_URL }}/static/css/main.css?v={{ CSS_HASH }}">
 | 
			
		||||
<link rel="alternate" title="{{ local_actor.display_name}}'s microblog" type="application/json" href="{{ url_for("json_feed") }}" />
 | 
			
		||||
<link rel="alternate" href="{{ url_for("rss_feed") }}" type="application/rss+xml" title="{{ local_actor.display_name}}'s microblog">
 | 
			
		||||
<link rel="alternate" href="{{ url_for("atom_feed") }}" type="application/atom+xml" title="{{ local_actor.display_name}}'s microblog">
 | 
			
		||||
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
 | 
			
		||||
<link rel="icon" type="image/x-icon" href="{{ BASE_URL }}/static/favicon.ico">
 | 
			
		||||
<style>{{ highlight_css }}</style>
 | 
			
		||||
{% block head %}{% endblock %}
 | 
			
		||||
</head>
 | 
			
		||||
@@ -18,7 +18,7 @@
 | 
			
		||||
{% if is_admin %}
 | 
			
		||||
<div id="admin">
 | 
			
		||||
{% macro admin_link(url, text) %}
 | 
			
		||||
{% set url_for = request.app.router.url_path_for(url) %}
 | 
			
		||||
{% set url_for = BASE_URL + request.app.router.url_path_for(url) %}
 | 
			
		||||
<a href="{{ url_for }}" {% if request.url.path == url_for %}class="active"{% endif %}>{{ text }}</a>
 | 
			
		||||
{% endmacro %}
 | 
			
		||||
<div class="admin-menu">
 | 
			
		||||
@@ -53,7 +53,7 @@
 | 
			
		||||
    </div>
 | 
			
		||||
</footer>
 | 
			
		||||
{% if is_admin %}
 | 
			
		||||
<script src="/static/common-admin.js?v={{ JS_HASH }}"></script>
 | 
			
		||||
<script src="{{ BASE_URL }}/static/common-admin.js?v={{ JS_HASH }}"></script>
 | 
			
		||||
{% endif %}
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -124,14 +124,14 @@
 | 
			
		||||
{% endmacro %}
 | 
			
		||||
 | 
			
		||||
{% macro admin_reply_button(ap_object_id) %}
 | 
			
		||||
<form action="/admin/new"  method="GET">
 | 
			
		||||
<form action="{{ BASE_URL }}/admin/new"  method="GET">
 | 
			
		||||
<input type="hidden" name="in_reply_to" value="{{ ap_object_id }}">
 | 
			
		||||
<button type="submit">reply</button>
 | 
			
		||||
</form> 
 | 
			
		||||
{% endmacro %}
 | 
			
		||||
 | 
			
		||||
{% macro admin_dm_button(actor_handle) %}
 | 
			
		||||
<form action="/admin/new"  method="GET">
 | 
			
		||||
<form action="{{ BASE_URL }}/admin/new"  method="GET">
 | 
			
		||||
<input type="hidden" name="with_content" value="{{ actor_handle }}">
 | 
			
		||||
<input type="hidden" name="with_visibility" value="DIRECT">
 | 
			
		||||
<button type="submit">direct message</button>
 | 
			
		||||
@@ -139,7 +139,7 @@
 | 
			
		||||
{% endmacro %}
 | 
			
		||||
 | 
			
		||||
{% macro admin_mention_button(actor_handle) %}
 | 
			
		||||
<form action="/admin/new"  method="GET">
 | 
			
		||||
<form action="{{ BASE_URL }}/admin/new"  method="GET">
 | 
			
		||||
<input type="hidden" name="with_content" value="{{ actor_handle }}">
 | 
			
		||||
<button type="submit">mention</button>
 | 
			
		||||
</form> 
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user