commit - da7270e14b4f810371885c511c8759b8de007235
commit + fafb2ce7fd7a140705547330b120fa1e68c0d961
blob - edaab424439a0b9fa01c3353b276d9006bc1c348
blob + d110abd2c054f4b095428779a88ab0be21bcce59
--- lonk.py
+++ lonk.py
("gemini", self._splitted_url.netloc, "/".join(self._base_path + page), query, "")
)
+ def media(self, mime, url):
+ return self.build("proxy", urlencode({"m": mime, "u": url})) if mime else url
+
@property
def query(self):
return self._splitted_url.query
return json_loads(f.read().decode("utf8"))
-def _proxy_url_factory(proxy_media_enabled, lonk_url):
- def _get_proxy_url(mime, url):
- return (
- lonk_url.build("proxy", urlencode({"m": mime, "u": url}))
- if mime and proxy_media_enabled else
- url
- )
- return _get_proxy_url
-
-
def _create_schema(db_con):
db_con.execute(
"""
cert_hash TEXT UNIQUE,
honk_url TEXT NOT NULL,
token TEXT NOT NULL
- )
- """
- )
- db_con.execute(
- """
- CREATE TABLE
- client_settings (
- client_id INTEGER,
- media_gemini_proxy INTEGER,
- FOREIGN KEY (client_id) REFERENCES client (client_id)
)
"""
)
return rv
-def lonk(db_con, client_id, lonk_url, honk_url, fn_media_url):
+def lonk(db_con, client_id, lonk_url, honk_url):
gethonks_answer = honk_url.do_get(action="gethonks", page="home")
lonk_page = {}
for honk in reversed(gethonks_answer.get("honks") or []):
lines = [
f"## From {collected.honker}{collected.format_reason()} {collected.date}",
f'=> {lonk_url.build("convoy", urlencode({"c": collected.convoy}))} Convoy {collected.convoy}',
- HtmlToGmi(honk_url.build_url(), fn_media_url).feed(collected.html)
+ HtmlToGmi(honk_url.build_url(), lonk_url.media).feed(collected.html)
]
for donk_url, donk_mime, donk_text in collected.iterate_donks(db_con):
- lines.append(f'=> {fn_media_url(donk_mime, donk_url)}')
+ lines.append(f'=> {lonk_url.media(donk_mime, donk_url)}')
if donk_text:
lines.append(donk_text)
print("\r\n".join(lines))
print("\r")
-def convoy(db_con, client_id, lonk_url, honk_url, fn_media_url):
+def convoy(db_con, client_id, lonk_url, honk_url):
query = {pair[0]: pair[1] for pair in parse_qsl(lonk_url.query)}
if "c" not in query:
print("51 Not found\r")
print("20 text/gemini\r")
print(f"# 𝓗 onk: convoy {query['c']}\r")
print("\r")
- _gethonks(gethonks_answer, lonk_url, honk_url, fn_media_url)
+ _gethonks(gethonks_answer, lonk_url, honk_url)
-def atme(db_con, client_id, lonk_url, honk_url, fn_media_url):
+def atme(db_con, client_id, lonk_url, honk_url):
gethonks_answer = honk_url.do_get(action="gethonks", page="atme")
print("20 text/gemini\r")
print("# 𝓗 onk: @me")
print("\r")
- _gethonks(gethonks_answer, lonk_url, honk_url, fn_media_url)
+ _gethonks(gethonks_answer, lonk_url, honk_url)
-def _gethonks(gethonks_answer, lonk_url, honk_url, fn_media_url):
+def _gethonks(gethonks_answer, lonk_url, honk_url):
line = f"=> {lonk_url.build('atme')} @me"
if gethonks_answer["mecount"]:
line += f' ({gethonks_answer["mecount"]})'
]
if re_url:
lines.append(f'=> {re_url} Re: {re_url}')
- lines.append(HtmlToGmi(honk_url.build_url(), fn_media_url).feed(honk["HTML"]))
+ lines.append(HtmlToGmi(honk_url.build_url(), lonk_url.media).feed(honk["HTML"]))
for donk in honk.get("Donks") or []:
donk_url = honk_url.build_url(path=f'/d/{donk["XID"]}') if donk.get("XID") else donk["URL"]
donk_mime, donk_text = donk["Media"], donk.get("Desc") or donk.get("Name") or None
- lines.append(f'=> {fn_media_url(donk_mime, donk_url)}')
+ lines.append(f'=> {lonk_url.media(donk_mime, donk_url)}')
if donk_text:
lines.append(donk_text)
print("\r\n".join(lines))
if not row:
print(f'30 {lonk_url.build("ask_server")}\r')
return
- fn_media_url = _proxy_url_factory(environ.get("LONK_PROXY_MEDIA"), lonk_url)
client_id, honk_url, token = row
with db_con:
- fn_impl(db_con, client_id, lonk_url, HonkUrl(honk_url, token), fn_media_url)
+ fn_impl(db_con, client_id, lonk_url, HonkUrl(honk_url, token))
def proxy(mime, url):