mirror of https://gitlab.com/bashrc2/epicyon
Merge branch 'main' of gitlab.com:bashrc2/epicyon
commit
dd36ffbc28
87
daemon.py
87
daemon.py
|
@ -183,6 +183,7 @@ from webapp_confirm import html_confirm_unblock
|
||||||
from webapp_person_options import person_minimize_images
|
from webapp_person_options import person_minimize_images
|
||||||
from webapp_person_options import person_undo_minimize_images
|
from webapp_person_options import person_undo_minimize_images
|
||||||
from webapp_person_options import html_person_options
|
from webapp_person_options import html_person_options
|
||||||
|
from webapp_timeline import text_mode_browser
|
||||||
from webapp_timeline import html_shares
|
from webapp_timeline import html_shares
|
||||||
from webapp_timeline import html_wanted
|
from webapp_timeline import html_wanted
|
||||||
from webapp_timeline import html_inbox
|
from webapp_timeline import html_inbox
|
||||||
|
@ -655,12 +656,12 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
if 'audio/' in accept_str:
|
if 'audio/' in accept_str:
|
||||||
if 'text/html' not in accept_str:
|
if 'text/html' not in accept_str:
|
||||||
return False
|
return False
|
||||||
if accept_str.startswith('*'):
|
if accept_str.startswith('*') or 'text/html' in accept_str:
|
||||||
if self.headers.get('User-Agent'):
|
if self.headers.get('User-Agent'):
|
||||||
if 'ELinks' in self.headers['User-Agent'] or \
|
if text_mode_browser(self.headers['User-Agent']):
|
||||||
'Lynx' in self.headers['User-Agent']:
|
|
||||||
return True
|
return True
|
||||||
return False
|
if 'text/html' not in accept_str:
|
||||||
|
return False
|
||||||
if 'json' in accept_str:
|
if 'json' in accept_str:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
@ -11751,7 +11752,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
allow_deletion: bool,
|
allow_deletion: bool,
|
||||||
project_version: str,
|
project_version: str,
|
||||||
yt_replace_domain: str,
|
yt_replace_domain: str,
|
||||||
twitter_replacement_domain: str) -> bool:
|
twitter_replacement_domain: str,
|
||||||
|
ua_str: str) -> bool:
|
||||||
"""Shows the inbox timeline
|
"""Shows the inbox timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -11865,7 +11867,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles,
|
||||||
|
ua_str)
|
||||||
if getreq_start_time:
|
if getreq_start_time:
|
||||||
fitness_performance(getreq_start_time,
|
fitness_performance(getreq_start_time,
|
||||||
self.server.fitness,
|
self.server.fitness,
|
||||||
|
@ -11928,7 +11931,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the DMs timeline
|
"""Shows the DMs timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12036,7 +12039,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12088,7 +12091,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
onion_domain: str, i2p_domain: str,
|
onion_domain: str, i2p_domain: str,
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str, debug: str,
|
proxy_type: str, cookie: str, debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the replies timeline
|
"""Shows the replies timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12196,7 +12199,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles,
|
||||||
|
ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12248,7 +12252,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the media timeline
|
"""Shows the media timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12354,7 +12358,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12406,7 +12410,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the blogs timeline
|
"""Shows the blogs timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12512,7 +12516,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12565,7 +12569,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the news timeline
|
"""Shows the news timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12679,7 +12683,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12731,7 +12735,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the features timeline (all local blogs)
|
"""Shows the features timeline (all local blogs)
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12849,7 +12853,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12900,7 +12904,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the shares timeline
|
"""Shows the shares timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -12968,7 +12972,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.signing_priv_key_pem,
|
self.server.signing_priv_key_pem,
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled, timezone,
|
self.server.lists_enabled, timezone,
|
||||||
bold_reading, self.server.dogwhistles)
|
bold_reading, self.server.dogwhistles,
|
||||||
|
ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -12994,7 +12999,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the wanted timeline
|
"""Shows the wanted timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -13062,7 +13067,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -13089,7 +13094,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the bookmarks timeline
|
"""Shows the bookmarks timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -13199,7 +13204,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -13250,7 +13255,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the outbox timeline
|
"""Shows the outbox timeline
|
||||||
"""
|
"""
|
||||||
# get outbox feed for a person
|
# get outbox feed for a person
|
||||||
|
@ -13350,7 +13355,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles, ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -13390,7 +13395,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type: str, cookie: str,
|
proxy_type: str, cookie: str,
|
||||||
debug: str,
|
debug: str,
|
||||||
curr_session) -> bool:
|
curr_session, ua_str: str) -> bool:
|
||||||
"""Shows the moderation timeline
|
"""Shows the moderation timeline
|
||||||
"""
|
"""
|
||||||
if '/users/' in path:
|
if '/users/' in path:
|
||||||
|
@ -13498,7 +13503,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.cw_lists,
|
self.server.cw_lists,
|
||||||
self.server.lists_enabled,
|
self.server.lists_enabled,
|
||||||
timezone, bold_reading,
|
timezone, bold_reading,
|
||||||
self.server.dogwhistles)
|
self.server.dogwhistles,
|
||||||
|
ua_str)
|
||||||
msg = msg.encode('utf-8')
|
msg = msg.encode('utf-8')
|
||||||
msglen = len(msg)
|
msglen = len(msg)
|
||||||
self._set_headers('text/html', msglen,
|
self._set_headers('text/html', msglen,
|
||||||
|
@ -18091,7 +18097,8 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self.server.allow_deletion,
|
self.server.allow_deletion,
|
||||||
self.server.project_version,
|
self.server.project_version,
|
||||||
self.server.yt_replace_domain,
|
self.server.yt_replace_domain,
|
||||||
self.server.twitter_replacement_domain):
|
self.server.twitter_replacement_domain,
|
||||||
|
ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18114,7 +18121,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18137,7 +18144,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18160,7 +18167,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18183,7 +18190,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18206,7 +18213,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18226,7 +18233,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18248,7 +18255,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18266,7 +18273,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18368,7 +18375,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18392,7 +18399,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
@ -18416,7 +18423,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
getreq_start_time,
|
getreq_start_time,
|
||||||
proxy_type,
|
proxy_type,
|
||||||
cookie, self.server.debug,
|
cookie, self.server.debug,
|
||||||
curr_session):
|
curr_session, ua_str):
|
||||||
self.server.getreq_busy = False
|
self.server.getreq_busy = False
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
|
@ -47,86 +47,23 @@ def header_buttons_timeline(default_timeline: str,
|
||||||
calendar_image: str,
|
calendar_image: str,
|
||||||
follow_approvals: str,
|
follow_approvals: str,
|
||||||
icons_as_buttons: bool,
|
icons_as_buttons: bool,
|
||||||
access_keys: {}) -> str:
|
access_keys: {},
|
||||||
|
is_text_browser: str) -> str:
|
||||||
"""Returns the header at the top of the timeline, containing
|
"""Returns the header at the top of the timeline, containing
|
||||||
buttons for inbox, outbox, search, calendar, etc
|
buttons for inbox, outbox, search, calendar, etc
|
||||||
"""
|
"""
|
||||||
# start of the button header with inbox, outbox, etc
|
# start of the button header with inbox, outbox, etc
|
||||||
tl_str = '<div id="containerHeader" class="containerHeader"><nav>\n'
|
tl_str = '<div id="containerHeader" class="containerHeader"><nav>\n'
|
||||||
# first button
|
|
||||||
if default_timeline == 'tlmedia':
|
|
||||||
tl_str += \
|
|
||||||
'<a href="' + users_path + '/tlmedia" tabindex="2" ' + \
|
|
||||||
'accesskey="' + access_keys['menuMedia'] + '"'
|
|
||||||
if box_name == 'tlmedia':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
'><button class="' + \
|
|
||||||
media_button + '"><span>' + translate['Media'] + \
|
|
||||||
'</span></button></a>'
|
|
||||||
elif default_timeline == 'tlblogs':
|
|
||||||
tl_str += \
|
|
||||||
'<a href="' + users_path + \
|
|
||||||
'/tlblogs" tabindex="2"'
|
|
||||||
if box_name == 'tlblogs':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
'><button class="' + \
|
|
||||||
blogs_button + '" accesskey="' + access_keys['menuBlogs'] + \
|
|
||||||
'"><span>' + translate['Blogs'] + '</span></button></a>'
|
|
||||||
elif default_timeline == 'tlfeatures':
|
|
||||||
tl_str += \
|
|
||||||
'<a href="' + users_path + \
|
|
||||||
'/tlfeatures" tabindex="2"'
|
|
||||||
if box_name == 'tlfeatures':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
'><button class="' + \
|
|
||||||
features_button + '"><span>' + translate['Features'] + \
|
|
||||||
'</span></button></a>'
|
|
||||||
else:
|
|
||||||
tl_str += \
|
|
||||||
'<a href="' + users_path + \
|
|
||||||
'/inbox" tabindex="2"><button class="' + \
|
|
||||||
inbox_button + '"'
|
|
||||||
if box_name == 'inbox':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
' accesskey="' + access_keys['menuInbox'] + '">' + \
|
|
||||||
'<span>' + translate['Inbox'] + '</span></button></a>'
|
|
||||||
|
|
||||||
# if this is a news instance and we are viewing the news timeline
|
# if this is a news instance and we are viewing the news timeline
|
||||||
features_header = False
|
features_header = False
|
||||||
if default_timeline == 'tlfeatures' and box_name == 'tlfeatures':
|
if default_timeline == 'tlfeatures' and box_name == 'tlfeatures':
|
||||||
features_header = True
|
features_header = True
|
||||||
|
|
||||||
if not features_header:
|
if not is_text_browser:
|
||||||
tl_str += \
|
|
||||||
'<a href="' + users_path + '/dm" tabindex="2"'
|
|
||||||
if box_name == 'dm':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
'><button class="' + dm_button + \
|
|
||||||
'" accesskey="' + access_keys['menuDM'] + '">' + \
|
|
||||||
'<span>' + html_highlight_label(translate['DM'], new_dm) + \
|
|
||||||
'</span></button></a>'
|
|
||||||
|
|
||||||
replies_index_filename = \
|
# first button
|
||||||
acct_dir(base_dir, nickname, domain) + '/tlreplies.index'
|
if default_timeline == 'tlmedia':
|
||||||
if os.path.isfile(replies_index_filename):
|
|
||||||
tl_str += \
|
|
||||||
'<a href="' + users_path + '/tlreplies" tabindex="2"'
|
|
||||||
if box_name == 'tlreplies':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
'><button class="' + replies_button + '" ' + \
|
|
||||||
'accesskey="' + access_keys['menuReplies'] + '"><span>' + \
|
|
||||||
html_highlight_label(translate['Replies'], new_reply) + \
|
|
||||||
'</span></button></a>'
|
|
||||||
|
|
||||||
# typically the media button
|
|
||||||
if default_timeline != 'tlmedia':
|
|
||||||
if not minimal and not features_header:
|
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a href="' + users_path + '/tlmedia" tabindex="2" ' + \
|
'<a href="' + users_path + '/tlmedia" tabindex="2" ' + \
|
||||||
'accesskey="' + access_keys['menuMedia'] + '"'
|
'accesskey="' + access_keys['menuMedia'] + '"'
|
||||||
|
@ -136,34 +73,72 @@ def header_buttons_timeline(default_timeline: str,
|
||||||
'><button class="' + \
|
'><button class="' + \
|
||||||
media_button + '"><span>' + translate['Media'] + \
|
media_button + '"><span>' + translate['Media'] + \
|
||||||
'</span></button></a>'
|
'</span></button></a>'
|
||||||
else:
|
elif default_timeline == 'tlblogs':
|
||||||
if not minimal:
|
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a href="' + users_path + \
|
'<a href="' + users_path + \
|
||||||
'/inbox" tabindex="2"'
|
'/tlblogs" tabindex="2"'
|
||||||
if box_name == 'inbox':
|
if box_name == 'tlblogs':
|
||||||
tl_str += ' aria-current="location"'
|
tl_str += ' aria-current="location"'
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'><button class="' + \
|
'><button class="' + \
|
||||||
inbox_button + '"><span>' + translate['Inbox'] + \
|
blogs_button + '" accesskey="' + access_keys['menuBlogs'] + \
|
||||||
|
'"><span>' + translate['Blogs'] + '</span></button></a>'
|
||||||
|
elif default_timeline == 'tlfeatures':
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + \
|
||||||
|
'/tlfeatures" tabindex="2"'
|
||||||
|
if box_name == 'tlfeatures':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
'><button class="' + \
|
||||||
|
features_button + '"><span>' + translate['Features'] + \
|
||||||
|
'</span></button></a>'
|
||||||
|
else:
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + \
|
||||||
|
'/inbox" tabindex="2"><button class="' + \
|
||||||
|
inbox_button + '"'
|
||||||
|
if box_name == 'inbox':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
' accesskey="' + access_keys['menuInbox'] + '">' + \
|
||||||
|
'<span>' + translate['Inbox'] + '</span></button></a>'
|
||||||
|
|
||||||
|
if not features_header:
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + '/dm" tabindex="2"'
|
||||||
|
if box_name == 'dm':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
'><button class="' + dm_button + \
|
||||||
|
'" accesskey="' + access_keys['menuDM'] + '">' + \
|
||||||
|
'<span>' + html_highlight_label(translate['DM'], new_dm) + \
|
||||||
'</span></button></a>'
|
'</span></button></a>'
|
||||||
|
|
||||||
if not features_header:
|
replies_index_filename = \
|
||||||
# typically the blogs button
|
acct_dir(base_dir, nickname, domain) + '/tlreplies.index'
|
||||||
# but may change if this is a blogging oriented instance
|
if os.path.isfile(replies_index_filename):
|
||||||
if default_timeline != 'tlblogs':
|
|
||||||
if not minimal:
|
|
||||||
title_str = translate['Blogs']
|
|
||||||
if default_timeline == 'tlfeatures':
|
|
||||||
title_str = translate['Article']
|
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a href="' + users_path + \
|
'<a href="' + users_path + '/tlreplies" tabindex="2"'
|
||||||
'/tlblogs" tabindex="2"'
|
if box_name == 'tlreplies':
|
||||||
if box_name == 'tlblogs':
|
|
||||||
tl_str += ' aria-current="location"'
|
tl_str += ' aria-current="location"'
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'><button class="' + blogs_button + '" accesskey="' + \
|
'><button class="' + replies_button + '" ' + \
|
||||||
access_keys['menuBlogs'] + '"><span>' + title_str + \
|
'accesskey="' + access_keys['menuReplies'] + '"><span>' + \
|
||||||
|
html_highlight_label(translate['Replies'], new_reply) + \
|
||||||
|
'</span></button></a>'
|
||||||
|
|
||||||
|
# typically the media button
|
||||||
|
if default_timeline != 'tlmedia':
|
||||||
|
if not minimal and not features_header:
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + '/tlmedia" tabindex="2" ' + \
|
||||||
|
'accesskey="' + access_keys['menuMedia'] + '"'
|
||||||
|
if box_name == 'tlmedia':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
'><button class="' + \
|
||||||
|
media_button + '"><span>' + translate['Media'] + \
|
||||||
'</span></button></a>'
|
'</span></button></a>'
|
||||||
else:
|
else:
|
||||||
if not minimal:
|
if not minimal:
|
||||||
|
@ -177,20 +152,49 @@ def header_buttons_timeline(default_timeline: str,
|
||||||
inbox_button + '"><span>' + translate['Inbox'] + \
|
inbox_button + '"><span>' + translate['Inbox'] + \
|
||||||
'</span></button></a>'
|
'</span></button></a>'
|
||||||
|
|
||||||
# typically the news button
|
|
||||||
# but may change if this is a news oriented instance
|
|
||||||
if default_timeline == 'tlfeatures':
|
|
||||||
if not features_header:
|
if not features_header:
|
||||||
tl_str += \
|
# typically the blogs button
|
||||||
'<a href="' + users_path + \
|
# but may change if this is a blogging oriented instance
|
||||||
'/inbox" tabindex="2"'
|
if default_timeline != 'tlblogs':
|
||||||
if box_name == 'inbox':
|
if not minimal:
|
||||||
tl_str += ' aria-current="location"'
|
title_str = translate['Blogs']
|
||||||
tl_str += \
|
if default_timeline == 'tlfeatures':
|
||||||
'><button class="' + \
|
title_str = translate['Article']
|
||||||
inbox_button + '" accesskey="' + \
|
tl_str += \
|
||||||
access_keys['menuInbox'] + '"><span>' + translate['Inbox'] + \
|
'<a href="' + users_path + \
|
||||||
'</span></button></a>'
|
'/tlblogs" tabindex="2"'
|
||||||
|
if box_name == 'tlblogs':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
'><button class="' + blogs_button + '" accesskey="' + \
|
||||||
|
access_keys['menuBlogs'] + '"><span>' + title_str + \
|
||||||
|
'</span></button></a>'
|
||||||
|
else:
|
||||||
|
if not minimal:
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + \
|
||||||
|
'/inbox" tabindex="2"'
|
||||||
|
if box_name == 'inbox':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
'><button class="' + \
|
||||||
|
inbox_button + '"><span>' + translate['Inbox'] + \
|
||||||
|
'</span></button></a>'
|
||||||
|
|
||||||
|
# typically the news button
|
||||||
|
# but may change if this is a news oriented instance
|
||||||
|
if default_timeline == 'tlfeatures':
|
||||||
|
if not features_header:
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + \
|
||||||
|
'/inbox" tabindex="2"'
|
||||||
|
if box_name == 'inbox':
|
||||||
|
tl_str += ' aria-current="location"'
|
||||||
|
tl_str += \
|
||||||
|
'><button class="' + \
|
||||||
|
inbox_button + '" accesskey="' + \
|
||||||
|
access_keys['menuInbox'] + '"><span>' + \
|
||||||
|
translate['Inbox'] + '</span></button></a>'
|
||||||
|
|
||||||
# show todays events buttons on the first inbox page
|
# show todays events buttons on the first inbox page
|
||||||
happening_str = ''
|
happening_str = ''
|
||||||
|
@ -245,45 +249,49 @@ def header_buttons_timeline(default_timeline: str,
|
||||||
'<button class="button">' + \
|
'<button class="button">' + \
|
||||||
translate['Happening This Week'] + '</button></a>'
|
translate['Happening This Week'] + '</button></a>'
|
||||||
|
|
||||||
if not features_header:
|
if not is_text_browser:
|
||||||
# button for the outbox
|
if not features_header:
|
||||||
tl_str += \
|
# button for the outbox
|
||||||
'<a href="' + users_path + '/outbox"'
|
|
||||||
if box_name == 'outbox':
|
|
||||||
tl_str += ' aria-current="location"'
|
|
||||||
tl_str += \
|
|
||||||
'><button class="' + \
|
|
||||||
sent_button + '" tabindex="2" accesskey="' + \
|
|
||||||
access_keys['menuOutbox'] + '">' + \
|
|
||||||
'<span>' + translate['Sent'] + '</span></button></a>'
|
|
||||||
|
|
||||||
# add other buttons
|
|
||||||
tl_str += \
|
|
||||||
shares_button_str + wanted_button_str + bookmarks_button_str + \
|
|
||||||
events_button_str + \
|
|
||||||
moderation_button_str + happening_str + new_post_button_str
|
|
||||||
|
|
||||||
if not features_header:
|
|
||||||
if not icons_as_buttons:
|
|
||||||
# the search icon
|
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a class="imageAnchor" href="' + users_path + \
|
'<a href="' + users_path + '/outbox"'
|
||||||
'/search" accesskey="' + access_keys['menuSearch'] + \
|
if box_name == 'outbox':
|
||||||
'" tabindex="3">' + \
|
tl_str += ' aria-current="location"'
|
||||||
'<img loading="lazy" decoding="async" src="/' + \
|
|
||||||
'icons/search.png" title="' + \
|
|
||||||
translate['Search and follow'] + '" alt="| ' + \
|
|
||||||
translate['Search and follow'] + \
|
|
||||||
'" class="timelineicon"/></a>'
|
|
||||||
else:
|
|
||||||
# the search button
|
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a href="' + users_path + \
|
'><button class="' + \
|
||||||
'/search" tabindex="3">' + \
|
sent_button + '" tabindex="2" accesskey="' + \
|
||||||
'<button class="button" ' + \
|
access_keys['menuOutbox'] + '">' + \
|
||||||
'accesskey="' + access_keys['menuSearch'] + '>' + \
|
'<span>' + translate['Sent'] + '</span></button></a>'
|
||||||
'<span>' + translate['Search'] + \
|
|
||||||
'</span></button></a>'
|
# add other buttons
|
||||||
|
tl_str += \
|
||||||
|
shares_button_str + wanted_button_str + \
|
||||||
|
bookmarks_button_str + events_button_str + \
|
||||||
|
moderation_button_str + happening_str + new_post_button_str
|
||||||
|
else:
|
||||||
|
tl_str += happening_str
|
||||||
|
|
||||||
|
if not is_text_browser:
|
||||||
|
if not features_header:
|
||||||
|
if not icons_as_buttons:
|
||||||
|
# the search icon
|
||||||
|
tl_str += \
|
||||||
|
'<a class="imageAnchor" href="' + users_path + \
|
||||||
|
'/search" accesskey="' + access_keys['menuSearch'] + \
|
||||||
|
'" tabindex="3">' + \
|
||||||
|
'<img loading="lazy" decoding="async" src="/' + \
|
||||||
|
'icons/search.png" title="' + \
|
||||||
|
translate['Search and follow'] + '" alt="| ' + \
|
||||||
|
translate['Search and follow'] + \
|
||||||
|
'" class="timelineicon"/></a>'
|
||||||
|
else:
|
||||||
|
# the search button
|
||||||
|
tl_str += \
|
||||||
|
'<a href="' + users_path + \
|
||||||
|
'/search" tabindex="3">' + \
|
||||||
|
'<button class="button" ' + \
|
||||||
|
'accesskey="' + access_keys['menuSearch'] + '>' + \
|
||||||
|
'<span>' + translate['Search'] + \
|
||||||
|
'</span></button></a>'
|
||||||
|
|
||||||
# benchmark 5
|
# benchmark 5
|
||||||
time_diff = int((time.time() - timeline_start_time) * 1000)
|
time_diff = int((time.time() - timeline_start_time) * 1000)
|
||||||
|
@ -291,45 +299,47 @@ def header_buttons_timeline(default_timeline: str,
|
||||||
print('TIMELINE TIMING ' + box_name + ' 5 = ' + str(time_diff))
|
print('TIMELINE TIMING ' + box_name + ' 5 = ' + str(time_diff))
|
||||||
|
|
||||||
# the calendar button
|
# the calendar button
|
||||||
if not features_header:
|
if not is_text_browser:
|
||||||
calendar_alt_text = translate['Calendar']
|
if not features_header:
|
||||||
if new_calendar_event:
|
calendar_alt_text = translate['Calendar']
|
||||||
# indicate that the calendar icon is highlighted
|
if new_calendar_event:
|
||||||
calendar_alt_text = '*' + calendar_alt_text + '*'
|
# indicate that the calendar icon is highlighted
|
||||||
if not icons_as_buttons:
|
calendar_alt_text = '*' + calendar_alt_text + '*'
|
||||||
tl_str += \
|
if not icons_as_buttons:
|
||||||
' <a class="imageAnchor" href="' + \
|
tl_str += \
|
||||||
users_path + calendar_path + \
|
' <a class="imageAnchor" href="' + \
|
||||||
'" accesskey="' + access_keys['menuCalendar'] + \
|
users_path + calendar_path + \
|
||||||
'" tabindex="3">' + \
|
'" accesskey="' + access_keys['menuCalendar'] + \
|
||||||
'<img loading="lazy" decoding="async" src="/icons/' + \
|
'" tabindex="3">' + \
|
||||||
calendar_image + '" title="' + translate['Calendar'] + \
|
'<img loading="lazy" decoding="async" src="/icons/' + \
|
||||||
'" alt="| ' + calendar_alt_text + \
|
calendar_image + '" title="' + translate['Calendar'] + \
|
||||||
'" class="timelineicon"/></a>\n'
|
'" alt="| ' + calendar_alt_text + \
|
||||||
else:
|
'" class="timelineicon"/></a>\n'
|
||||||
tl_str += \
|
else:
|
||||||
'<a href="' + users_path + calendar_path + \
|
tl_str += \
|
||||||
'" tabindex="3"><button class="button" accesskey="' + \
|
'<a href="' + users_path + calendar_path + \
|
||||||
access_keys['menuCalendar'] + '">' + \
|
'" tabindex="3"><button class="button" accesskey="' + \
|
||||||
'<span>' + translate['Calendar'] + \
|
access_keys['menuCalendar'] + '">' + \
|
||||||
'</span></button></a>'
|
'<span>' + translate['Calendar'] + \
|
||||||
|
'</span></button></a>'
|
||||||
|
|
||||||
if not features_header:
|
if not features_header:
|
||||||
# the show/hide button, for a simpler header appearance
|
# the show/hide button, for a simpler header appearance
|
||||||
if not icons_as_buttons:
|
if not icons_as_buttons:
|
||||||
tl_str += \
|
tl_str += \
|
||||||
' <a class="imageAnchor" href="' + \
|
' <a class="imageAnchor" href="' + \
|
||||||
users_path + '/minimal" tabindex="3">' + \
|
users_path + '/minimal" tabindex="3">' + \
|
||||||
'<img loading="lazy" decoding="async" src="/icons' + \
|
'<img loading="lazy" decoding="async" src="/icons' + \
|
||||||
'/showhide.png" title="' + translate['Show/Hide Buttons'] + \
|
'/showhide.png" title="' + \
|
||||||
'" alt="| ' + translate['Show/Hide Buttons'] + \
|
translate['Show/Hide Buttons'] + \
|
||||||
'" class="timelineicon"/></a>\n'
|
'" alt="| ' + translate['Show/Hide Buttons'] + \
|
||||||
else:
|
'" class="timelineicon"/></a>\n'
|
||||||
tl_str += \
|
else:
|
||||||
'<a href="' + users_path + '/minimal' + \
|
tl_str += \
|
||||||
'" tabindex="3"><button class="button">' + \
|
'<a href="' + users_path + '/minimal' + \
|
||||||
'<span>' + translate['Show/Hide Buttons'] + \
|
'" tabindex="3"><button class="button">' + \
|
||||||
'</span></button></a>'
|
'<span>' + translate['Show/Hide Buttons'] + \
|
||||||
|
'</span></button></a>'
|
||||||
|
|
||||||
if features_header:
|
if features_header:
|
||||||
tl_str += \
|
tl_str += \
|
||||||
|
@ -340,41 +350,42 @@ def header_buttons_timeline(default_timeline: str,
|
||||||
'><button class="button">' + \
|
'><button class="button">' + \
|
||||||
'<span>' + translate['User'] + '</span></button></a>'
|
'<span>' + translate['User'] + '</span></button></a>'
|
||||||
|
|
||||||
# the newswire button to show right column links
|
if not is_text_browser:
|
||||||
if not icons_as_buttons:
|
# the newswire button to show right column links
|
||||||
tl_str += \
|
if not icons_as_buttons:
|
||||||
'<a class="imageAnchorMobile" href="' + \
|
tl_str += \
|
||||||
users_path + '/newswiremobile">' + \
|
'<a class="imageAnchorMobile" href="' + \
|
||||||
'<img loading="lazy" decoding="async" src="/icons' + \
|
users_path + '/newswiremobile">' + \
|
||||||
'/newswire.png" title="' + translate['News'] + \
|
'<img loading="lazy" decoding="async" src="/icons' + \
|
||||||
'" alt="| ' + translate['News'] + \
|
'/newswire.png" title="' + translate['News'] + \
|
||||||
'" class="timelineicon"/></a>'
|
'" alt="| ' + translate['News'] + \
|
||||||
else:
|
'" class="timelineicon"/></a>'
|
||||||
# NOTE: deliberately no \n at end of line
|
else:
|
||||||
tl_str += \
|
# NOTE: deliberately no \n at end of line
|
||||||
'<a href="' + \
|
tl_str += \
|
||||||
users_path + '/newswiremobile' + \
|
'<a href="' + \
|
||||||
'" tabindex="2"><button class="buttonMobile">' + \
|
users_path + '/newswiremobile' + \
|
||||||
'<span>' + translate['Newswire'] + \
|
'" tabindex="2"><button class="buttonMobile">' + \
|
||||||
'</span></button></a>'
|
'<span>' + translate['Newswire'] + \
|
||||||
|
'</span></button></a>'
|
||||||
|
|
||||||
# the links button to show left column links
|
# the links button to show left column links
|
||||||
if not icons_as_buttons:
|
if not icons_as_buttons:
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a class="imageAnchorMobile" href="' + \
|
'<a class="imageAnchorMobile" href="' + \
|
||||||
users_path + '/linksmobile">' + \
|
users_path + '/linksmobile">' + \
|
||||||
'<img loading="lazy" decoding="async" src="/icons' + \
|
'<img loading="lazy" decoding="async" src="/icons' + \
|
||||||
'/links.png" title="' + translate['Edit Links'] + \
|
'/links.png" title="' + translate['Edit Links'] + \
|
||||||
'" alt="| ' + translate['Edit Links'] + \
|
'" alt="| ' + translate['Edit Links'] + \
|
||||||
'" class="timelineicon"/></a>'
|
'" class="timelineicon"/></a>'
|
||||||
else:
|
else:
|
||||||
# NOTE: deliberately no \n at end of line
|
# NOTE: deliberately no \n at end of line
|
||||||
tl_str += \
|
tl_str += \
|
||||||
'<a href="' + \
|
'<a href="' + \
|
||||||
users_path + '/linksmobile' + \
|
users_path + '/linksmobile' + \
|
||||||
'" tabindex="2"><button class="buttonMobile">' + \
|
'" tabindex="2"><button class="buttonMobile">' + \
|
||||||
'<span>' + translate['Links'] + \
|
'<span>' + translate['Links'] + \
|
||||||
'</span></button></a>'
|
'</span></button></a>'
|
||||||
|
|
||||||
if features_header:
|
if features_header:
|
||||||
tl_str += \
|
tl_str += \
|
||||||
|
|
|
@ -58,7 +58,7 @@ def html_moderation(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the moderation feed as html
|
"""Show the moderation feed as html
|
||||||
This is what you see when selecting the "mod" timeline
|
This is what you see when selecting the "mod" timeline
|
||||||
"""
|
"""
|
||||||
|
@ -84,7 +84,7 @@ def html_moderation(default_timeline: str,
|
||||||
text_mode_banner, access_keys, system_language,
|
text_mode_banner, access_keys, system_language,
|
||||||
max_like_count, shared_items_federated_domains,
|
max_like_count, shared_items_federated_domains,
|
||||||
signing_priv_key_pem, cw_lists, lists_enabled,
|
signing_priv_key_pem, cw_lists, lists_enabled,
|
||||||
timezone, bold_reading, dogwhistles)
|
timezone, bold_reading, dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_account_info(translate: {},
|
def html_account_info(translate: {},
|
||||||
|
|
|
@ -382,6 +382,16 @@ def _html_timeline_keyboard(moderator: bool, text_mode_banner: str,
|
||||||
follow_approvals)
|
follow_approvals)
|
||||||
|
|
||||||
|
|
||||||
|
def text_mode_browser(ua_str: str) -> bool:
|
||||||
|
"""Does the user agent indicate a text mode browser?
|
||||||
|
"""
|
||||||
|
text_mode_agents = ('Lynx/', 'w3m/', 'Links (', 'Emacs/', 'ELinks')
|
||||||
|
for agent in text_mode_agents:
|
||||||
|
if agent in ua_str:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def _html_timeline_end(base_dir: str, nickname: str, domain_full: str,
|
def _html_timeline_end(base_dir: str, nickname: str, domain_full: str,
|
||||||
http_prefix: str, translate: {},
|
http_prefix: str, translate: {},
|
||||||
moderator: bool, editor: bool,
|
moderator: bool, editor: bool,
|
||||||
|
@ -391,7 +401,8 @@ def _html_timeline_end(base_dir: str, nickname: str, domain_full: str,
|
||||||
authorized: bool, theme: str,
|
authorized: bool, theme: str,
|
||||||
default_timeline: str, access_keys: {},
|
default_timeline: str, access_keys: {},
|
||||||
box_name: str,
|
box_name: str,
|
||||||
enable_timing_log: bool, timeline_start_time) -> str:
|
enable_timing_log: bool, timeline_start_time,
|
||||||
|
ua_str: str) -> str:
|
||||||
"""Ending of the timeline, containing the right column
|
"""Ending of the timeline, containing the right column
|
||||||
"""
|
"""
|
||||||
# end of timeline-posts
|
# end of timeline-posts
|
||||||
|
@ -401,17 +412,19 @@ def _html_timeline_end(base_dir: str, nickname: str, domain_full: str,
|
||||||
tl_str += ' </td>\n'
|
tl_str += ' </td>\n'
|
||||||
|
|
||||||
# right column
|
# right column
|
||||||
right_column_str = \
|
right_column_str = ''
|
||||||
get_right_column_content(base_dir, nickname, domain_full,
|
if not text_mode_browser(ua_str):
|
||||||
http_prefix, translate,
|
right_column_str = \
|
||||||
moderator, editor,
|
get_right_column_content(base_dir, nickname, domain_full,
|
||||||
newswire, positive_voting,
|
http_prefix, translate,
|
||||||
False, None, True,
|
moderator, editor,
|
||||||
show_publish_as_icon,
|
newswire, positive_voting,
|
||||||
rss_icon_at_top,
|
False, None, True,
|
||||||
publish_button_at_top,
|
show_publish_as_icon,
|
||||||
authorized, True, theme,
|
rss_icon_at_top,
|
||||||
default_timeline, access_keys)
|
publish_button_at_top,
|
||||||
|
authorized, True, theme,
|
||||||
|
default_timeline, access_keys)
|
||||||
tl_str += ' <td valign="top" class="col-right" ' + \
|
tl_str += ' <td valign="top" class="col-right" ' + \
|
||||||
'id="newswire" tabindex="-1">\n' + \
|
'id="newswire" tabindex="-1">\n' + \
|
||||||
' <aside>\n' + \
|
' <aside>\n' + \
|
||||||
|
@ -494,7 +507,7 @@ def html_timeline(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the timeline as html
|
"""Show the timeline as html
|
||||||
"""
|
"""
|
||||||
enable_timing_log = False
|
enable_timing_log = False
|
||||||
|
@ -780,6 +793,7 @@ def html_timeline(default_timeline: str,
|
||||||
'</header>\n'
|
'</header>\n'
|
||||||
|
|
||||||
if full_width_tl_button_header:
|
if full_width_tl_button_header:
|
||||||
|
is_text_browser = text_mode_browser(ua_str)
|
||||||
tl_str += \
|
tl_str += \
|
||||||
header_buttons_timeline(default_timeline, box_name, page_number,
|
header_buttons_timeline(default_timeline, box_name, page_number,
|
||||||
translate, users_path, media_button,
|
translate, users_path, media_button,
|
||||||
|
@ -794,7 +808,8 @@ def html_timeline(default_timeline: str,
|
||||||
domain, timeline_start_time,
|
domain, timeline_start_time,
|
||||||
new_calendar_event, calendar_path,
|
new_calendar_event, calendar_path,
|
||||||
calendar_image, follow_approvals,
|
calendar_image, follow_approvals,
|
||||||
icons_as_buttons, access_keys)
|
icons_as_buttons, access_keys,
|
||||||
|
is_text_browser)
|
||||||
|
|
||||||
# start the timeline
|
# start the timeline
|
||||||
tl_str += \
|
tl_str += \
|
||||||
|
@ -811,12 +826,15 @@ def html_timeline(default_timeline: str,
|
||||||
domain_full = get_full_domain(domain, port)
|
domain_full = get_full_domain(domain, port)
|
||||||
|
|
||||||
# left column
|
# left column
|
||||||
left_column_str = \
|
left_column_str = ''
|
||||||
get_left_column_content(base_dir, nickname, domain_full,
|
if not text_mode_browser(ua_str):
|
||||||
http_prefix, translate,
|
left_column_str = \
|
||||||
editor, artist, False, None, rss_icon_at_top,
|
get_left_column_content(base_dir, nickname, domain_full,
|
||||||
True, False, theme, access_keys,
|
http_prefix, translate,
|
||||||
shared_items_federated_domains)
|
editor, artist, False, None,
|
||||||
|
rss_icon_at_top,
|
||||||
|
True, False, theme, access_keys,
|
||||||
|
shared_items_federated_domains)
|
||||||
tl_str += ' <td valign="top" class="col-left" ' + \
|
tl_str += ' <td valign="top" class="col-left" ' + \
|
||||||
'id="links" tabindex="-1">\n' + \
|
'id="links" tabindex="-1">\n' + \
|
||||||
' <aside>\n' + \
|
' <aside>\n' + \
|
||||||
|
@ -828,6 +846,7 @@ def html_timeline(default_timeline: str,
|
||||||
tl_str += ' <td valign="top" class="col-center" tabindex="-1">\n'
|
tl_str += ' <td valign="top" class="col-center" tabindex="-1">\n'
|
||||||
|
|
||||||
if not full_width_tl_button_header:
|
if not full_width_tl_button_header:
|
||||||
|
is_text_browser = text_mode_browser(ua_str)
|
||||||
tl_str += \
|
tl_str += \
|
||||||
header_buttons_timeline(default_timeline, box_name, page_number,
|
header_buttons_timeline(default_timeline, box_name, page_number,
|
||||||
translate, users_path, media_button,
|
translate, users_path, media_button,
|
||||||
|
@ -842,7 +861,8 @@ def html_timeline(default_timeline: str,
|
||||||
domain, timeline_start_time,
|
domain, timeline_start_time,
|
||||||
new_calendar_event, calendar_path,
|
new_calendar_event, calendar_path,
|
||||||
calendar_image, follow_approvals,
|
calendar_image, follow_approvals,
|
||||||
icons_as_buttons, access_keys)
|
icons_as_buttons, access_keys,
|
||||||
|
is_text_browser)
|
||||||
|
|
||||||
tl_str += \
|
tl_str += \
|
||||||
' <div id="timelineposts" class="timeline-posts" ' + \
|
' <div id="timelineposts" class="timeline-posts" ' + \
|
||||||
|
@ -872,7 +892,8 @@ def html_timeline(default_timeline: str,
|
||||||
authorized, theme,
|
authorized, theme,
|
||||||
default_timeline, access_keys,
|
default_timeline, access_keys,
|
||||||
box_name,
|
box_name,
|
||||||
enable_timing_log, timeline_start_time) +
|
enable_timing_log, timeline_start_time,
|
||||||
|
ua_str) +
|
||||||
html_footer())
|
html_footer())
|
||||||
elif box_name == 'tlwanted':
|
elif box_name == 'tlwanted':
|
||||||
max_shares_per_account = items_per_page
|
max_shares_per_account = items_per_page
|
||||||
|
@ -891,7 +912,8 @@ def html_timeline(default_timeline: str,
|
||||||
authorized, theme,
|
authorized, theme,
|
||||||
default_timeline, access_keys,
|
default_timeline, access_keys,
|
||||||
box_name,
|
box_name,
|
||||||
enable_timing_log, timeline_start_time) +
|
enable_timing_log, timeline_start_time,
|
||||||
|
ua_str) +
|
||||||
html_footer())
|
html_footer())
|
||||||
|
|
||||||
_log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '7')
|
_log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '7')
|
||||||
|
@ -1051,7 +1073,7 @@ def html_timeline(default_timeline: str,
|
||||||
authorized, theme,
|
authorized, theme,
|
||||||
default_timeline, access_keys,
|
default_timeline, access_keys,
|
||||||
box_name,
|
box_name,
|
||||||
enable_timing_log, timeline_start_time)
|
enable_timing_log, timeline_start_time, ua_str)
|
||||||
tl_str += html_footer()
|
tl_str += html_footer()
|
||||||
return tl_str
|
return tl_str
|
||||||
|
|
||||||
|
@ -1244,7 +1266,7 @@ def html_shares(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the shares timeline as html
|
"""Show the shares timeline as html
|
||||||
"""
|
"""
|
||||||
manually_approve_followers = \
|
manually_approve_followers = \
|
||||||
|
@ -1275,7 +1297,7 @@ def html_shares(default_timeline: str,
|
||||||
shared_items_federated_domains,
|
shared_items_federated_domains,
|
||||||
signing_priv_key_pem,
|
signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone,
|
cw_lists, lists_enabled, timezone,
|
||||||
bold_reading, dogwhistles)
|
bold_reading, dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_wanted(default_timeline: str,
|
def html_wanted(default_timeline: str,
|
||||||
|
@ -1305,7 +1327,7 @@ def html_wanted(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the wanted timeline as html
|
"""Show the wanted timeline as html
|
||||||
"""
|
"""
|
||||||
manually_approve_followers = \
|
manually_approve_followers = \
|
||||||
|
@ -1336,7 +1358,7 @@ def html_wanted(default_timeline: str,
|
||||||
shared_items_federated_domains,
|
shared_items_federated_domains,
|
||||||
signing_priv_key_pem,
|
signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone,
|
cw_lists, lists_enabled, timezone,
|
||||||
bold_reading, dogwhistles)
|
bold_reading, dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox(default_timeline: str,
|
def html_inbox(default_timeline: str,
|
||||||
|
@ -1367,7 +1389,7 @@ def html_inbox(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the inbox as html
|
"""Show the inbox as html
|
||||||
"""
|
"""
|
||||||
manually_approve_followers = \
|
manually_approve_followers = \
|
||||||
|
@ -1398,7 +1420,7 @@ def html_inbox(default_timeline: str,
|
||||||
shared_items_federated_domains,
|
shared_items_federated_domains,
|
||||||
signing_priv_key_pem,
|
signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone,
|
cw_lists, lists_enabled, timezone,
|
||||||
bold_reading, dogwhistles)
|
bold_reading, dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_bookmarks(default_timeline: str,
|
def html_bookmarks(default_timeline: str,
|
||||||
|
@ -1429,7 +1451,7 @@ def html_bookmarks(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the bookmarks as html
|
"""Show the bookmarks as html
|
||||||
"""
|
"""
|
||||||
manually_approve_followers = \
|
manually_approve_followers = \
|
||||||
|
@ -1459,7 +1481,7 @@ def html_bookmarks(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone,
|
cw_lists, lists_enabled, timezone,
|
||||||
bold_reading, dogwhistles)
|
bold_reading, dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox_dms(default_timeline: str,
|
def html_inbox_dms(default_timeline: str,
|
||||||
|
@ -1490,7 +1512,7 @@ def html_inbox_dms(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the DM timeline as html
|
"""Show the DM timeline as html
|
||||||
"""
|
"""
|
||||||
artist = is_artist(base_dir, nickname)
|
artist = is_artist(base_dir, nickname)
|
||||||
|
@ -1516,7 +1538,7 @@ def html_inbox_dms(default_timeline: str,
|
||||||
shared_items_federated_domains,
|
shared_items_federated_domains,
|
||||||
signing_priv_key_pem,
|
signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone,
|
cw_lists, lists_enabled, timezone,
|
||||||
bold_reading, dogwhistles)
|
bold_reading, dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox_replies(default_timeline: str,
|
def html_inbox_replies(default_timeline: str,
|
||||||
|
@ -1547,7 +1569,7 @@ def html_inbox_replies(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the replies timeline as html
|
"""Show the replies timeline as html
|
||||||
"""
|
"""
|
||||||
artist = is_artist(base_dir, nickname)
|
artist = is_artist(base_dir, nickname)
|
||||||
|
@ -1572,7 +1594,7 @@ def html_inbox_replies(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone, bold_reading,
|
cw_lists, lists_enabled, timezone, bold_reading,
|
||||||
dogwhistles)
|
dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox_media(default_timeline: str,
|
def html_inbox_media(default_timeline: str,
|
||||||
|
@ -1603,7 +1625,7 @@ def html_inbox_media(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the media timeline as html
|
"""Show the media timeline as html
|
||||||
"""
|
"""
|
||||||
artist = is_artist(base_dir, nickname)
|
artist = is_artist(base_dir, nickname)
|
||||||
|
@ -1628,7 +1650,7 @@ def html_inbox_media(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone, bold_reading,
|
cw_lists, lists_enabled, timezone, bold_reading,
|
||||||
dogwhistles)
|
dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox_blogs(default_timeline: str,
|
def html_inbox_blogs(default_timeline: str,
|
||||||
|
@ -1659,7 +1681,7 @@ def html_inbox_blogs(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the blogs timeline as html
|
"""Show the blogs timeline as html
|
||||||
"""
|
"""
|
||||||
artist = is_artist(base_dir, nickname)
|
artist = is_artist(base_dir, nickname)
|
||||||
|
@ -1684,7 +1706,7 @@ def html_inbox_blogs(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone, bold_reading,
|
cw_lists, lists_enabled, timezone, bold_reading,
|
||||||
dogwhistles)
|
dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox_features(default_timeline: str,
|
def html_inbox_features(default_timeline: str,
|
||||||
|
@ -1716,7 +1738,7 @@ def html_inbox_features(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the features timeline as html
|
"""Show the features timeline as html
|
||||||
"""
|
"""
|
||||||
return html_timeline(default_timeline,
|
return html_timeline(default_timeline,
|
||||||
|
@ -1740,7 +1762,7 @@ def html_inbox_features(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone, bold_reading,
|
cw_lists, lists_enabled, timezone, bold_reading,
|
||||||
dogwhistles)
|
dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_inbox_news(default_timeline: str,
|
def html_inbox_news(default_timeline: str,
|
||||||
|
@ -1771,7 +1793,7 @@ def html_inbox_news(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the news timeline as html
|
"""Show the news timeline as html
|
||||||
"""
|
"""
|
||||||
return html_timeline(default_timeline,
|
return html_timeline(default_timeline,
|
||||||
|
@ -1795,7 +1817,7 @@ def html_inbox_news(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone, bold_reading,
|
cw_lists, lists_enabled, timezone, bold_reading,
|
||||||
dogwhistles)
|
dogwhistles, ua_str)
|
||||||
|
|
||||||
|
|
||||||
def html_outbox(default_timeline: str,
|
def html_outbox(default_timeline: str,
|
||||||
|
@ -1826,7 +1848,7 @@ def html_outbox(default_timeline: str,
|
||||||
signing_priv_key_pem: str,
|
signing_priv_key_pem: str,
|
||||||
cw_lists: {}, lists_enabled: str,
|
cw_lists: {}, lists_enabled: str,
|
||||||
timezone: str, bold_reading: bool,
|
timezone: str, bold_reading: bool,
|
||||||
dogwhistles: {}) -> str:
|
dogwhistles: {}, ua_str: str) -> str:
|
||||||
"""Show the Outbox as html
|
"""Show the Outbox as html
|
||||||
"""
|
"""
|
||||||
manually_approve_followers = \
|
manually_approve_followers = \
|
||||||
|
@ -1853,4 +1875,4 @@ def html_outbox(default_timeline: str,
|
||||||
access_keys, system_language, max_like_count,
|
access_keys, system_language, max_like_count,
|
||||||
shared_items_federated_domains, signing_priv_key_pem,
|
shared_items_federated_domains, signing_priv_key_pem,
|
||||||
cw_lists, lists_enabled, timezone, bold_reading,
|
cw_lists, lists_enabled, timezone, bold_reading,
|
||||||
dogwhistles)
|
dogwhistles, ua_str)
|
||||||
|
|
Loading…
Reference in New Issue