mirror of https://gitlab.com/bashrc2/epicyon
Snake case
parent
43379ae568
commit
11ebc26756
|
@ -18,155 +18,155 @@ from webapp_utils import html_highlight_label
|
|||
|
||||
|
||||
def header_buttons_timeline(default_timeline: str,
|
||||
boxName: str,
|
||||
pageNumber: int,
|
||||
box_name: str,
|
||||
page_number: int,
|
||||
translate: {},
|
||||
usersPath: str,
|
||||
users_path: str,
|
||||
mediaButton: str,
|
||||
blogsButton: str,
|
||||
featuresButton: str,
|
||||
newsButton: str,
|
||||
inboxButton: str,
|
||||
dmButton: str,
|
||||
newDM: str,
|
||||
repliesButton: str,
|
||||
newReply: str,
|
||||
blogs_button: str,
|
||||
features_button: str,
|
||||
news_button: str,
|
||||
inbox_button: str,
|
||||
dm_button: str,
|
||||
new_dm: str,
|
||||
replies_button: str,
|
||||
new_reply: str,
|
||||
minimal: bool,
|
||||
sentButton: str,
|
||||
sharesButtonStr: str,
|
||||
wantedButtonStr: str,
|
||||
bookmarksButtonStr: str,
|
||||
eventsButtonStr: str,
|
||||
moderationButtonStr: str,
|
||||
newPostButtonStr: str,
|
||||
sent_button: str,
|
||||
shares_button_str: str,
|
||||
wanted_button_str: str,
|
||||
bookmarks_button_str: str,
|
||||
events_button_str: str,
|
||||
moderation_button_str: str,
|
||||
new_post_button_str: str,
|
||||
base_dir: str,
|
||||
nickname: str, domain: str,
|
||||
timelineStartTime,
|
||||
newCalendarEvent: bool,
|
||||
calendarPath: str,
|
||||
calendarImage: str,
|
||||
followApprovals: str,
|
||||
timeline_start_time,
|
||||
new_calendar_event: bool,
|
||||
calendar_path: str,
|
||||
calendar_image: str,
|
||||
follow_approvals: str,
|
||||
icons_as_buttons: bool,
|
||||
access_keys: {}) -> str:
|
||||
"""Returns the header at the top of the timeline, containing
|
||||
buttons for inbox, outbox, search, calendar, etc
|
||||
"""
|
||||
# start of the button header with inbox, outbox, etc
|
||||
tlStr = '<div class="containerHeader"><nav>\n'
|
||||
tl_str = '<div class="containerHeader"><nav>\n'
|
||||
# first button
|
||||
if default_timeline == 'tlmedia':
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/tlmedia" tabindex="-1" ' + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/tlmedia" tabindex="-1" ' + \
|
||||
'accesskey="' + access_keys['menuMedia'] + '"' + \
|
||||
'><button class="' + \
|
||||
mediaButton + '"><span>' + translate['Media'] + \
|
||||
'</span></button></a>'
|
||||
elif default_timeline == 'tlblogs':
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/tlblogs" tabindex="-1"><button class="' + \
|
||||
blogsButton + '"><span>' + translate['Blogs'] + \
|
||||
blogs_button + '"><span>' + translate['Blogs'] + \
|
||||
'</span></button></a>'
|
||||
elif default_timeline == 'tlfeatures':
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/tlfeatures" tabindex="-1"><button class="' + \
|
||||
featuresButton + '"><span>' + translate['Features'] + \
|
||||
features_button + '"><span>' + translate['Features'] + \
|
||||
'</span></button></a>'
|
||||
else:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/inbox" tabindex="-1"><button class="' + \
|
||||
inboxButton + '"><span>' + \
|
||||
inbox_button + '"><span>' + \
|
||||
translate['Inbox'] + '</span></button></a>'
|
||||
|
||||
# if this is a news instance and we are viewing the news timeline
|
||||
featuresHeader = False
|
||||
if default_timeline == 'tlfeatures' and boxName == 'tlfeatures':
|
||||
featuresHeader = True
|
||||
features_header = False
|
||||
if default_timeline == 'tlfeatures' and box_name == 'tlfeatures':
|
||||
features_header = True
|
||||
|
||||
if not featuresHeader:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
'/dm" tabindex="-1"><button class="' + dmButton + \
|
||||
'"><span>' + html_highlight_label(translate['DM'], newDM) + \
|
||||
if not features_header:
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/dm" tabindex="-1"><button class="' + dm_button + \
|
||||
'"><span>' + html_highlight_label(translate['DM'], new_dm) + \
|
||||
'</span></button></a>'
|
||||
|
||||
repliesIndexFilename = \
|
||||
replies_index_filename = \
|
||||
acct_dir(base_dir, nickname, domain) + '/tlreplies.index'
|
||||
if os.path.isfile(repliesIndexFilename):
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/tlreplies" tabindex="-1">' + \
|
||||
'<button class="' + repliesButton + '"><span>' + \
|
||||
html_highlight_label(translate['Replies'], newReply) + \
|
||||
if os.path.isfile(replies_index_filename):
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/tlreplies" tabindex="-1">' + \
|
||||
'<button class="' + replies_button + '"><span>' + \
|
||||
html_highlight_label(translate['Replies'], new_reply) + \
|
||||
'</span></button></a>'
|
||||
|
||||
# typically the media button
|
||||
if default_timeline != 'tlmedia':
|
||||
if not minimal and not featuresHeader:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/tlmedia" tabindex="-1" ' + \
|
||||
if not minimal and not features_header:
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/tlmedia" tabindex="-1" ' + \
|
||||
'accesskey="' + access_keys['menuMedia'] + '">' + \
|
||||
'<button class="' + \
|
||||
mediaButton + '"><span>' + translate['Media'] + \
|
||||
'</span></button></a>'
|
||||
else:
|
||||
if not minimal:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/inbox" tabindex="-1"><button class="' + \
|
||||
inboxButton + '"><span>' + translate['Inbox'] + \
|
||||
inbox_button + '"><span>' + translate['Inbox'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
if not featuresHeader:
|
||||
if not features_header:
|
||||
# typically the blogs button
|
||||
# but may change if this is a blogging oriented instance
|
||||
if default_timeline != 'tlblogs':
|
||||
if not minimal:
|
||||
titleStr = translate['Blogs']
|
||||
title_str = translate['Blogs']
|
||||
if default_timeline == 'tlfeatures':
|
||||
titleStr = translate['Article']
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
title_str = translate['Article']
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/tlblogs" tabindex="-1"><button class="' + \
|
||||
blogsButton + '"><span>' + titleStr + \
|
||||
blogs_button + '"><span>' + title_str + \
|
||||
'</span></button></a>'
|
||||
else:
|
||||
if not minimal:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/inbox" tabindex="-1"><button class="' + \
|
||||
inboxButton + '"><span>' + translate['Inbox'] + \
|
||||
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 featuresHeader:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
if not features_header:
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/inbox" tabindex="-1"><button class="' + \
|
||||
inboxButton + '"><span>' + translate['Inbox'] + \
|
||||
inbox_button + '"><span>' + translate['Inbox'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
# show todays events buttons on the first inbox page
|
||||
happeningStr = ''
|
||||
if boxName == 'inbox' and pageNumber == 1:
|
||||
happening_str = ''
|
||||
if box_name == 'inbox' and page_number == 1:
|
||||
now = datetime.now()
|
||||
tomorrow = datetime.now() + timedelta(1)
|
||||
twodays = datetime.now() + timedelta(2)
|
||||
if day_events_check(base_dir, nickname, domain, now):
|
||||
# happening today button
|
||||
if not icons_as_buttons:
|
||||
happeningStr += \
|
||||
'<a href="' + usersPath + '/calendar?year=' + \
|
||||
happening_str += \
|
||||
'<a href="' + users_path + '/calendar?year=' + \
|
||||
str(now.year) + '?month=' + str(now.month) + \
|
||||
'?day=' + str(now.day) + '" tabindex="-1">' + \
|
||||
'<button class="buttonevent">' + \
|
||||
translate['Happening Today'] + '</button></a>'
|
||||
else:
|
||||
happeningStr += \
|
||||
'<a href="' + usersPath + '/calendar?year=' + \
|
||||
happening_str += \
|
||||
'<a href="' + users_path + '/calendar?year=' + \
|
||||
str(now.year) + '?month=' + str(now.month) + \
|
||||
'?day=' + str(now.day) + '" tabindex="-1">' + \
|
||||
'<button class="button">' + \
|
||||
|
@ -175,51 +175,51 @@ def header_buttons_timeline(default_timeline: str,
|
|||
elif day_events_check(base_dir, nickname, domain, tomorrow):
|
||||
# happening tomorrow button
|
||||
if not icons_as_buttons:
|
||||
happeningStr += \
|
||||
'<a href="' + usersPath + '/calendar?year=' + \
|
||||
happening_str += \
|
||||
'<a href="' + users_path + '/calendar?year=' + \
|
||||
str(tomorrow.year) + '?month=' + str(tomorrow.month) + \
|
||||
'?day=' + str(tomorrow.day) + '" tabindex="-1">' + \
|
||||
'<button class="buttonevent">' + \
|
||||
translate['Happening Tomorrow'] + '</button></a>'
|
||||
else:
|
||||
happeningStr += \
|
||||
'<a href="' + usersPath + '/calendar?year=' + \
|
||||
happening_str += \
|
||||
'<a href="' + users_path + '/calendar?year=' + \
|
||||
str(tomorrow.year) + '?month=' + str(tomorrow.month) + \
|
||||
'?day=' + str(tomorrow.day) + '" tabindex="-1">' + \
|
||||
'<button class="button">' + \
|
||||
translate['Happening Tomorrow'] + '</button></a>'
|
||||
elif day_events_check(base_dir, nickname, domain, twodays):
|
||||
if not icons_as_buttons:
|
||||
happeningStr += \
|
||||
'<a href="' + usersPath + \
|
||||
happening_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/calendar" tabindex="-1">' + \
|
||||
'<button class="buttonevent">' + \
|
||||
translate['Happening This Week'] + '</button></a>'
|
||||
else:
|
||||
happeningStr += \
|
||||
'<a href="' + usersPath + \
|
||||
happening_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/calendar" tabindex="-1">' + \
|
||||
'<button class="button">' + \
|
||||
translate['Happening This Week'] + '</button></a>'
|
||||
|
||||
if not featuresHeader:
|
||||
if not features_header:
|
||||
# button for the outbox
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/outbox"><button class="' + \
|
||||
sentButton + '" tabindex="-1"><span>' + translate['Sent'] + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/outbox"><button class="' + \
|
||||
sent_button + '" tabindex="-1"><span>' + translate['Sent'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
# add other buttons
|
||||
tlStr += \
|
||||
sharesButtonStr + wantedButtonStr + bookmarksButtonStr + \
|
||||
eventsButtonStr + \
|
||||
moderationButtonStr + happeningStr + newPostButtonStr
|
||||
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 featuresHeader:
|
||||
if not features_header:
|
||||
if not icons_as_buttons:
|
||||
# the search icon
|
||||
tlStr += \
|
||||
'<a class="imageAnchor" href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a class="imageAnchor" href="' + users_path + \
|
||||
'/search"><img loading="lazy" src="/' + \
|
||||
'icons/search.png" title="' + \
|
||||
translate['Search and follow'] + '" alt="| ' + \
|
||||
|
@ -227,110 +227,110 @@ def header_buttons_timeline(default_timeline: str,
|
|||
'" class="timelineicon"/></a>'
|
||||
else:
|
||||
# the search button
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + \
|
||||
'/search" tabindex="-1"><button class="button">' + \
|
||||
'<span>' + translate['Search'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
# benchmark 5
|
||||
time_diff = int((time.time() - timelineStartTime) * 1000)
|
||||
time_diff = int((time.time() - timeline_start_time) * 1000)
|
||||
if time_diff > 100:
|
||||
print('TIMELINE TIMING ' + boxName + ' 5 = ' + str(time_diff))
|
||||
print('TIMELINE TIMING ' + box_name + ' 5 = ' + str(time_diff))
|
||||
|
||||
# the calendar button
|
||||
if not featuresHeader:
|
||||
calendarAltText = translate['Calendar']
|
||||
if newCalendarEvent:
|
||||
if not features_header:
|
||||
calendar_alt_text = translate['Calendar']
|
||||
if new_calendar_event:
|
||||
# indicate that the calendar icon is highlighted
|
||||
calendarAltText = '*' + calendarAltText + '*'
|
||||
calendar_alt_text = '*' + calendar_alt_text + '*'
|
||||
if not icons_as_buttons:
|
||||
tlStr += \
|
||||
tl_str += \
|
||||
' <a class="imageAnchor" href="' + \
|
||||
usersPath + calendarPath + \
|
||||
users_path + calendar_path + \
|
||||
'"><img loading="lazy" src="/icons/' + \
|
||||
calendarImage + '" title="' + translate['Calendar'] + \
|
||||
'" alt="| ' + calendarAltText + \
|
||||
calendar_image + '" title="' + translate['Calendar'] + \
|
||||
'" alt="| ' + calendar_alt_text + \
|
||||
'" class="timelineicon"/></a>\n'
|
||||
else:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + calendarPath + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + calendar_path + \
|
||||
'" tabindex="-1"><button class="button">' + \
|
||||
'<span>' + translate['Calendar'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
if not featuresHeader:
|
||||
if not features_header:
|
||||
# the show/hide button, for a simpler header appearance
|
||||
if not icons_as_buttons:
|
||||
tlStr += \
|
||||
tl_str += \
|
||||
' <a class="imageAnchor" href="' + \
|
||||
usersPath + '/minimal' + \
|
||||
users_path + '/minimal' + \
|
||||
'"><img loading="lazy" src="/icons' + \
|
||||
'/showhide.png" title="' + translate['Show/Hide Buttons'] + \
|
||||
'" alt="| ' + translate['Show/Hide Buttons'] + \
|
||||
'" class="timelineicon"/></a>\n'
|
||||
else:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/minimal' + \
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/minimal' + \
|
||||
'" tabindex="-1"><button class="button">' + \
|
||||
'<span>' + translate['Show/Hide Buttons'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
if featuresHeader:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/inbox" tabindex="-1">' + \
|
||||
if features_header:
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/inbox" tabindex="-1">' + \
|
||||
'<button class="button">' + \
|
||||
'<span>' + translate['User'] + '</span></button></a>'
|
||||
|
||||
# the newswire button to show right column links
|
||||
if not icons_as_buttons:
|
||||
tlStr += \
|
||||
tl_str += \
|
||||
'<a class="imageAnchorMobile" href="' + \
|
||||
usersPath + '/newswiremobile">' + \
|
||||
users_path + '/newswiremobile">' + \
|
||||
'<img loading="lazy" src="/icons' + \
|
||||
'/newswire.png" title="' + translate['News'] + \
|
||||
'" alt="| ' + translate['News'] + \
|
||||
'" class="timelineicon"/></a>'
|
||||
else:
|
||||
# NOTE: deliberately no \n at end of line
|
||||
tlStr += \
|
||||
tl_str += \
|
||||
'<a href="' + \
|
||||
usersPath + '/newswiremobile' + \
|
||||
users_path + '/newswiremobile' + \
|
||||
'" tabindex="-1"><button class="buttonMobile">' + \
|
||||
'<span>' + translate['Newswire'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
# the links button to show left column links
|
||||
if not icons_as_buttons:
|
||||
tlStr += \
|
||||
tl_str += \
|
||||
'<a class="imageAnchorMobile" href="' + \
|
||||
usersPath + '/linksmobile">' + \
|
||||
users_path + '/linksmobile">' + \
|
||||
'<img loading="lazy" src="/icons' + \
|
||||
'/links.png" title="' + translate['Edit Links'] + \
|
||||
'" alt="| ' + translate['Edit Links'] + \
|
||||
'" class="timelineicon"/></a>'
|
||||
else:
|
||||
# NOTE: deliberately no \n at end of line
|
||||
tlStr += \
|
||||
tl_str += \
|
||||
'<a href="' + \
|
||||
usersPath + '/linksmobile' + \
|
||||
users_path + '/linksmobile' + \
|
||||
'" tabindex="-1"><button class="buttonMobile">' + \
|
||||
'<span>' + translate['Links'] + \
|
||||
'</span></button></a>'
|
||||
|
||||
if featuresHeader:
|
||||
tlStr += \
|
||||
'<a href="' + usersPath + '/editprofile" tabindex="-1">' + \
|
||||
if features_header:
|
||||
tl_str += \
|
||||
'<a href="' + users_path + '/editprofile" tabindex="-1">' + \
|
||||
'<button class="buttonDesktop">' + \
|
||||
'<span>' + translate['Settings'] + '</span></button></a>'
|
||||
|
||||
if not featuresHeader:
|
||||
tlStr += followApprovals
|
||||
if not features_header:
|
||||
tl_str += follow_approvals
|
||||
|
||||
if not icons_as_buttons:
|
||||
# end of headericons div
|
||||
tlStr += '</div>'
|
||||
tl_str += '</div>'
|
||||
|
||||
# end of the button header with inbox, outbox, etc
|
||||
tlStr += ' </nav></div>\n'
|
||||
return tlStr
|
||||
tl_str += ' </nav></div>\n'
|
||||
return tl_str
|
||||
|
|
Loading…
Reference in New Issue