From 2099cad0acadefea710c3f1369f03b6b6ca0b876 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Fri, 31 Dec 2021 21:18:12 +0000 Subject: [PATCH] Snake case --- daemon.py | 345 +++++----- desktop_client.py | 12 +- fitnessFunctions.py | 77 +-- httpsig.py | 10 +- inbox.py | 16 +- mastoapiv1.py | 6 +- metadata.py | 4 +- person.py | 18 +- tests.py | 8 +- theme.py | 30 +- webapp_about.py | 14 +- webapp_accesskeys.py | 86 +-- webapp_calendar.py | 40 +- webapp_column_left.py | 324 ++++----- webapp_column_right.py | 68 +- webapp_confirm.py | 30 +- webapp_create_post.py | 38 +- webapp_frontscreen.py | 18 +- webapp_hashtagswarm.py | 7 +- webapp_headerbuttons.py | 12 +- webapp_login.py | 6 +- webapp_moderation.py | 16 +- webapp_person_options.py | 39 +- webapp_post.py | 28 +- webapp_search.py | 48 +- webapp_suspended.py | 6 +- webapp_theme_designer.py | 18 +- webapp_timeline.py | 1354 +++++++++++++++++++------------------ webapp_tos.py | 15 +- webapp_utils.py | 80 +-- webapp_welcome.py | 6 +- webapp_welcome_final.py | 6 +- webapp_welcome_profile.py | 6 +- 33 files changed, 1404 insertions(+), 1387 deletions(-) diff --git a/daemon.py b/daemon.py index 4453b69a9..215de3b9b 100644 --- a/daemon.py +++ b/daemon.py @@ -1551,10 +1551,10 @@ class PubServer(BaseHTTPRequestHandler): if queueFilename not in self.server.inbox_queue: self.server.inbox_queue.append(queueFilename) if self.server.debug: - timeDiff = int((time.time() - beginSaveTime) * 1000) - if timeDiff > 200: + time_diff = int((time.time() - beginSaveTime) * 1000) + if time_diff > 200: print('SLOW: slow save of inbox queue item ' + - queueFilename + ' took ' + str(timeDiff) + ' mS') + queueFilename + ' took ' + str(time_diff) + ' mS') self.send_response(201) self.end_headers() self.server.POSTbusy = False @@ -2049,7 +2049,7 @@ class PubServer(BaseHTTPRequestHandler): base_dir: str, http_prefix: str, nickname: str, domain: str, domain_full: str, port: int, onion_domain: str, i2p_domain: str, - debug: bool, accessKeys: {}, + debug: bool, access_keys: {}, defaultTimeline: str) -> None: """Receive POST from webapp_accesskeys """ @@ -2060,30 +2060,31 @@ class PubServer(BaseHTTPRequestHandler): length = int(self.headers['Content-length']) try: - accessKeysParams = self.rfile.read(length).decode('utf-8') + access_keys_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST accessKeysParams ' + + print('WARN: POST access_keys_params ' + 'connection reset by peer') else: - print('WARN: POST accessKeysParams socket error') + print('WARN: POST access_keys_params socket error') self.send_response(400) self.end_headers() self.server.POSTbusy = False return except ValueError as ex: - print('ERROR: POST accessKeysParams rfile.read failed, ' + str(ex)) + print('ERROR: POST access_keys_params rfile.read failed, ' + + str(ex)) self.send_response(400) self.end_headers() self.server.POSTbusy = False return - accessKeysParams = \ - urllib.parse.unquote_plus(accessKeysParams) + access_keys_params = \ + urllib.parse.unquote_plus(access_keys_params) # key shortcuts screen, back button # See html_access_keys - if 'submitAccessKeysCancel=' in accessKeysParams or \ - 'submitAccessKeys=' not in accessKeysParams: + if 'submitAccessKeysCancel=' in access_keys_params or \ + 'submitAccessKeys=' not in access_keys_params: if calling_domain.endswith('.onion') and onion_domain: originPathStr = \ 'http://' + onion_domain + usersPath + '/' + \ @@ -2096,29 +2097,29 @@ class PubServer(BaseHTTPRequestHandler): return saveKeys = False - accessKeysTemplate = self.server.accessKeys - for variableName, key in accessKeysTemplate.items(): - if not accessKeys.get(variableName): - accessKeys[variableName] = accessKeysTemplate[variableName] + access_keysTemplate = self.server.access_keys + for variableName, key in access_keysTemplate.items(): + if not access_keys.get(variableName): + access_keys[variableName] = access_keysTemplate[variableName] variableName2 = variableName.replace(' ', '_') - if variableName2 + '=' in accessKeysParams: - newKey = accessKeysParams.split(variableName2 + '=')[1] + if variableName2 + '=' in access_keys_params: + newKey = access_keys_params.split(variableName2 + '=')[1] if '&' in newKey: newKey = newKey.split('&')[0] if newKey: if len(newKey) > 1: newKey = newKey[0] - if newKey != accessKeys[variableName]: - accessKeys[variableName] = newKey + if newKey != access_keys[variableName]: + access_keys[variableName] = newKey saveKeys = True if saveKeys: - accessKeysFilename = \ - acct_dir(base_dir, nickname, domain) + '/accessKeys.json' - save_json(accessKeys, accessKeysFilename) + access_keysFilename = \ + acct_dir(base_dir, nickname, domain) + '/access_keys.json' + save_json(access_keys, access_keysFilename) if not self.server.keyShortcuts.get(nickname): - self.server.keyShortcuts[nickname] = accessKeys.copy() + self.server.keyShortcuts[nickname] = access_keys.copy() # redirect back from key shortcuts screen if calling_domain.endswith('.onion') and onion_domain: @@ -2136,7 +2137,7 @@ class PubServer(BaseHTTPRequestHandler): base_dir: str, http_prefix: str, nickname: str, domain: str, domain_full: str, port: int, onion_domain: str, i2p_domain: str, - debug: bool, accessKeys: {}, + debug: bool, access_keys: {}, defaultTimeline: str, theme_name: str, allow_local_network_access: bool, system_language: str) -> None: @@ -2488,9 +2489,9 @@ class PubServer(BaseHTTPRequestHandler): # person options screen, permission to post to newswire # See html_person_options if '&submitPostToNews=' in optionsConfirmParams: - adminNickname = get_config_param(self.server.base_dir, 'admin') + admin_nickname = get_config_param(self.server.base_dir, 'admin') if (chooserNickname != optionsNickname and - (chooserNickname == adminNickname or + (chooserNickname == admin_nickname or (is_moderator(self.server.base_dir, chooserNickname) and not is_moderator(self.server.base_dir, optionsNickname)))): postsToNews = None @@ -2533,9 +2534,9 @@ class PubServer(BaseHTTPRequestHandler): # person options screen, permission to post to featured articles # See html_person_options if '&submitPostToFeatures=' in optionsConfirmParams: - adminNickname = get_config_param(self.server.base_dir, 'admin') + admin_nickname = get_config_param(self.server.base_dir, 'admin') if (chooserNickname != optionsNickname and - (chooserNickname == adminNickname or + (chooserNickname == admin_nickname or (is_moderator(self.server.base_dir, chooserNickname) and not is_moderator(self.server.base_dir, optionsNickname)))): postsToFeatures = None @@ -2579,9 +2580,9 @@ class PubServer(BaseHTTPRequestHandler): # person options screen, permission to post to newswire # See html_person_options if '&submitModNewsPosts=' in optionsConfirmParams: - adminNickname = get_config_param(self.server.base_dir, 'admin') + admin_nickname = get_config_param(self.server.base_dir, 'admin') if (chooserNickname != optionsNickname and - (chooserNickname == adminNickname or + (chooserNickname == admin_nickname or (is_moderator(self.server.base_dir, chooserNickname) and not is_moderator(self.server.base_dir, optionsNickname)))): modPostsToNews = None @@ -2694,13 +2695,13 @@ class PubServer(BaseHTTPRequestHandler): print('Sending DM to ' + optionsActor) reportPath = path.replace('/personoptions', '') + '/newdm' - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] customSubmitText = get_config_param(base_dir, 'customSubmitText') conversationId = None @@ -2717,7 +2718,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.defaultTimeline, self.server.newswire, self.server.theme_name, - True, accessKeys, + True, access_keys, customSubmitText, conversationId, self.server.recent_posts_cache, @@ -2829,13 +2830,13 @@ class PubServer(BaseHTTPRequestHandler): reportPath = \ path.replace('/personoptions', '') + '/newreport' - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] customSubmitText = get_config_param(base_dir, 'customSubmitText') conversationId = None @@ -2851,7 +2852,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.defaultTimeline, self.server.newswire, self.server.theme_name, - True, accessKeys, + True, access_keys, customSubmitText, conversationId, self.server.recent_posts_cache, @@ -3549,9 +3550,9 @@ class PubServer(BaseHTTPRequestHandler): allow_local_network_access = \ self.server.allow_local_network_access - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] signing_priv_key_pem = \ self.server.signing_priv_key_pem @@ -3589,7 +3590,7 @@ class PubServer(BaseHTTPRequestHandler): peertube_instances, allow_local_network_access, self.server.theme_name, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, signing_priv_key_pem, @@ -3874,9 +3875,9 @@ class PubServer(BaseHTTPRequestHandler): shareActor = removeShareConfirmParams.split('actor=')[1] if '&' in shareActor: shareActor = shareActor.split('&')[0] - adminNickname = get_config_param(base_dir, 'admin') + admin_nickname = get_config_param(base_dir, 'admin') adminActor = \ - local_actor_url(http_prefix, adminNickname, domain_full) + local_actor_url(http_prefix, admin_nickname, domain_full) actor = originPathStr actorNickname = get_nickname_from_actor(actor) if actor == shareActor or actor == adminActor or \ @@ -3941,9 +3942,9 @@ class PubServer(BaseHTTPRequestHandler): shareActor = removeShareConfirmParams.split('actor=')[1] if '&' in shareActor: shareActor = shareActor.split('&')[0] - adminNickname = get_config_param(base_dir, 'admin') + admin_nickname = get_config_param(base_dir, 'admin') adminActor = \ - local_actor_url(http_prefix, adminNickname, domain_full) + local_actor_url(http_prefix, admin_nickname, domain_full) actor = originPathStr actorNickname = get_nickname_from_actor(actor) if actor == shareActor or actor == adminActor or \ @@ -4165,9 +4166,9 @@ class PubServer(BaseHTTPRequestHandler): print('EX: _links_update unable to delete ' + linksFilename) - adminNickname = \ + admin_nickname = \ get_config_param(base_dir, 'admin') - if nickname == adminNickname: + if nickname == admin_nickname: if fields.get('editedAbout'): aboutStr = fields['editedAbout'] if not dangerous_markup(aboutStr, @@ -4747,7 +4748,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.POSTbusy = False return - adminNickname = get_config_param(self.server.base_dir, 'admin') + admin_nickname = get_config_param(self.server.base_dir, 'admin') # get the various avatar, banner and background images actorChanged = True @@ -4762,7 +4763,7 @@ class PubServer(BaseHTTPRequestHandler): for mType in profileMediaTypes: # some images can only be changed by the admin if mType == 'instanceLogo': - if nickname != adminNickname: + if nickname != admin_nickname: print('WARN: only the admin can change ' + 'instance logo') continue @@ -4817,7 +4818,7 @@ class PubServer(BaseHTTPRequestHandler): continue if mType == 'submitImportTheme': - if nickname == adminNickname or \ + if nickname == admin_nickname or \ is_artist(base_dir, nickname): if import_theme(base_dir, filename): print(nickname + ' uploaded a theme') @@ -5028,7 +5029,7 @@ class PubServer(BaseHTTPRequestHandler): if checkNameAndBio: redirectPath = 'previewAvatar' - if nickname == adminNickname or \ + if nickname == admin_nickname or \ is_artist(base_dir, nickname): # change theme if fields.get('themeDropdown'): @@ -5061,7 +5062,7 @@ class PubServer(BaseHTTPRequestHandler): domain, domain_full) - if nickname == adminNickname: + if nickname == admin_nickname: # change media instance status if fields.get('mediaInstance'): self.server.media_instance = False @@ -5546,14 +5547,14 @@ class PubServer(BaseHTTPRequestHandler): if checkNameAndBio: redirectPath = 'previewAvatar' - adminNickname = \ + admin_nickname = \ get_config_param(base_dir, 'admin') - if adminNickname: + if admin_nickname: # whether to require jsonld signatures # on all incoming posts if path.startswith('/users/' + - adminNickname + '/'): + admin_nickname + '/'): show_node_info_accounts = False if fields.get('showNodeInfoAccounts'): if fields['showNodeInfoAccounts'] == 'on': @@ -5650,7 +5651,7 @@ class PubServer(BaseHTTPRequestHandler): # change moderators list if fields.get('moderators'): if path.startswith('/users/' + - adminNickname + '/'): + admin_nickname + '/'): moderatorsFile = \ base_dir + \ '/accounts/moderators.txt' @@ -5718,7 +5719,7 @@ class PubServer(BaseHTTPRequestHandler): # change site editors list if fields.get('editors'): if path.startswith('/users/' + - adminNickname + '/'): + admin_nickname + '/'): editorsFile = \ base_dir + \ '/accounts/editors.txt' @@ -5781,7 +5782,7 @@ class PubServer(BaseHTTPRequestHandler): # change site counselors list if fields.get('counselors'): if path.startswith('/users/' + - adminNickname + '/'): + admin_nickname + '/'): counselorsFile = \ base_dir + \ '/accounts/counselors.txt' @@ -5847,7 +5848,7 @@ class PubServer(BaseHTTPRequestHandler): # change site artists list if fields.get('artists'): if path.startswith('/users/' + - adminNickname + '/'): + admin_nickname + '/'): artistsFile = \ base_dir + \ '/accounts/artists.txt' @@ -5933,7 +5934,7 @@ class PubServer(BaseHTTPRequestHandler): if (fields['removeCustomFont'] == 'on' and (is_artist(base_dir, nickname) or path.startswith('/users/' + - adminNickname + '/'))): + admin_nickname + '/'))): fontExt = ('woff', 'woff2', 'otf', 'ttf') for ext in fontExt: if os.path.isfile(base_dir + @@ -6194,7 +6195,7 @@ class PubServer(BaseHTTPRequestHandler): if actor_json['type'] != 'Group': # only allow admin to create groups if path.startswith('/users/' + - adminNickname + '/'): + admin_nickname + '/'): actor_json['type'] = 'Group' actorChanged = True else: @@ -6204,7 +6205,7 @@ class PubServer(BaseHTTPRequestHandler): actorChanged = True # grayscale theme - if path.startswith('/users/' + adminNickname + '/') or \ + if path.startswith('/users/' + admin_nickname + '/') or \ is_artist(base_dir, nickname): grayscale = False if fields.get('grayscale'): @@ -6216,7 +6217,7 @@ class PubServer(BaseHTTPRequestHandler): disable_grayscale(base_dir) # low bandwidth images checkbox - if path.startswith('/users/' + adminNickname + '/') or \ + if path.startswith('/users/' + admin_nickname + '/') or \ is_artist(base_dir, nickname): currLowBandwidth = \ get_config_param(base_dir, 'lowBandwidth') @@ -7152,13 +7153,13 @@ class PubServer(BaseHTTPRequestHandler): optionsActor, optionsProfileUrl, self.server.person_cache, 5) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] msg = \ html_person_options(self.server.defaultTimeline, self.server.css_cache, @@ -7184,7 +7185,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.text_mode_banner, self.server.news_instance, authorized, - accessKeys, isGroup).encode('utf-8') + access_keys, isGroup).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, calling_domain, False) @@ -9717,9 +9718,9 @@ class PubServer(BaseHTTPRequestHandler): icons_as_buttons = \ self.server.icons_as_buttons - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] rolesList = get_actor_roles_list(actor_json) city = \ @@ -9752,7 +9753,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.allow_local_network_access, self.server.text_mode_banner, self.server.debug, - accessKeys, city, + access_keys, city, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -9827,9 +9828,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.icons_as_buttons allow_local_network_access = \ self.server.allow_local_network_access - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] actorSkillsList = \ get_occupation_skills(actor_json) @@ -9870,7 +9871,7 @@ class PubServer(BaseHTTPRequestHandler): allow_local_network_access, self.server.text_mode_banner, self.server.debug, - accessKeys, city, + access_keys, city, self.server.system_language, self.server.max_like_count, shared_items_fed_domains, @@ -10263,9 +10264,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] shared_items_federated_domains = \ self.server.shared_items_federated_domains @@ -10304,7 +10305,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -10412,9 +10413,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] shared_items_federated_domains = \ @@ -10458,7 +10459,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -10559,9 +10560,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] shared_items_federated_domains = \ @@ -10605,7 +10606,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -10706,9 +10707,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] fed_domains = \ self.server.shared_items_federated_domains @@ -10750,7 +10751,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, fed_domains, @@ -10851,9 +10852,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] fed_domains = \ self.server.shared_items_federated_domains @@ -10895,7 +10896,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, fed_domains, @@ -11007,9 +11008,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] fed_domains = \ self.server.shared_items_federated_domains @@ -11049,7 +11050,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, self.server.allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, fed_domains, @@ -11158,9 +11159,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] shared_items_federated_domains = \ @@ -11206,7 +11207,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -11276,9 +11277,9 @@ class PubServer(BaseHTTPRequestHandler): else: pageNumber = 1 - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] full_width_tl_button_header = \ self.server.full_width_tl_button_header @@ -11314,7 +11315,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, self.server.allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, self.server.shared_items_federated_domains, @@ -11362,9 +11363,9 @@ class PubServer(BaseHTTPRequestHandler): else: pageNumber = 1 - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] full_width_tl_button_header = \ self.server.full_width_tl_button_header @@ -11399,7 +11400,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, self.server.allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, self.server.shared_items_federated_domains, @@ -11479,9 +11480,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] shared_items_federated_domains = \ @@ -11526,7 +11527,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -11627,9 +11628,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header minimalNick = is_minimal(base_dir, domain, nickname) - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] msg = \ @@ -11664,7 +11665,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, self.server.allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, self.server.shared_items_federated_domains, @@ -11753,9 +11754,9 @@ class PubServer(BaseHTTPRequestHandler): self.server.full_width_tl_button_header moderationActionStr = '' - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] shared_items_federated_domains = \ @@ -11799,7 +11800,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.peertube_instances, allow_local_network_access, self.server.text_mode_banner, - accessKeys, + access_keys, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -11884,13 +11885,13 @@ class PubServer(BaseHTTPRequestHandler): self.server.GETbusy = False return True - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] city = get_spoofed_city(self.server.city, @@ -11923,7 +11924,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.allow_local_network_access, self.server.text_mode_banner, self.server.debug, - accessKeys, city, + access_keys, city, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -12004,14 +12005,14 @@ class PubServer(BaseHTTPRequestHandler): self._404() return True - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys city = None if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] city = get_spoofed_city(self.server.city, @@ -12046,7 +12047,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.allow_local_network_access, self.server.text_mode_banner, self.server.debug, - accessKeys, city, + access_keys, city, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -12125,14 +12126,14 @@ class PubServer(BaseHTTPRequestHandler): self._404() return True - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys city = None if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] city = get_spoofed_city(self.server.city, @@ -12168,7 +12169,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.allow_local_network_access, self.server.text_mode_banner, self.server.debug, - accessKeys, city, + access_keys, city, self.server.system_language, self.server.max_like_count, shared_items_federated_domains, @@ -12266,14 +12267,14 @@ class PubServer(BaseHTTPRequestHandler): self._404() return True - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys city = None if '/users/' in path: nickname = path.split('/users/')[1] if '/' in nickname: nickname = nickname.split('/')[0] if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] city = get_spoofed_city(self.server.city, @@ -12305,7 +12306,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.allow_local_network_access, self.server.text_mode_banner, self.server.debug, - accessKeys, city, + access_keys, city, self.server.system_language, self.server.max_like_count, self.server.shared_items_federated_domains, @@ -12626,14 +12627,14 @@ class PubServer(BaseHTTPRequestHandler): """Shows a banner image on the search screen """ nickname = get_nickname_from_actor(path) - bannerFilename = \ + banner_filename = \ acct_dir(base_dir, nickname, domain) + '/search_banner.png' - if not os.path.isfile(bannerFilename): + if not os.path.isfile(banner_filename): if os.path.isfile(base_dir + '/theme/default/search_banner.png'): copyfile(base_dir + '/theme/default/search_banner.png', - bannerFilename) - if os.path.isfile(bannerFilename): - if self._etag_exists(bannerFilename): + banner_filename) + if os.path.isfile(banner_filename): + if self._etag_exists(banner_filename): # The file has not changed self._304() return True @@ -12642,7 +12643,7 @@ class PubServer(BaseHTTPRequestHandler): mediaBinary = None while tries < 5: try: - with open(bannerFilename, 'rb') as avFile: + with open(banner_filename, 'rb') as avFile: mediaBinary = avFile.read() break except Exception as ex: @@ -12651,8 +12652,8 @@ class PubServer(BaseHTTPRequestHandler): time.sleep(1) tries += 1 if mediaBinary: - mimeType = media_file_mime_type(bannerFilename) - self._set_headers_etag(bannerFilename, mimeType, + mimeType = media_file_mime_type(banner_filename) + self._set_headers_etag(banner_filename, mimeType, mediaBinary, None, self.server.domain_full, False, None) @@ -12674,11 +12675,11 @@ class PubServer(BaseHTTPRequestHandler): if not nickname: self._404() return True - bannerFilename = \ + banner_filename = \ acct_dir(base_dir, nickname, domain) + '/' + \ side + '_col_image.png' - if os.path.isfile(bannerFilename): - if self._etag_exists(bannerFilename): + if os.path.isfile(banner_filename): + if self._etag_exists(banner_filename): # The file has not changed self._304() return True @@ -12687,7 +12688,7 @@ class PubServer(BaseHTTPRequestHandler): mediaBinary = None while tries < 5: try: - with open(bannerFilename, 'rb') as avFile: + with open(banner_filename, 'rb') as avFile: mediaBinary = avFile.read() break except Exception as ex: @@ -12695,8 +12696,8 @@ class PubServer(BaseHTTPRequestHandler): time.sleep(1) tries += 1 if mediaBinary: - mimeType = media_file_mime_type(bannerFilename) - self._set_headers_etag(bannerFilename, mimeType, + mimeType = media_file_mime_type(banner_filename) + self._set_headers_etag(banner_filename, mimeType, mediaBinary, None, self.server.domain_full, False, None) @@ -13027,9 +13028,9 @@ class PubServer(BaseHTTPRequestHandler): print('Reply is within time interval: ' + str(replyIntervalHours) + ' hours') - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] customSubmitText = get_config_param(base_dir, 'customSubmitText') @@ -13055,7 +13056,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.defaultTimeline, self.server.newswire, self.server.theme_name, - noDropDown, accessKeys, + noDropDown, access_keys, customSubmitText, conversationId, self.server.recent_posts_cache, @@ -13138,10 +13139,10 @@ class PubServer(BaseHTTPRequestHandler): else: city = self.server.city - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if '/users/' in path: if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] default_reply_interval_hrs = self.server.default_reply_interval_hrs msg = html_edit_profile(self.server.css_cache, @@ -13156,7 +13157,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.text_mode_banner, city, self.server.user_agents_blocked, - accessKeys, + access_keys, default_reply_interval_hrs, self.server.cw_lists, self.server.lists_enabled).encode('utf-8') @@ -13181,9 +13182,9 @@ class PubServer(BaseHTTPRequestHandler): if '/' in nickname: nickname = nickname.split('/')[0] - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] msg = html_edit_links(self.server.css_cache, translate, @@ -13192,7 +13193,7 @@ class PubServer(BaseHTTPRequestHandler): port, http_prefix, self.server.defaultTimeline, - theme, accessKeys).encode('utf-8') + theme, access_keys).encode('utf-8') if msg: msglen = len(msg) self._set_headers('text/html', msglen, @@ -13214,9 +13215,9 @@ class PubServer(BaseHTTPRequestHandler): if '/' in nickname: nickname = nickname.split('/')[0] - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] msg = html_edit_newswire(self.server.css_cache, translate, @@ -13226,7 +13227,7 @@ class PubServer(BaseHTTPRequestHandler): http_prefix, self.server.defaultTimeline, self.server.theme_name, - accessKeys).encode('utf-8') + access_keys).encode('utf-8') if msg: msglen = len(msg) self._set_headers('text/html', msglen, @@ -14510,9 +14511,9 @@ class PubServer(BaseHTTPRequestHandler): if '/' in nickname: nickname = nickname.split('/')[0] - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = \ + access_keys = \ self.server.keyShortcuts[nickname] msg = \ @@ -14520,8 +14521,8 @@ class PubServer(BaseHTTPRequestHandler): self.server.base_dir, nickname, self.server.domain, self.server.translate, - accessKeys, - self.server.accessKeys, + access_keys, + self.server.access_keys, self.server.defaultTimeline) msg = msg.encode('utf-8') msglen = len(msg) @@ -14549,7 +14550,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.translate, self.server.defaultTimeline, self.server.theme_name, - self.server.accessKeys) + self.server.access_keys) msg = msg.encode('utf-8') msglen = len(msg) self._login_headers('text/html', msglen, calling_domain) @@ -15060,9 +15061,9 @@ class PubServer(BaseHTTPRequestHandler): rss_icon_at_top = self.server.rss_icon_at_top icons_as_buttons = self.server.icons_as_buttons defaultTimeline = self.server.defaultTimeline - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] msg = \ html_newswire_mobile(self.server.css_cache, self.server.base_dir, @@ -15080,7 +15081,7 @@ class PubServer(BaseHTTPRequestHandler): icons_as_buttons, defaultTimeline, self.server.theme_name, - accessKeys).encode('utf-8') + access_keys).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, calling_domain, False) @@ -15099,9 +15100,9 @@ class PubServer(BaseHTTPRequestHandler): self._404() self.server.GETbusy = False return - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] timelinePath = \ '/users/' + nickname + '/' + self.server.defaultTimeline icons_as_buttons = self.server.icons_as_buttons @@ -15120,7 +15121,7 @@ class PubServer(BaseHTTPRequestHandler): icons_as_buttons, defaultTimeline, self.server.theme_name, - accessKeys, + access_keys, sharedItemsDomains).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, calling_domain, @@ -15196,9 +15197,9 @@ class PubServer(BaseHTTPRequestHandler): if '/' in nickname: nickname = nickname.split('/')[0] - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] # show the search screen msg = html_search(self.server.css_cache, @@ -15208,7 +15209,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.defaultTimeline, self.server.theme_name, self.server.text_mode_banner, - accessKeys).encode('utf-8') + access_keys).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, calling_domain, False) @@ -15249,9 +15250,9 @@ class PubServer(BaseHTTPRequestHandler): if '/' in nickname: nickname = nickname.split('/')[0] - accessKeys = self.server.accessKeys + access_keys = self.server.access_keys if self.server.keyShortcuts.get(nickname): - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.keyShortcuts[nickname] # show the calendar screen msg = html_calendar(self.server.person_cache, @@ -15261,7 +15262,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.http_prefix, self.server.domain_full, self.server.text_mode_banner, - accessKeys).encode('utf-8') + access_keys).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, calling_domain, False) @@ -17997,9 +17998,9 @@ class PubServer(BaseHTTPRequestHandler): nickname = nickname.split('/')[0] if not self.server.keyShortcuts.get(nickname): - accessKeys = self.server.accessKeys - self.server.keyShortcuts[nickname] = accessKeys.copy() - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.access_keys + self.server.keyShortcuts[nickname] = access_keys.copy() + access_keys = self.server.keyShortcuts[nickname] self._key_shortcuts(self.path, calling_domain, cookie, @@ -18012,7 +18013,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.onion_domain, self.server.i2p_domain, self.server.debug, - accessKeys, + access_keys, self.server.defaultTimeline) self.server.POSTbusy = False return @@ -18025,9 +18026,9 @@ class PubServer(BaseHTTPRequestHandler): nickname = nickname.split('/')[0] if not self.server.keyShortcuts.get(nickname): - accessKeys = self.server.accessKeys - self.server.keyShortcuts[nickname] = accessKeys.copy() - accessKeys = self.server.keyShortcuts[nickname] + access_keys = self.server.access_keys + self.server.keyShortcuts[nickname] = access_keys.copy() + access_keys = self.server.keyShortcuts[nickname] allow_local_network_access = \ self.server.allow_local_network_access @@ -18042,7 +18043,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.onion_domain, self.server.i2p_domain, self.server.debug, - accessKeys, + access_keys, self.server.defaultTimeline, self.server.theme_name, allow_local_network_access, @@ -18644,7 +18645,7 @@ def run_daemon(content_license_url: str, httpd.text_mode_banner = get_text_mode_banner(base_dir) # key shortcuts SHIFT + ALT + [key] - httpd.accessKeys = { + httpd.access_keys = { 'Page up': ',', 'Page down': '.', 'submitButton': 'y', @@ -18691,7 +18692,7 @@ def run_daemon(content_license_url: str, httpd.keyShortcuts = {} load_access_keys_for_accounts(base_dir, httpd.keyShortcuts, - httpd.accessKeys) + httpd.access_keys) # wheither to use low bandwidth images httpd.low_bandwidth = low_bandwidth diff --git a/desktop_client.py b/desktop_client.py index d6bb02387..e766e4693 100644 --- a/desktop_client.py +++ b/desktop_client.py @@ -282,14 +282,14 @@ def _desktop_clear_screen() -> None: def _desktop_show_banner() -> None: """Shows the banner at the top """ - bannerFilename = 'banner.txt' - if not os.path.isfile(bannerFilename): + banner_filename = 'banner.txt' + if not os.path.isfile(banner_filename): bannerTheme = 'starlight' - bannerFilename = 'theme/' + bannerTheme + '/banner.txt' - if not os.path.isfile(bannerFilename): + banner_filename = 'theme/' + bannerTheme + '/banner.txt' + if not os.path.isfile(banner_filename): return - with open(bannerFilename, 'r') as bannerFile: - banner = bannerFile.read() + with open(banner_filename, 'r') as banner_file: + banner = banner_file.read() if banner: print(banner + '\n') diff --git a/fitnessFunctions.py b/fitnessFunctions.py index cc5bb2370..68af41f29 100644 --- a/fitnessFunctions.py +++ b/fitnessFunctions.py @@ -16,33 +16,33 @@ from utils import save_json def fitness_performance(startTime, fitnessState: {}, - fitnessId: str, watchPoint: str, debug: bool) -> None: + fitnessId: str, watch_point: str, debug: bool) -> None: """Log a performance watchpoint """ if 'performance' not in fitnessState: fitnessState['performance'] = {} if fitnessId not in fitnessState['performance']: fitnessState['performance'][fitnessId] = {} - if watchPoint not in fitnessState['performance'][fitnessId]: - fitnessState['performance'][fitnessId][watchPoint] = { + if watch_point not in fitnessState['performance'][fitnessId]: + fitnessState['performance'][fitnessId][watch_point] = { "total": float(0), "ctr": int(0) } - timeDiff = float(time.time() - startTime) + time_diff = float(time.time() - startTime) - fitnessState['performance'][fitnessId][watchPoint]['total'] += timeDiff - fitnessState['performance'][fitnessId][watchPoint]['ctr'] += 1 - if fitnessState['performance'][fitnessId][watchPoint]['ctr'] >= 1024: - fitnessState['performance'][fitnessId][watchPoint]['total'] /= 2 - fitnessState['performance'][fitnessId][watchPoint]['ctr'] = \ - int(fitnessState['performance'][fitnessId][watchPoint]['ctr'] / 2) + fitnessState['performance'][fitnessId][watch_point]['total'] += time_diff + fitnessState['performance'][fitnessId][watch_point]['ctr'] += 1 + if fitnessState['performance'][fitnessId][watch_point]['ctr'] >= 1024: + fitnessState['performance'][fitnessId][watch_point]['total'] /= 2 + fitnessState['performance'][fitnessId][watch_point]['ctr'] = \ + int(fitnessState['performance'][fitnessId][watch_point]['ctr'] / 2) if debug: - ctr = fitnessState['performance'][fitnessId][watchPoint]['ctr'] - total = fitnessState['performance'][fitnessId][watchPoint]['total'] + ctr = fitnessState['performance'][fitnessId][watch_point]['ctr'] + total = fitnessState['performance'][fitnessId][watch_point]['total'] print('FITNESS: performance/' + fitnessId + '/' + - watchPoint + '/' + str(total * 1000 / ctr)) + watch_point + '/' + str(total * 1000 / ctr)) def sorted_watch_points(fitness: {}, fitnessId: str) -> []: @@ -54,12 +54,12 @@ def sorted_watch_points(fitness: {}, fitnessId: str) -> []: if not fitness['performance'].get(fitnessId): return [] result = [] - for watchPoint, item in fitness['performance'][fitnessId].items(): + for watch_point, item in fitness['performance'][fitnessId].items(): if not item.get('total'): continue - averageTime = item['total'] * 1000 / item['ctr'] - averageTimeStr = str(averageTime).zfill(8) - result.append(averageTimeStr + ' ' + watchPoint) + average_time = item['total'] * 1000 / item['ctr'] + average_time_str = str(average_time).zfill(8) + result.append(average_time_str + ' ' + watch_point) result.sort(reverse=True) return result @@ -68,16 +68,17 @@ def html_watch_points_graph(base_dir: str, fitness: {}, fitnessId: str, maxEntries: int) -> str: """Returns the html for a graph of watchpoints """ - watchPointsList = sorted_watch_points(fitness, fitnessId) + watch_points_list = sorted_watch_points(fitness, fitnessId) - cssFilename = base_dir + '/epicyon-graph.css' + css_filename = base_dir + '/epicyon-graph.css' if os.path.isfile(base_dir + '/graph.css'): - cssFilename = base_dir + '/graph.css' + css_filename = base_dir + '/graph.css' - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') - htmlStr = html_header_with_external_style(cssFilename, instanceTitle, None) - htmlStr += \ + html_str = \ + html_header_with_external_style(css_filename, instance_title, None) + html_str += \ '\n' + \ '\n' + \ '\n' + \ @@ -88,23 +89,23 @@ def html_watch_points_graph(base_dir: str, fitness: {}, fitnessId: str, '\n' # get the maximum time - maxAverageTime = float(1) - if len(watchPointsList) > 0: - maxAverageTime = float(watchPointsList[0].split(' ')[0]) - for watchPoint in watchPointsList: - averageTime = float(watchPoint.split(' ')[0]) - if averageTime > maxAverageTime: - maxAverageTime = averageTime + max_average_time = float(1) + if len(watch_points_list) > 0: + max_average_time = float(watch_points_list[0].split(' ')[0]) + for watch_point in watch_points_list: + average_time = float(watch_point.split(' ')[0]) + if average_time > max_average_time: + max_average_time = average_time ctr = 0 - for watchPoint in watchPointsList: - name = watchPoint.split(' ', 1)[1] - averageTime = float(watchPoint.split(' ')[0]) - heightPercent = int(averageTime * 100 / maxAverageTime) - timeMS = int(averageTime) + for watch_point in watch_points_list: + name = watch_point.split(' ', 1)[1] + average_time = float(watch_point.split(' ')[0]) + heightPercent = int(average_time * 100 / max_average_time) + timeMS = int(average_time) if heightPercent == 0: continue - htmlStr += \ + html_str += \ '\n' + \ ' \n' + \ ' \n' + \ @@ -113,8 +114,8 @@ def html_watch_points_graph(base_dir: str, fitness: {}, fitnessId: str, if ctr >= maxEntries: break - htmlStr += '
Watchpoints for ' + fitnessId + '
' + name + '' + str(timeMS) + '
\n' + html_footer() - return htmlStr + html_str += '\n' + html_footer() + return html_str def fitness_thread(base_dir: str, fitness: {}): diff --git a/httpsig.py b/httpsig.py index 52378332b..a07c8a9da 100644 --- a/httpsig.py +++ b/httpsig.py @@ -301,15 +301,15 @@ def _verify_recent_signature(signedDateStr: str) -> bool: currDate = datetime.datetime.utcnow() dateFormat = "%a, %d %b %Y %H:%M:%S %Z" signedDate = datetime.datetime.strptime(signedDateStr, dateFormat) - timeDiffSec = (currDate - signedDate).seconds + time_diffSec = (currDate - signedDate).seconds # 12 hours tollerance - if timeDiffSec > 43200: + if time_diffSec > 43200: print('WARN: Header signed too long ago: ' + signedDateStr) - print(str(timeDiffSec / (60 * 60)) + ' hours') + print(str(time_diffSec / (60 * 60)) + ' hours') return False - if timeDiffSec < 0: + if time_diffSec < 0: print('WARN: Header signed in the future! ' + signedDateStr) - print(str(timeDiffSec / (60 * 60)) + ' hours') + print(str(time_diffSec / (60 * 60)) + ' hours') return False return True diff --git a/inbox.py b/inbox.py index b8b1665e8..901223271 100644 --- a/inbox.py +++ b/inbox.py @@ -174,8 +174,8 @@ def _update_cached_hashtag_swarm(base_dir: str, nickname: str, domain: str, pass if modifiedDate: currDate = datetime.datetime.utcnow() - timeDiff = currDate - modifiedDate - diffMins = int(timeDiff.total_seconds() / 60) + time_diff = currDate - modifiedDate + diffMins = int(time_diff.total_seconds() / 60) if diffMins < 10: # was saved recently, so don't save again # This avoids too much disk I/O @@ -566,11 +566,11 @@ def save_post_to_inbox_queue(base_dir: str, http_prefix: str, digestStartTime = time.time() digestAlgorithm = get_digest_algorithm_from_headers(httpHeaders) digest = message_content_digest(messageBytes, digestAlgorithm) - timeDiffStr = str(int((time.time() - digestStartTime) * 1000)) + time_diffStr = str(int((time.time() - digestStartTime) * 1000)) if debug: - while len(timeDiffStr) < 6: - timeDiffStr = '0' + timeDiffStr - print('DIGEST|' + timeDiffStr + '|' + filename) + while len(time_diffStr) < 6: + time_diffStr = '0' + time_diffStr + print('DIGEST|' + time_diffStr + '|' + filename) newQueueItem = { 'originalId': originalPostId, @@ -3602,12 +3602,12 @@ def _inbox_after_initial(recent_posts_cache: {}, max_recent_posts: int, cw_lists, lists_enabled) if debug: - timeDiff = \ + time_diff = \ str(int((time.time() - htmlCacheStartTime) * 1000)) print('Saved ' + boxname + ' post as html to cache in ' + - timeDiff + ' mS') + time_diff + ' mS') handleName = handle.split('@')[0] diff --git a/mastoapiv1.py b/mastoapiv1.py index b70e2c9dd..dda180cca 100644 --- a/mastoapiv1.py +++ b/mastoapiv1.py @@ -196,8 +196,8 @@ def masto_api_v1_response(path: str, calling_domain: str, sendJsonStr = \ 'masto API custom emojis sent ' + path + callingInfo - adminNickname = get_config_param(base_dir, 'admin') - if adminNickname and path == '/api/v1/instance': + admin_nickname = get_config_param(base_dir, 'admin') + if admin_nickname and path == '/api/v1/instance': instanceDescriptionShort = \ get_config_param(base_dir, 'instanceDescriptionShort') if not instanceDescriptionShort: @@ -224,7 +224,7 @@ def masto_api_v1_response(path: str, calling_domain: str, instanceDescription, http_prefix, base_dir, - adminNickname, + admin_nickname, domain, domain_full, registration, diff --git a/metadata.py b/metadata.py index 603dd2edd..5d32ab56b 100644 --- a/metadata.py +++ b/metadata.py @@ -86,13 +86,13 @@ def meta_data_instance(showAccounts: bool, instanceDescriptionShort: str, instanceDescription: str, http_prefix: str, base_dir: str, - adminNickname: str, domain: str, domain_full: str, + admin_nickname: str, domain: str, domain_full: str, registration: bool, system_language: str, version: str) -> {}: """ /api/v1/instance endpoint """ adminActorFilename = \ - base_dir + '/accounts/' + adminNickname + '@' + domain + '.json' + base_dir + '/accounts/' + admin_nickname + '@' + domain + '.json' if not os.path.isfile(adminActorFilename): return {} diff --git a/person.py b/person.py index 3b7f8e4f1..8f815eb64 100644 --- a/person.py +++ b/person.py @@ -1060,10 +1060,10 @@ def suspend_account(base_dir: str, nickname: str, domain: str) -> None: """Suspends the given account """ # Don't suspend the admin - adminNickname = get_config_param(base_dir, 'admin') - if not adminNickname: + admin_nickname = get_config_param(base_dir, 'admin') + if not admin_nickname: return - if nickname == adminNickname: + if nickname == admin_nickname: return # Don't suspend moderators @@ -1118,10 +1118,10 @@ def can_remove_post(base_dir: str, nickname: str, domain_full = get_full_domain(domain, port) # is the post by the admin? - adminNickname = get_config_param(base_dir, 'admin') - if not adminNickname: + admin_nickname = get_config_param(base_dir, 'admin') + if not admin_nickname: return False - if domain_full + '/users/' + adminNickname + '/' in post_id: + if domain_full + '/users/' + admin_nickname + '/' in post_id: return False # is the post by a moderator? @@ -1177,10 +1177,10 @@ def remove_account(base_dir: str, nickname: str, """Removes an account """ # Don't remove the admin - adminNickname = get_config_param(base_dir, 'admin') - if not adminNickname: + admin_nickname = get_config_param(base_dir, 'admin') + if not admin_nickname: return False - if nickname == adminNickname: + if nickname == admin_nickname: return False # Don't remove moderators diff --git a/tests.py b/tests.py index 3ed8e9b29..6c4e5c17c 100644 --- a/tests.py +++ b/tests.py @@ -3937,9 +3937,9 @@ def _test_constant_time_string(): constant_time_string_check(test_str, test_str) end = time.time() avTime2 = ((end - start) * 1000000 / itterations) - timeDiffMicroseconds = abs(avTime2 - avTime1) + time_diffMicroseconds = abs(avTime2 - avTime1) # time difference should be less than 10uS - assert int(timeDiffMicroseconds) < 10 + assert int(time_diffMicroseconds) < 10 # change multiple characters and observe timing difference start = time.time() @@ -3948,9 +3948,9 @@ def _test_constant_time_string(): constant_time_string_check(test_str, test_str2) end = time.time() avTime2 = ((end - start) * 1000000 / itterations) - timeDiffMicroseconds = abs(avTime2 - avTime1) + time_diffMicroseconds = abs(avTime2 - avTime1) # time difference should be less than 10uS - assert int(timeDiffMicroseconds) < 10 + assert int(time_diffMicroseconds) < 10 def _test_replace_email_quote(): diff --git a/theme.py b/theme.py index 0b423792d..7eb19772b 100644 --- a/theme.py +++ b/theme.py @@ -397,13 +397,13 @@ def _set_background_format(base_dir: str, name: str, """ if extension == 'jpg': return - cssFilename = base_dir + '/' + backgroundType + '.css' - if not os.path.isfile(cssFilename): + css_filename = base_dir + '/' + backgroundType + '.css' + if not os.path.isfile(css_filename): return - with open(cssFilename, 'r') as cssfile: + with open(css_filename, 'r') as cssfile: css = cssfile.read() css = css.replace('background.jpg', 'background.' + extension) - with open(cssFilename, 'w+') as cssfile2: + with open(css_filename, 'w+') as cssfile2: cssfile2.write(css) @@ -594,9 +594,9 @@ def _set_theme_fonts(base_dir: str, theme_name: str) -> None: def get_text_mode_banner(base_dir: str) -> str: """Returns the banner used for shell browsers, like Lynx """ - text_mode_bannerFilename = base_dir + '/accounts/banner.txt' - if os.path.isfile(text_mode_bannerFilename): - with open(text_mode_bannerFilename, 'r') as fp: + text_mode_banner_filename = base_dir + '/accounts/banner.txt' + if os.path.isfile(text_mode_banner_filename): + with open(text_mode_banner_filename, 'r') as fp: bannerStr = fp.read() if bannerStr: return bannerStr.replace('\n', '
') @@ -640,7 +640,7 @@ def _set_text_mode_theme(base_dir: str, name: str) -> None: base_dir + '/accounts/logo.txt') # set the text mode banner which appears in browsers such as Lynx - text_mode_bannerFilename = \ + text_mode_banner_filename = \ base_dir + '/theme/' + name + '/banner.txt' if os.path.isfile(base_dir + '/accounts/banner.txt'): try: @@ -648,13 +648,13 @@ def _set_text_mode_theme(base_dir: str, name: str) -> None: except OSError: print('EX: _set_text_mode_theme unable to delete ' + base_dir + '/accounts/banner.txt') - if os.path.isfile(text_mode_bannerFilename): + if os.path.isfile(text_mode_banner_filename): try: - copyfile(text_mode_bannerFilename, + copyfile(text_mode_banner_filename, base_dir + '/accounts/banner.txt') except OSError: print('EX: _set_text_mode_theme unable to copy ' + - text_mode_bannerFilename + ' ' + + text_mode_banner_filename + ' ' + base_dir + '/accounts/banner.txt') @@ -666,7 +666,7 @@ def _set_theme_images(base_dir: str, name: str) -> None: profileImageFilename = \ base_dir + '/theme/' + theme_name_lower + '/image.png' - bannerFilename = \ + banner_filename = \ base_dir + '/theme/' + theme_name_lower + '/banner.png' searchBannerFilename = \ base_dir + '/theme/' + theme_name_lower + '/search_banner.png' @@ -721,7 +721,7 @@ def _set_theme_images(base_dir: str, name: str) -> None: backgroundType + '-background.' + ext) if os.path.isfile(profileImageFilename) and \ - os.path.isfile(bannerFilename): + os.path.isfile(banner_filename): try: copyfile(profileImageFilename, accountDir + '/image.png') @@ -730,11 +730,11 @@ def _set_theme_images(base_dir: str, name: str) -> None: profileImageFilename) try: - copyfile(bannerFilename, + copyfile(banner_filename, accountDir + '/banner.png') except OSError: print('EX: _set_theme_images unable to copy ' + - bannerFilename) + banner_filename) try: if os.path.isfile(searchBannerFilename): diff --git a/webapp_about.py b/webapp_about.py index 921e9af8f..ae8a87d31 100644 --- a/webapp_about.py +++ b/webapp_about.py @@ -20,7 +20,7 @@ def html_about(css_cache: {}, base_dir: str, http_prefix: str, system_language: str) -> str: """Show the about screen """ - adminNickname = get_config_param(base_dir, 'admin') + admin_nickname = get_config_param(base_dir, 'admin') if not os.path.isfile(base_dir + '/accounts/about.md'): copyfile(base_dir + '/default_about.md', base_dir + '/accounts/about.md') @@ -36,14 +36,14 @@ def html_about(css_cache: {}, base_dir: str, http_prefix: str, aboutText = markdown_to_html(aboutFile.read()) aboutForm = '' - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') aboutForm = \ - html_header_with_website_markup(cssFilename, instanceTitle, + html_header_with_website_markup(css_filename, instanceTitle, http_prefix, domain_full, system_language) aboutForm += '
' + aboutText + '
' @@ -52,13 +52,13 @@ def html_about(css_cache: {}, base_dir: str, http_prefix: str, '
\n' + \ '

' + \ 'http://' + onion_domain + '

\n
\n' - if adminNickname: - adminActor = '/users/' + adminNickname + if admin_nickname: + adminActor = '/users/' + admin_nickname aboutForm += \ '
\n' + \ '

' + \ translate['Administered by'] + ' ' + adminNickname + '. ' + \ + adminActor + '">' + admin_nickname + '. ' + \ translate['Version'] + ' ' + __version__ + \ '

\n
\n' aboutForm += html_footer() diff --git a/webapp_accesskeys.py b/webapp_accesskeys.py index 73e7e5ffe..8d4a4dead 100644 --- a/webapp_accesskeys.py +++ b/webapp_accesskeys.py @@ -17,7 +17,7 @@ from webapp_utils import html_footer def load_access_keys_for_accounts(base_dir: str, keyShortcuts: {}, - accessKeysTemplate: {}) -> None: + access_keysTemplate: {}) -> None: """Loads key shortcuts for each account """ for subdir, dirs, files in os.walk(base_dir + '/accounts'): @@ -25,57 +25,57 @@ def load_access_keys_for_accounts(base_dir: str, keyShortcuts: {}, if not is_account_dir(acct): continue accountDir = os.path.join(base_dir + '/accounts', acct) - accessKeysFilename = accountDir + '/accessKeys.json' - if not os.path.isfile(accessKeysFilename): + access_keysFilename = accountDir + '/access_keys.json' + if not os.path.isfile(access_keysFilename): continue nickname = acct.split('@')[0] - accessKeys = load_json(accessKeysFilename) - if accessKeys: - keyShortcuts[nickname] = accessKeysTemplate.copy() - for variableName, key in accessKeysTemplate.items(): - if accessKeys.get(variableName): + access_keys = load_json(access_keysFilename) + if access_keys: + keyShortcuts[nickname] = access_keysTemplate.copy() + for variableName, key in access_keysTemplate.items(): + if access_keys.get(variableName): keyShortcuts[nickname][variableName] = \ - accessKeys[variableName] + access_keys[variableName] break def html_access_keys(css_cache: {}, base_dir: str, nickname: str, domain: str, - translate: {}, accessKeys: {}, + translate: {}, access_keys: {}, defaultAccessKeys: {}, defaultTimeline: str) -> str: """Show and edit key shortcuts """ - accessKeysFilename = \ - acct_dir(base_dir, nickname, domain) + '/accessKeys.json' - if os.path.isfile(accessKeysFilename): - accessKeysFromFile = load_json(accessKeysFilename) - if accessKeysFromFile: - accessKeys = accessKeysFromFile + access_keysFilename = \ + acct_dir(base_dir, nickname, domain) + '/access_keys.json' + if os.path.isfile(access_keysFilename): + access_keysFromFile = load_json(access_keysFilename) + if access_keysFromFile: + access_keys = access_keysFromFile - accessKeysForm = '' - cssFilename = base_dir + '/epicyon-profile.css' + access_keysForm = '' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') - accessKeysForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) - accessKeysForm += '
\n' + access_keysForm = \ + html_header_with_external_style(css_filename, instanceTitle, None) + access_keysForm += '
\n' - accessKeysForm += \ + access_keysForm += \ '

' + translate['Key Shortcuts'] + '

\n' - accessKeysForm += \ + access_keysForm += \ '

' + translate['These access keys may be used'] + \ '

' - accessKeysForm += '
\n' - timelineKey = accessKeys['menuTimeline'] - submitKey = accessKeys['submitButton'] - accessKeysForm += \ + timelineKey = access_keys['menuTimeline'] + submitKey = access_keys['submitButton'] + access_keysForm += \ '
\n' + \ ' \n
\n' - accessKeysForm += ' \n' - accessKeysForm += ' \n' - accessKeysForm += ' \n' - accessKeysForm += ' \n' - accessKeysForm += ' \n' - accessKeysForm += ' \n' + access_keysForm += '
\n' + access_keysForm += ' \n' + access_keysForm += ' \n' + access_keysForm += ' \n' + access_keysForm += ' \n' + access_keysForm += ' \n' for variableName, key in defaultAccessKeys.items(): if not translate.get(variableName): @@ -98,8 +98,8 @@ def html_access_keys(css_cache: {}, base_dir: str, keyStr += \ '' - if accessKeys.get(variableName): - key = accessKeys[variableName] + if access_keys.get(variableName): + key = access_keys[variableName] if len(key) > 1: key = key[0] keyStr += \ @@ -107,11 +107,11 @@ def html_access_keys(css_cache: {}, base_dir: str, 'name="' + variableName.replace(' ', '_') + '" ' + \ 'value="' + key + '">' keyStr += '\n' - accessKeysForm += keyStr + access_keysForm += keyStr - accessKeysForm += ' \n' - accessKeysForm += '
\n' - accessKeysForm += '
\n' - accessKeysForm += '
\n' - accessKeysForm += html_footer() - return accessKeysForm + access_keysForm += ' \n' + access_keysForm += ' \n' + access_keysForm += ' \n' + access_keysForm += '
\n' + access_keysForm += html_footer() + return access_keysForm diff --git a/webapp_calendar.py b/webapp_calendar.py index d0aafd760..c4c7e1663 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -52,14 +52,14 @@ def html_calendar_delete_confirm(css_cache: {}, translate: {}, base_dir: str, return None delete_postStr = None - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') delete_postStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) delete_postStr += \ '

' + postTime + ' ' + str(year) + '/' + \ str(monthNumber) + \ @@ -111,9 +111,9 @@ def _html_calendar_day(person_cache: {}, css_cache: {}, translate: {}, except OSError: print('EX: _html_calendar_day unable to delete ' + calendarFile) - cssFilename = base_dir + '/epicyon-calendar.css' + css_filename = base_dir + '/epicyon-calendar.css' if os.path.isfile(base_dir + '/calendar.css'): - cssFilename = base_dir + '/calendar.css' + css_filename = base_dir + '/calendar.css' calActor = actor if '/users/' in actor: @@ -121,7 +121,7 @@ def _html_calendar_day(person_cache: {}, css_cache: {}, translate: {}, instanceTitle = get_config_param(base_dir, 'instanceTitle') calendarStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) calendarStr += '
\n' calendarStr += '\n' - tlStr += ' \n' + right_column_str + ' \n' + tl_str += ' \n' - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '9') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '9') - tlStr += ' \n' - tlStr += '
\n' calendarStr += \ @@ -249,7 +249,7 @@ def _html_calendar_day(person_cache: {}, css_cache: {}, translate: {}, def html_calendar(person_cache: {}, css_cache: {}, translate: {}, base_dir: str, path: str, http_prefix: str, domain_full: str, - text_mode_banner: str, accessKeys: {}) -> str: + text_mode_banner: str, access_keys: {}) -> str: """Show the calendar for a person """ domain = remove_domain_port(domain_full) @@ -334,9 +334,9 @@ def html_calendar(person_cache: {}, css_cache: {}, translate: {}, (date(year + 1, 1, 1) - date(year, monthNumber, 1)).days # print('daysInMonth ' + str(monthNumber) + ': ' + str(daysInMonth)) - cssFilename = base_dir + '/epicyon-calendar.css' + css_filename = base_dir + '/epicyon-calendar.css' if os.path.isfile(base_dir + '/calendar.css'): - cssFilename = base_dir + '/calendar.css' + css_filename = base_dir + '/calendar.css' calActor = actor if '/users/' in actor: @@ -345,7 +345,7 @@ def html_calendar(person_cache: {}, css_cache: {}, translate: {}, instanceTitle = \ get_config_param(base_dir, 'instanceTitle') headerStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) # the main graphical calendar as a table calendarStr = '
\n' @@ -353,19 +353,19 @@ def html_calendar(person_cache: {}, css_cache: {}, translate: {}, calendarStr += \ ' ' + 'accesskey="' + access_keys['Page up'] + '">' calendarStr += \ ' ' + translate['Previous month'] + \
         '\n' calendarStr += ' ' + 'accesskey="' + access_keys['menuTimeline'] + '">' calendarStr += '

' + monthName + '

\n' calendarStr += \ ' ' + 'accesskey="' + access_keys['Page down'] + '">' calendarStr += \ ' ' + translate['Next month'] + \
         ' []: """get any shares and turn them into the left column links format """ - pageNumber = 1 + page_number = 1 actor = local_actor_url(http_prefix, nickname, domain_full) # NOTE: this could potentially be slow if the number of federated # shared items is large - sharesJson, lastPage = \ - shares_timeline_json(actor, pageNumber, maxSharesInLeftColumn, - base_dir, domain, nickname, maxSharesInLeftColumn, + shares_json, last_page = \ + shares_timeline_json(actor, page_number, max_shares_in_left_column, + base_dir, domain, nickname, + max_shares_in_left_column, shared_items_federated_domains, 'shares') - if not sharesJson: + if not shares_json: return [] - linksList = [] + links_list = [] ctr = 0 - for published, item in sharesJson.items(): + for published, item in shares_json.items(): sharedesc = item['displayName'] if '<' in sharedesc or '?' in sharedesc: continue - shareId = item['shareId'] + share_id = item['shareId'] # selecting this link calls html_show_share - shareLink = actor + '?showshare=' + shareId + share_link = actor + '?showshare=' + share_id if item.get('category'): - shareLink += '?category=' + item['category'] + share_link += '?category=' + item['category'] shareCategory = share_category_icon(item['category']) - linksList.append(shareCategory + sharedesc + ' ' + shareLink) + links_list.append(shareCategory + sharedesc + ' ' + share_link) ctr += 1 - if ctr >= maxSharesInLeftColumn: + if ctr >= max_shares_in_left_column: break - if linksList: - linksList = ['* ' + translate['Shares']] + linksList - return linksList + if links_list: + links_list = ['* ' + translate['Shares']] + links_list + return links_list def _get_left_column_wanted(base_dir: str, http_prefix: str, domain: str, domain_full: str, nickname: str, - maxSharesInLeftColumn: int, + max_shares_in_left_column: int, translate: {}, shared_items_federated_domains: []) -> []: """get any wanted items and turn them into the left column links format """ - pageNumber = 1 + page_number = 1 actor = local_actor_url(http_prefix, nickname, domain_full) # NOTE: this could potentially be slow if the number of federated # wanted items is large - sharesJson, lastPage = \ - shares_timeline_json(actor, pageNumber, maxSharesInLeftColumn, - base_dir, domain, nickname, maxSharesInLeftColumn, + shares_json, last_page = \ + shares_timeline_json(actor, page_number, max_shares_in_left_column, + base_dir, domain, nickname, + max_shares_in_left_column, shared_items_federated_domains, 'wanted') - if not sharesJson: + if not shares_json: return [] - linksList = [] + links_list = [] ctr = 0 - for published, item in sharesJson.items(): + for published, item in shares_json.items(): sharedesc = item['displayName'] if '<' in sharedesc or ';' in sharedesc: continue - shareId = item['shareId'] + share_id = item['shareId'] # selecting this link calls html_show_share - shareLink = actor + '?showwanted=' + shareId - linksList.append(sharedesc + ' ' + shareLink) + share_link = actor + '?showwanted=' + share_id + links_list.append(sharedesc + ' ' + share_link) ctr += 1 - if ctr >= maxSharesInLeftColumn: + if ctr >= max_shares_in_left_column: break - if linksList: - linksList = ['* ' + translate['Wanted']] + linksList - return linksList + if links_list: + links_list = ['* ' + translate['Wanted']] + links_list + return links_list def get_left_column_content(base_dir: str, nickname: str, domain_full: str, @@ -118,13 +120,13 @@ def get_left_column_content(base_dir: str, nickname: str, domain_full: str, showBackButton: bool, timelinePath: str, rss_icon_at_top: bool, showHeaderImage: bool, frontPage: bool, theme: str, - accessKeys: {}, + access_keys: {}, shared_items_federated_domains: []) -> str: """Returns html content for the left column """ - htmlStr = '' + html_str = '' - separatorStr = html_post_separator(base_dir, 'left') + separator_str = html_post_separator(base_dir, 'left') domain = remove_domain_port(domain_full) editImageClass = '' @@ -136,40 +138,40 @@ def get_left_column_content(base_dir: str, nickname: str, domain_full: str, editImageClass = 'leftColEdit' if os.path.isfile(leftColumnImageFilename): editImageClass = 'leftColEditImage' - htmlStr += \ + html_str += \ '\n
\n \n' + \ '
\n' if showBackButton: - htmlStr += \ + html_str += \ '
' + \ '\n' if (editor or rss_icon_at_top) and not showHeaderImage: - htmlStr += '
' + html_str += '
' if editImageClass == 'leftColEdit': - htmlStr += '\n
\n' + html_str += '\n
\n' - htmlStr += '
\n' + html_str += '
\n' if editor: # show the edit icon - htmlStr += \ + html_str += \ ' ' + \ + 'accesskey="' + access_keys['menuEdit'] + '">' + \ '' + \
             translate['Edit Links'] + ' | \n' if artist: # show the theme designer icon - htmlStr += \ + html_str += \ ' ' + \ + 'accesskey="' + access_keys['menuThemeDesigner'] + '">' + \ '' + \
             translate['Theme Designer'] + ' | \n' @@ -191,51 +193,51 @@ def get_left_column_content(base_dir: str, nickname: str, domain_full: str, '" loading="lazy" alt="' + rssTitle + '" title="' + rssTitle + \ '" src="/icons/logorss.png" />\n' if rss_icon_at_top: - htmlStr += rssIconStr - htmlStr += '
\n' + html_str += rssIconStr + html_str += '
\n' if editImageClass == 'leftColEdit': - htmlStr += '
\n' + html_str += '
\n' if (editor or rss_icon_at_top) and not showHeaderImage: - htmlStr += '

' + html_str += '

' # if showHeaderImage: - # htmlStr += '
' + # html_str += '
' # flag used not to show the first separator - firstSeparatorAdded = False + first_separator_added = False - linksFilename = base_dir + '/accounts/links.txt' + links_filename = base_dir + '/accounts/links.txt' linksFileContainsEntries = False - linksList = None - if os.path.isfile(linksFilename): - with open(linksFilename, 'r') as f: - linksList = f.readlines() + links_list = None + if os.path.isfile(links_filename): + with open(links_filename, 'r') as f: + links_list = f.readlines() if not frontPage: # show a number of shares - maxSharesInLeftColumn = 3 + max_shares_in_left_column = 3 sharesList = \ _get_left_column_shares(base_dir, http_prefix, domain, domain_full, nickname, - maxSharesInLeftColumn, translate, + max_shares_in_left_column, translate, shared_items_federated_domains) - if linksList and sharesList: - linksList = sharesList + linksList + if links_list and sharesList: + links_list = sharesList + links_list wantedList = \ _get_left_column_wanted(base_dir, http_prefix, domain, domain_full, nickname, - maxSharesInLeftColumn, translate, + max_shares_in_left_column, translate, shared_items_federated_domains) - if linksList and wantedList: - linksList = wantedList + linksList + if links_list and wantedList: + links_list = wantedList + links_list newTabStr = ' target="_blank" rel="nofollow noopener noreferrer"' - if linksList: - htmlStr += '\n' - if firstSeparatorAdded: - htmlStr += separatorStr - htmlStr += \ + if first_separator_added: + html_str += separator_str + html_str += \ '' - htmlStr += \ + html_str += \ '' - htmlStr += \ + html_str += \ '' - htmlStr += \ + html_str += \ '' if linksFileContainsEntries and not rss_icon_at_top: - htmlStr += '
' + rssIconStr + '
' + html_str += '
' + rssIconStr + '
' - return htmlStr + return html_str def html_links_mobile(css_cache: {}, base_dir: str, @@ -355,16 +357,16 @@ def html_links_mobile(css_cache: {}, base_dir: str, rss_icon_at_top: bool, icons_as_buttons: bool, defaultTimeline: str, - theme: str, accessKeys: {}, + theme: str, access_keys: {}, shared_items_federated_domains: []) -> str: """Show the left column links within mobile view """ - htmlStr = '' + html_str = '' # the css filename - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' # is the user a site editor? if nickname == 'news': @@ -376,47 +378,48 @@ def html_links_mobile(css_cache: {}, base_dir: str, domain = remove_domain_port(domain_full) - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') - htmlStr = html_header_with_external_style(cssFilename, instanceTitle, None) - bannerFile, bannerFilename = \ + html_str = \ + html_header_with_external_style(css_filename, instance_title, None) + banner_file, banner_filename = \ get_banner_file(base_dir, nickname, domain, theme) - htmlStr += \ + html_str += \ '' + \ + 'accesskey="' + access_keys['menuTimeline'] + '">' + \ '\n' + 'src="/users/' + nickname + '/' + banner_file + '" />\n' - htmlStr += '
\n' - htmlStr += '
' + \ + html_str += '
\n' + html_str += '
' + \ header_buttons_front_screen(translate, nickname, 'links', authorized, icons_as_buttons) + '
' - htmlStr += \ + html_str += \ get_left_column_content(base_dir, nickname, domain_full, http_prefix, translate, editor, artist, False, timelinePath, rss_icon_at_top, False, False, - theme, accessKeys, + theme, access_keys, shared_items_federated_domains) if editor and not _links_exist(base_dir): - htmlStr += '


\n
\n ' - htmlStr += translate['Select the edit icon to add web links'] - htmlStr += '\n
\n' + html_str += '


\n
\n ' + html_str += translate['Select the edit icon to add web links'] + html_str += '\n
\n' # end of col-left-mobile - htmlStr += '
\n' + html_str += '
\n' - htmlStr += '
\n' + html_footer() - return htmlStr + html_str += '\n' + html_footer() + return html_str def html_edit_links(css_cache: {}, translate: {}, base_dir: str, path: str, domain: str, port: int, http_prefix: str, defaultTimeline: str, theme: str, - accessKeys: {}) -> str: + access_keys: {}) -> str: """Shows the edit links screen """ if '/users/' not in path: @@ -432,109 +435,110 @@ def html_edit_links(css_cache: {}, translate: {}, base_dir: str, path: str, if not is_editor(base_dir, nickname): return '' - cssFilename = base_dir + '/epicyon-links.css' + css_filename = base_dir + '/epicyon-links.css' if os.path.isfile(base_dir + '/links.css'): - cssFilename = base_dir + '/links.css' + css_filename = base_dir + '/links.css' # filename of the banner shown at the top - bannerFile, bannerFilename = \ + banner_file, _ = \ get_banner_file(base_dir, nickname, domain, theme) - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') - editLinksForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + edit_links_form = \ + html_header_with_external_style(css_filename, instance_title, None) # top banner - editLinksForm += \ + edit_links_form += \ '
\n' + \ '\n' - editLinksForm += \ + 'accesskey="' + access_keys['menuTimeline'] + '">\n' + edit_links_form += \ '\n' + \ + '/users/' + nickname + '/' + banner_file + '" />\n' + \ '
\n' - editLinksForm += \ + edit_links_form += \ '\n' - editLinksForm += \ + edit_links_form += \ '
\n' - editLinksForm += \ + edit_links_form += \ '
\n' - editLinksForm += \ + edit_links_form += \ '

' + translate['Edit Links'] + '

' - editLinksForm += \ + edit_links_form += \ ' \n' - editLinksForm += \ + 'accesskey="' + access_keys['submitButton'] + '">\n' + edit_links_form += \ '
\n' - linksFilename = base_dir + '/accounts/links.txt' - linksStr = '' - if os.path.isfile(linksFilename): - with open(linksFilename, 'r') as fp: - linksStr = fp.read() + links_filename = base_dir + '/accounts/links.txt' + links_str = '' + if os.path.isfile(links_filename): + with open(links_filename, 'r') as fp_links: + links_str = fp_links.read() - editLinksForm += \ + edit_links_form += \ '
' - editLinksForm += \ + edit_links_form += \ ' ' + \ translate['One link per line. Description followed by the link.'] + \ '
' - newColLinkStr = translate['New link title and URL'] - editLinksForm += edit_text_field(None, 'newColLink', '', newColLinkStr) - editLinksForm += \ + new_col_link_str = translate['New link title and URL'] + edit_links_form += \ + edit_text_field(None, 'newColLink', '', new_col_link_str) + edit_links_form += \ ' ' - editLinksForm += \ + 'style="height:80vh" spellcheck="false">' + links_str + '' + edit_links_form += \ '
' # the admin can edit terms of service and about text - adminNickname = get_config_param(base_dir, 'admin') - if adminNickname: - if nickname == adminNickname: - aboutFilename = base_dir + '/accounts/about.md' - aboutStr = '' - if os.path.isfile(aboutFilename): - with open(aboutFilename, 'r') as fp: - aboutStr = fp.read() + admin_nickname = get_config_param(base_dir, 'admin') + if admin_nickname: + if nickname == admin_nickname: + about_filename = base_dir + '/accounts/about.md' + about_str = '' + if os.path.isfile(about_filename): + with open(about_filename, 'r') as fp_about: + about_str = fp_about.read() - editLinksForm += \ + edit_links_form += \ '
' - editLinksForm += \ + edit_links_form += \ ' ' + \ translate['About this Instance'] + \ '
' - editLinksForm += \ + edit_links_form += \ ' ' - editLinksForm += \ + about_str + '' + edit_links_form += \ '
' - TOSFilename = base_dir + '/accounts/tos.md' - TOSStr = '' - if os.path.isfile(TOSFilename): - with open(TOSFilename, 'r') as fp: - TOSStr = fp.read() + tos_filename = base_dir + '/accounts/tos.md' + tos_str = '' + if os.path.isfile(tos_filename): + with open(tos_filename, 'r') as fp: + tos_str = fp.read() - editLinksForm += \ + edit_links_form += \ '
' - editLinksForm += \ + edit_links_form += \ ' ' + \ translate['Terms of Service'] + \ '
' - editLinksForm += \ + edit_links_form += \ ' ' - editLinksForm += \ + tos_str + '' + edit_links_form += \ '
' - editLinksForm += html_footer() - return editLinksForm + edit_links_form += html_footer() + return edit_links_form diff --git a/webapp_column_right.py b/webapp_column_right.py index 110697aba..6bdc3fc68 100644 --- a/webapp_column_right.py +++ b/webapp_column_right.py @@ -60,7 +60,7 @@ def get_right_column_content(base_dir: str, nickname: str, domain_full: str, showHeaderImage: bool, theme: str, defaultTimeline: str, - accessKeys: {}) -> str: + access_keys: {}) -> str: """Returns html content for the right column """ htmlStr = '' @@ -77,7 +77,7 @@ def get_right_column_content(base_dir: str, nickname: str, domain_full: str, ' ' + \ + 'accesskey="' + access_keys['menuNewPost'] + '">' + \ '\n' else: @@ -134,7 +134,7 @@ def get_right_column_content(base_dir: str, nickname: str, domain_full: str, htmlStr += \ ' ' + \ + 'accesskey="' + access_keys['menuEdit'] + '">' + \ '' + \
                 translate['Edit newswire'] + ' | ' + \ + 'accesskey="' + access_keys['menuEdit'] + '">' + \ '' + \
                 translate['Edit newswire'] + ' | ' + \ + 'accesskey="' + access_keys['menuNewPost'] + '">' + \ '' + \
                 titleStr + '\n' htmlStr += '\n' + '/users/' + nickname + '/' + banner_file + '" />\n' htmlStr += \ ' str: + access_keys: {}) -> str: """Shows the mobile version of the newswire right column """ htmlStr = '' # the css filename - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' if nickname == 'news': editor = False @@ -479,18 +480,19 @@ def html_newswire_mobile(css_cache: {}, base_dir: str, nickname: str, showPublishButton = editor - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') - htmlStr = html_header_with_external_style(cssFilename, instanceTitle, None) + htmlStr = \ + html_header_with_external_style(css_filename, instance_title, None) - bannerFile, bannerFilename = \ + banner_file, banner_filename = \ get_banner_file(base_dir, nickname, domain, theme) htmlStr += \ '' + \ + 'accesskey="' + access_keys['menuTimeline'] + '">' + \ '\n' + 'src="/users/' + nickname + '/' + banner_file + '" />\n' htmlStr += '
\n' @@ -506,7 +508,7 @@ def html_newswire_mobile(css_cache: {}, base_dir: str, nickname: str, False, timelinePath, showPublishButton, show_publish_as_icon, rss_icon_at_top, False, authorized, False, theme, - defaultTimeline, accessKeys) + defaultTimeline, access_keys) if editor and not newswire: htmlStr += '


\n' htmlStr += '
\n ' @@ -522,7 +524,7 @@ def html_newswire_mobile(css_cache: {}, base_dir: str, nickname: str, def html_edit_newswire(css_cache: {}, translate: {}, base_dir: str, path: str, domain: str, port: int, http_prefix: str, defaultTimeline: str, theme: str, - accessKeys: {}) -> str: + access_keys: {}) -> str: """Shows the edit newswire screen """ if '/users/' not in path: @@ -538,18 +540,18 @@ def html_edit_newswire(css_cache: {}, translate: {}, base_dir: str, path: str, if not is_moderator(base_dir, nickname): return '' - cssFilename = base_dir + '/epicyon-links.css' + css_filename = base_dir + '/epicyon-links.css' if os.path.isfile(base_dir + '/links.css'): - cssFilename = base_dir + '/links.css' + css_filename = base_dir + '/links.css' # filename of the banner shown at the top - bannerFile, bannerFilename = \ + banner_file, banner_filename = \ get_banner_file(base_dir, nickname, domain, theme) - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') editNewswireForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instance_title, None) # top banner editNewswireForm += \ @@ -557,9 +559,9 @@ def html_edit_newswire(css_cache: {}, translate: {}, base_dir: str, path: str, '\n' + 'accesskey="' + access_keys['menuTimeline'] + '">\n' editNewswireForm += '\n' editNewswireForm += \ @@ -574,7 +576,7 @@ def html_edit_newswire(css_cache: {}, translate: {}, base_dir: str, path: str, editNewswireForm += \ ' \n' + 'accesskey="' + access_keys['submitButton'] + '">\n' editNewswireForm += \ '
\n' @@ -668,14 +670,14 @@ def html_edit_news_post(css_cache: {}, translate: {}, base_dir: str, path: str, if not post_json_object: return '' - cssFilename = base_dir + '/epicyon-links.css' + css_filename = base_dir + '/epicyon-links.css' if os.path.isfile(base_dir + '/links.css'): - cssFilename = base_dir + '/links.css' + css_filename = base_dir + '/links.css' - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') editNewsPostForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instance_title, None) editNewsPostForm += \ '\n' diff --git a/webapp_confirm.py b/webapp_confirm.py index d0bf51b94..b366dea91 100644 --- a/webapp_confirm.py +++ b/webapp_confirm.py @@ -56,14 +56,14 @@ def html_confirm_delete(css_cache: {}, return None delete_postStr = None - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') delete_postStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) delete_postStr += \ individual_post_as_html(signing_priv_key_pem, True, recent_posts_cache, max_recent_posts, @@ -135,12 +135,12 @@ def html_confirm_remove_shared_item(css_cache: {}, translate: {}, set_custom_background(base_dir, 'shares-background', 'follow-background') - cssFilename = base_dir + '/epicyon-follow.css' + css_filename = base_dir + '/epicyon-follow.css' if os.path.isfile(base_dir + '/follow.css'): - cssFilename = base_dir + '/follow.css' + css_filename = base_dir + '/follow.css' instanceTitle = get_config_param(base_dir, 'instanceTitle') - sharesStr = html_header_with_external_style(cssFilename, + sharesStr = html_header_with_external_style(css_filename, instanceTitle, None) sharesStr += '
\n' + 'accesskey="' + access_keys['submitButton'] + '">\n' newPostForm += ' \n
\n' newPostForm += ' \n' diff --git a/webapp_frontscreen.py b/webapp_frontscreen.py index 00e2f6702..37437dcf2 100644 --- a/webapp_frontscreen.py +++ b/webapp_frontscreen.py @@ -109,7 +109,7 @@ def html_front_screen(signing_priv_key_pem: str, newswire: {}, theme: str, peertube_instances: [], allow_local_network_access: bool, - accessKeys: {}, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], extraJson: {}, @@ -135,11 +135,11 @@ def html_front_screen(signing_priv_key_pem: str, icons_as_buttons) # If this is the news account then show a different banner - bannerFile, bannerFilename = \ + banner_file, banner_filename = \ get_banner_file(base_dir, nickname, domain, theme) profileHeaderStr = \ '\n' + 'src="/users/' + nickname + '/' + banner_file + '" />\n' if loginButton: profileHeaderStr += '
' + loginButton + '
\n' @@ -158,7 +158,7 @@ def html_front_screen(signing_priv_key_pem: str, http_prefix, translate, False, False, False, None, rss_icon_at_top, True, - True, theme, accessKeys, + True, theme, access_keys, shared_items_federated_domains) profileHeaderStr += \ ' \n' + \ @@ -166,12 +166,12 @@ def html_front_screen(signing_priv_key_pem: str, profileStr = profileHeaderStr - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' licenseStr = '' - bannerFile, bannerFilename = \ + banner_file, banner_filename = \ get_banner_file(base_dir, nickname, domain, theme) profileStr += \ _html_front_screen_posts(recent_posts_cache, max_recent_posts, @@ -199,7 +199,7 @@ def html_front_screen(signing_priv_key_pem: str, False, False, newswire, False, False, None, False, False, False, True, authorized, True, theme, - defaultTimeline, accessKeys) + defaultTimeline, access_keys) profileFooterStr += \ ' \n' + \ ' \n' + \ @@ -209,6 +209,6 @@ def html_front_screen(signing_priv_key_pem: str, instanceTitle = \ get_config_param(base_dir, 'instanceTitle') profileStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + \ + html_header_with_external_style(css_filename, instanceTitle, None) + \ profileStr + profileFooterStr + html_footer() return profileStr diff --git a/webapp_hashtagswarm.py b/webapp_hashtagswarm.py index e323be411..1cd85806c 100644 --- a/webapp_hashtagswarm.py +++ b/webapp_hashtagswarm.py @@ -203,13 +203,14 @@ def html_search_hashtag_category(css_cache: {}, translate: {}, set_custom_background(base_dir, 'search-background', 'follow-background') - cssFilename = base_dir + '/epicyon-search.css' + css_filename = base_dir + '/epicyon-search.css' if os.path.isfile(base_dir + '/search.css'): - cssFilename = base_dir + '/search.css' + css_filename = base_dir + '/search.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') - htmlStr = html_header_with_external_style(cssFilename, instanceTitle, None) + htmlStr = \ + html_header_with_external_style(css_filename, instanceTitle, None) # show a banner above the search box searchBannerFile, searchBannerFilename = \ diff --git a/webapp_headerbuttons.py b/webapp_headerbuttons.py index 9dd79a80f..fc151508b 100644 --- a/webapp_headerbuttons.py +++ b/webapp_headerbuttons.py @@ -47,7 +47,7 @@ def header_buttons_timeline(defaultTimeline: str, calendarImage: str, followApprovals: str, icons_as_buttons: bool, - accessKeys: {}) -> str: + access_keys: {}) -> str: """Returns the header at the top of the timeline, containing buttons for inbox, outbox, search, calendar, etc """ @@ -57,7 +57,7 @@ def header_buttons_timeline(defaultTimeline: str, if defaultTimeline == 'tlmedia': tlStr += \ '' @@ -106,7 +106,7 @@ def header_buttons_timeline(defaultTimeline: str, if not minimal and not featuresHeader: tlStr += \ '' + \ + 'accesskey="' + access_keys['menuMedia'] + '">' + \ '' @@ -234,9 +234,9 @@ def header_buttons_timeline(defaultTimeline: str, '' # benchmark 5 - timeDiff = int((time.time() - timelineStartTime) * 1000) - if timeDiff > 100: - print('TIMELINE TIMING ' + boxName + ' 5 = ' + str(timeDiff)) + time_diff = int((time.time() - timelineStartTime) * 1000) + if time_diff > 100: + print('TIMELINE TIMING ' + boxName + ' 5 = ' + str(time_diff)) # the calendar button if not featuresHeader: diff --git a/webapp_login.py b/webapp_login.py index 79a8f9ca0..59bcb105c 100644 --- a/webapp_login.py +++ b/webapp_login.py @@ -113,9 +113,9 @@ def html_login(css_cache: {}, translate: {}, with open(base_dir + '/accounts/login.txt', 'r') as file: loginText = '' - cssFilename = base_dir + '/epicyon-login.css' + css_filename = base_dir + '/epicyon-login.css' if os.path.isfile(base_dir + '/login.css'): - cssFilename = base_dir + '/login.css' + css_filename = base_dir + '/login.css' # show the register button registerButtonStr = '' @@ -151,7 +151,7 @@ def html_login(css_cache: {}, translate: {}, instanceTitle = \ get_config_param(base_dir, 'instanceTitle') loginForm = \ - html_header_with_website_markup(cssFilename, instanceTitle, + html_header_with_website_markup(css_filename, instanceTitle, http_prefix, domain, system_language) diff --git a/webapp_moderation.py b/webapp_moderation.py index fc128283b..a1cff2fba 100644 --- a/webapp_moderation.py +++ b/webapp_moderation.py @@ -50,7 +50,7 @@ def html_moderation(css_cache: {}, defaultTimeline: str, theme: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, @@ -77,7 +77,7 @@ def html_moderation(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, moderationActionStr, theme, peertube_instances, allow_local_network_access, - text_mode_banner, accessKeys, system_language, + text_mode_banner, access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) @@ -95,14 +95,14 @@ def html_account_info(css_cache: {}, translate: {}, msgStr1 = 'This account interacts with the following instances' infoForm = '' - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') infoForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) searchNickname = get_nickname_from_actor(searchHandle) searchDomain, searchPort = get_domain_from_actor(searchHandle) @@ -284,13 +284,13 @@ def html_moderation_info(css_cache: {}, translate: {}, 'Any blocks or suspensions made by moderators will be shown here.' infoForm = '' - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') - infoForm = html_header_with_external_style(cssFilename, + infoForm = html_header_with_external_style(css_filename, instanceTitle, None) infoForm += \ diff --git a/webapp_person_options.py b/webapp_person_options.py index 018df7a74..b27211222 100644 --- a/webapp_person_options.py +++ b/webapp_person_options.py @@ -61,7 +61,7 @@ def html_person_options(defaultTimeline: str, text_mode_banner: str, news_instance: bool, authorized: bool, - accessKeys: {}, + access_keys: {}, isGroup: bool) -> str: """Show options for a person: view/follow/block/report """ @@ -111,9 +111,9 @@ def html_person_options(defaultTimeline: str, optionsLinkStr = \ ' \n' - cssFilename = base_dir + '/epicyon-options.css' + css_filename = base_dir + '/epicyon-options.css' if os.path.isfile(base_dir + '/options.css'): - cssFilename = base_dir + '/options.css' + css_filename = base_dir + '/options.css' # To snooze, or not to snooze? That is the question snoozeButtonStr = 'Snooze' @@ -131,7 +131,7 @@ def html_person_options(defaultTimeline: str, instanceTitle = \ get_config_param(base_dir, 'instanceTitle') optionsStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) optionsStr += html_keyboard_navigation(text_mode_banner, {}, {}) optionsStr += '

\n' optionsStr += '
\n' @@ -255,7 +255,7 @@ def html_person_options(defaultTimeline: str, ' ' + translate['Petname'] + ': \n' + \ ' \n' \ + 'accesskey="' + access_keys['enterPetname'] + '">\n' \ '
\n' @@ -291,8 +291,8 @@ def html_person_options(defaultTimeline: str, # checkbox for permission to post to newswire newswirePostsPermitted = False if optionsDomainFull == domain_full: - adminNickname = get_config_param(base_dir, 'admin') - if (nickname == adminNickname or + admin_nickname = get_config_param(base_dir, 'admin') + if (nickname == admin_nickname or (is_moderator(base_dir, nickname) and not is_moderator(base_dir, optionsNickname))): newswireBlockedFilename = \ @@ -332,8 +332,8 @@ def html_person_options(defaultTimeline: str, # checkbox for permission to post to featured articles if news_instance and optionsDomainFull == domain_full: - adminNickname = get_config_param(base_dir, 'admin') - if (nickname == adminNickname or + admin_nickname = get_config_param(base_dir, 'admin') + if (nickname == admin_nickname or (is_moderator(base_dir, nickname) and not is_moderator(base_dir, optionsNickname))): checkboxStr = \ @@ -359,50 +359,51 @@ def html_person_options(defaultTimeline: str, optionsStr += \ ' \n' else: optionsStr += \ ' \n' if authorized: optionsStr += \ ' \n' optionsStr += donateStr if authorized: optionsStr += \ ' \n' optionsStr += \ ' \n' optionsStr += \ ' \n' optionsStr += \ ' \n' optionsStr += \ ' \n' if is_moderator(base_dir, nickname): optionsStr += \ ' \n' personNotes = '' @@ -422,7 +423,7 @@ def html_person_options(defaultTimeline: str, optionsStr += \ ' \n' optionsStr += \ diff --git a/webapp_post.py b/webapp_post.py index 73b93efc4..e3409073d 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -179,9 +179,9 @@ def _log_post_timing(enableTimingLog: bool, postStartTime, """ if not enableTimingLog: return - timeDiff = int((time.time() - postStartTime) * 1000) - if timeDiff > 100: - print('TIMING INDIV ' + debugId + ' = ' + str(timeDiff)) + time_diff = int((time.time() - postStartTime) * 1000) + if time_diff > 100: + print('TIMING INDIV ' + debugId + ' = ' + str(time_diff)) def prepare_html_post_nickname(nickname: str, postHtml: str) -> str: @@ -2153,14 +2153,14 @@ def html_individual_post(css_cache: {}, False, authorized, False, False, False, False, cw_lists, lists_enabled) - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') metadataStr = _html_post_metadata_open_graph(domain, originalPostJson) - headerStr = html_header_with_external_style(cssFilename, + headerStr = html_header_with_external_style(css_filename, instanceTitle, metadataStr) return headerStr + postStr + html_footer() @@ -2206,14 +2206,14 @@ def html_post_replies(css_cache: {}, False, False, cw_lists, lists_enabled) - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = get_config_param(base_dir, 'instanceTitle') metadata = '' headerStr = \ - html_header_with_external_style(cssFilename, instanceTitle, metadata) + html_header_with_external_style(css_filename, instanceTitle, metadata) return headerStr + repliesStr + html_footer() @@ -2280,18 +2280,18 @@ def html_emoji_reaction_picker(css_cache: {}, ' ' + emojiLabel + '\n' emojiPicksStr += '
\n' - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' # filename of the banner shown at the top - bannerFile, _ = \ + banner_file, _ = \ get_banner_file(base_dir, nickname, domain, theme_name) instanceTitle = get_config_param(base_dir, 'instanceTitle') metadata = '' headerStr = \ - html_header_with_external_style(cssFilename, instanceTitle, metadata) + html_header_with_external_style(css_filename, instanceTitle, metadata) # banner headerStr += \ @@ -2302,7 +2302,7 @@ def html_emoji_reaction_picker(css_cache: {}, translate['Switch to timeline view'] + '">\n' headerStr += '\n' + \ + 'src="/users/' + nickname + '/' + banner_file + '" />\n' + \ '\n' return headerStr + reactedToPostStr + emojiPicksStr + html_footer() diff --git a/webapp_search.py b/webapp_search.py index 367bf23e0..a7df992e5 100644 --- a/webapp_search.py +++ b/webapp_search.py @@ -54,9 +54,9 @@ def html_search_emoji(css_cache: {}, translate: {}, base_dir + '/emoji/emoji.json') searchStr = searchStr.lower().replace(':', '').strip('\n').strip('\r') - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' emojiLookupFilename = base_dir + '/emoji/emoji.json' customEmojiLookupFilename = base_dir + '/emojicustom/emoji.json' @@ -65,7 +65,7 @@ def html_search_emoji(css_cache: {}, translate: {}, instanceTitle = \ get_config_param(base_dir, 'instanceTitle') emojiForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) emojiForm += '

' + \ translate['Emoji Search'] + \ '

' @@ -235,14 +235,14 @@ def html_search_shared_items(css_cache: {}, translate: {}, searchStrLower = urllib.parse.unquote(searchStr) searchStrLower = searchStrLower.lower().strip('\n').strip('\r') searchStrLowerList = searchStrLower.split('+') - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') sharedItemsForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) if sharesFileType == 'shares': titleStr = translate['Shared Items Search'] else: @@ -342,14 +342,14 @@ def html_search_emoji_text_entry(css_cache: {}, translate: {}, set_custom_background(base_dir, 'search-background', 'follow-background') - cssFilename = base_dir + '/epicyon-follow.css' + css_filename = base_dir + '/epicyon-follow.css' if os.path.isfile(base_dir + '/follow.css'): - cssFilename = base_dir + '/follow.css' + css_filename = base_dir + '/follow.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') emojiStr = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) emojiStr += '
' + \ - rightColumnStr + '
\n' - return tlStr + tl_str += ' \n' + tl_str += '\n' + return tl_str -def _page_number_buttons(usersPath: str, boxName: str, pageNumber: int) -> str: +def _page_number_buttons(users_path: str, box_name: str, + page_number: int) -> str: """Shows selactable page numbers at the bottom of the screen """ - pagesWidth = 3 - minPageNumber = pageNumber - pagesWidth - if minPageNumber < 1: - minPageNumber = 1 - maxPageNumber = minPageNumber + 1 + (pagesWidth * 2) - numStr = '' - for page in range(minPageNumber, maxPageNumber): - if numStr: - numStr += ' ⸻ ' - pageStr = str(page) - if page == pageNumber: - pageStr = '' + str(page) + '' - numStr += \ - '' + pageStr + '' - return '
' + numStr + '
' + pages_width = 3 + min_page_number = page_number - pages_width + if min_page_number < 1: + min_page_number = 1 + max_page_number = min_page_number + 1 + (pages_width * 2) + num_str = '' + for page in range(min_page_number, max_page_number): + if num_str: + num_str += ' ⸻ ' + page_str = str(page) + if page == page_number: + page_str = '' + str(page) + '' + num_str += \ + '' + page_str + '' + return '
' + num_str + '
' -def html_timeline(css_cache: {}, defaultTimeline: str, +def html_timeline(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, - itemsPerPage: int, session, base_dir: str, + translate: {}, page_number: int, + items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, - nickname: str, domain: str, port: int, timelineJson: {}, - boxName: str, allow_deletion: bool, + nickname: str, domain: str, port: int, timeline_json: {}, + box_name: str, allow_deletion: bool, http_prefix: str, project_version: str, - manuallyApproveFollowers: bool, + manually_approve_followers: bool, minimal: bool, yt_replace_domain: str, twitter_replacement_domain: str, @@ -443,105 +445,105 @@ def html_timeline(css_cache: {}, defaultTimeline: str, rss_icon_at_top: bool, publish_button_at_top: bool, authorized: bool, - moderationActionStr: str, + moderation_action_str: str, theme: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the timeline as html """ - enableTimingLog = False + enable_timing_log = False - timelineStartTime = time.time() + timeline_start_time = time.time() - accountDir = acct_dir(base_dir, nickname, domain) + account_dir = acct_dir(base_dir, nickname, domain) # should the calendar icon be highlighted? - newCalendarEvent = False - calendarImage = 'calendar.png' - calendarPath = '/calendar' - calendarFile = accountDir + '/.newCalendar' - if os.path.isfile(calendarFile): - newCalendarEvent = True - calendarImage = 'calendar_notify.png' - with open(calendarFile, 'r') as calfile: - calendarPath = calfile.read().replace('##sent##', '') - calendarPath = calendarPath.replace('\n', '').replace('\r', '') + new_calendar_event = False + calendar_image = 'calendar.png' + calendar_path = '/calendar' + calendar_file = account_dir + '/.newCalendar' + if os.path.isfile(calendar_file): + new_calendar_event = True + calendar_image = 'calendar_notify.png' + with open(calendar_file, 'r') as calfile: + calendar_path = calfile.read().replace('##sent##', '') + calendar_path = calendar_path.replace('\n', '').replace('\r', '') # should the DM button be highlighted? - newDM = False - dmFile = accountDir + '/.newDM' - if os.path.isfile(dmFile): - newDM = True - if boxName == 'dm': + new_dm = False + dm_file = account_dir + '/.newDM' + if os.path.isfile(dm_file): + new_dm = True + if box_name == 'dm': try: - os.remove(dmFile) + os.remove(dm_file) except OSError: - print('EX: html_timeline unable to delete ' + dmFile) + print('EX: html_timeline unable to delete ' + dm_file) # should the Replies button be highlighted? - newReply = False - replyFile = accountDir + '/.newReply' - if os.path.isfile(replyFile): - newReply = True - if boxName == 'tlreplies': + new_reply = False + reply_file = account_dir + '/.newReply' + if os.path.isfile(reply_file): + new_reply = True + if box_name == 'tlreplies': try: - os.remove(replyFile) + os.remove(reply_file) except OSError: - print('EX: html_timeline unable to delete ' + replyFile) + print('EX: html_timeline unable to delete ' + reply_file) # should the Shares button be highlighted? - newShare = False - newShareFile = accountDir + '/.newShare' - if os.path.isfile(newShareFile): - newShare = True - if boxName == 'tlshares': + new_share = False + new_share_file = account_dir + '/.newShare' + if os.path.isfile(new_share_file): + new_share = True + if box_name == 'tlshares': try: - os.remove(newShareFile) + os.remove(new_share_file) except OSError: - print('EX: html_timeline unable to delete ' + newShareFile) + print('EX: html_timeline unable to delete ' + new_share_file) # should the Wanted button be highlighted? - newWanted = False - newWantedFile = accountDir + '/.newWanted' - if os.path.isfile(newWantedFile): - newWanted = True - if boxName == 'tlwanted': + new_wanted = False + new_wanted_file = account_dir + '/.newWanted' + if os.path.isfile(new_wanted_file): + new_wanted = True + if box_name == 'tlwanted': try: - os.remove(newWantedFile) + os.remove(new_wanted_file) except OSError: - print('EX: html_timeline unable to delete ' + newWantedFile) + print('EX: html_timeline unable to delete ' + new_wanted_file) # should the Moderation/reports button be highlighted? - newReport = False - newReportFile = accountDir + '/.newReport' - if os.path.isfile(newReportFile): - newReport = True - if boxName == 'moderation': + new_report = False + new_report_file = account_dir + '/.newReport' + if os.path.isfile(new_report_file): + new_report = True + if box_name == 'moderation': try: - os.remove(newReportFile) + os.remove(new_report_file) except OSError: - print('EX: html_timeline unable to delete ' + newReportFile) + print('EX: html_timeline unable to delete ' + new_report_file) - separatorStr = '' - if boxName != 'tlmedia': - separatorStr = html_post_separator(base_dir, None) + separator_str = '' + if box_name != 'tlmedia': + separator_str = html_post_separator(base_dir, None) # the css filename - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' # filename of the banner shown at the top - bannerFile, bannerFilename = \ + banner_file, _ = \ get_banner_file(base_dir, nickname, domain, theme) - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '1') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '1') # is the user a moderator? if not moderator: @@ -551,88 +553,88 @@ def html_timeline(css_cache: {}, defaultTimeline: str, if not editor: editor = is_editor(base_dir, nickname) - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '2') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '2') # the appearance of buttons - highlighted or not - inboxButton = 'button' - blogsButton = 'button' - featuresButton = 'button' - newsButton = 'button' - dmButton = 'button' - if newDM: - dmButton = 'buttonhighlighted' - repliesButton = 'button' - if newReply: - repliesButton = 'buttonhighlighted' - mediaButton = 'button' - bookmarksButton = 'button' + inbox_button = 'button' + blogs_button = 'button' + features_button = 'button' + news_button = 'button' + dm_button = 'button' + if new_dm: + dm_button = 'buttonhighlighted' + replies_button = 'button' + if new_reply: + replies_button = 'buttonhighlighted' + media_button = 'button' + bookmarks_button = 'button' # eventsButton = 'button' - sentButton = 'button' - sharesButton = 'button' - if newShare: - sharesButton = 'buttonhighlighted' - wantedButton = 'button' - if newWanted: - wantedButton = 'buttonhighlighted' - moderationButton = 'button' - if newReport: - moderationButton = 'buttonhighlighted' - if boxName == 'inbox': - inboxButton = 'buttonselected' - elif boxName == 'tlblogs': - blogsButton = 'buttonselected' - elif boxName == 'tlfeatures': - featuresButton = 'buttonselected' - elif boxName == 'tlnews': - newsButton = 'buttonselected' - elif boxName == 'dm': - dmButton = 'buttonselected' - if newDM: - dmButton = 'buttonselectedhighlighted' - elif boxName == 'tlreplies': - repliesButton = 'buttonselected' - if newReply: - repliesButton = 'buttonselectedhighlighted' - elif boxName == 'tlmedia': - mediaButton = 'buttonselected' - elif boxName == 'outbox': - sentButton = 'buttonselected' - elif boxName == 'moderation': - moderationButton = 'buttonselected' - if newReport: - moderationButton = 'buttonselectedhighlighted' - elif boxName == 'tlshares': - sharesButton = 'buttonselected' - if newShare: - sharesButton = 'buttonselectedhighlighted' - elif boxName == 'tlwanted': - wantedButton = 'buttonselected' - if newWanted: - wantedButton = 'buttonselectedhighlighted' - elif boxName == 'tlbookmarks' or boxName == 'bookmarks': - bookmarksButton = 'buttonselected' + sent_button = 'button' + shares_button = 'button' + if new_share: + shares_button = 'buttonhighlighted' + wanted_button = 'button' + if new_wanted: + wanted_button = 'buttonhighlighted' + moderation_button = 'button' + if new_report: + moderation_button = 'buttonhighlighted' + if box_name == 'inbox': + inbox_button = 'buttonselected' + elif box_name == 'tlblogs': + blogs_button = 'buttonselected' + elif box_name == 'tlfeatures': + features_button = 'buttonselected' + elif box_name == 'tlnews': + news_button = 'buttonselected' + elif box_name == 'dm': + dm_button = 'buttonselected' + if new_dm: + dm_button = 'buttonselectedhighlighted' + elif box_name == 'tlreplies': + replies_button = 'buttonselected' + if new_reply: + replies_button = 'buttonselectedhighlighted' + elif box_name == 'tlmedia': + media_button = 'buttonselected' + elif box_name == 'outbox': + sent_button = 'buttonselected' + elif box_name == 'moderation': + moderation_button = 'buttonselected' + if new_report: + moderation_button = 'buttonselectedhighlighted' + elif box_name == 'tlshares': + shares_button = 'buttonselected' + if new_share: + shares_button = 'buttonselectedhighlighted' + elif box_name == 'tlwanted': + wanted_button = 'buttonselected' + if new_wanted: + wanted_button = 'buttonselectedhighlighted' + elif box_name in ('tlbookmarks', 'bookmarks'): + bookmarks_button = 'buttonselected' # get the full domain, including any port number - fullDomain = get_full_domain(domain, port) + full_domain = get_full_domain(domain, port) - usersPath = '/users/' + nickname - actor = http_prefix + '://' + fullDomain + usersPath + users_path = '/users/' + nickname + actor = http_prefix + '://' + full_domain + users_path - showIndividualPostIcons = True + show_individual_post_icons = True # show an icon for new follow approvals - followApprovals = '' - followRequestsFilename = \ + follow_approvals = '' + follow_requests_filename = \ acct_dir(base_dir, nickname, domain) + '/followrequests.txt' - if os.path.isfile(followRequestsFilename): - with open(followRequestsFilename, 'r') as f: - for line in f: + if os.path.isfile(follow_requests_filename): + with open(follow_requests_filename, 'r') as foll_file: + for line in foll_file: if len(line) > 0: # show follow approvals icon - followApprovals = \ - '' + \ + 'accesskey="' + access_keys['followButton'] + '">' + \ '' + \
                         translate['Approve follow requests'] + \
@@ -640,101 +642,102 @@ def html_timeline(css_cache: {}, defaultTimeline: str,
                         '\n' break - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '3') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '3') # moderation / reports button - moderationButtonStr = '' + moderation_button_str = '' if moderator and not minimal: - moderationButtonStr = \ - '' # shares, bookmarks and events buttons - sharesButtonStr = '' - wantedButtonStr = '' - bookmarksButtonStr = '' - eventsButtonStr = '' + shares_button_str = '' + wanted_button_str = '' + bookmarks_button_str = '' + events_button_str = '' if not minimal: - sharesButtonStr = \ - '' - wantedButtonStr = \ - '' - bookmarksButtonStr = \ - '' - instanceTitle = \ + instance_title = \ get_config_param(base_dir, 'instanceTitle') - tlStr = html_header_with_external_style(cssFilename, instanceTitle, None) + tl_str = \ + html_header_with_external_style(css_filename, instance_title, None) - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '4') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '4') # if this is a news instance and we are viewing the news timeline - newsHeader = False - if defaultTimeline == 'tlfeatures' and boxName == 'tlfeatures': - newsHeader = True + news_header = False + if default_timeline == 'tlfeatures' and box_name == 'tlfeatures': + news_header = True - newPostButtonStr = '' + new_post_button_str = '' # start of headericons div - if not newsHeader: + if not news_header: if not icons_as_buttons: - newPostButtonStr += '
' + new_post_button_str += '
' # what screen to go to when a new post is created - newPostButtonStr += \ - _html_timeline_new_post(manuallyApproveFollowers, boxName, - icons_as_buttons, usersPath, translate) + new_post_button_str += \ + _html_timeline_new_post(manually_approve_followers, box_name, + icons_as_buttons, users_path, translate) # keyboard navigation - tlStr += \ + tl_str += \ _html_timeline_keyboard(moderator, text_mode_banner, - usersPath, nickname, - newCalendarEvent, newDM, newReply, - newShare, newWanted, - followApprovals, accessKeys, translate) + users_path, nickname, + new_calendar_event, new_dm, new_reply, + new_share, new_wanted, + follow_approvals, access_keys, translate) # banner and row of buttons - tlStr += \ + tl_str += \ '
\n' + \ '\n' - tlStr += '\n' + \ + 'src="' + users_path + '/' + banner_file + '" />\n' + \ '
\n' if full_width_tl_button_header: - tlStr += \ - header_buttons_timeline(defaultTimeline, boxName, pageNumber, - translate, usersPath, mediaButton, - blogsButton, featuresButton, - newsButton, inboxButton, - dmButton, newDM, repliesButton, - newReply, minimal, sentButton, - sharesButtonStr, wantedButtonStr, - bookmarksButtonStr, - eventsButtonStr, moderationButtonStr, - newPostButtonStr, base_dir, nickname, - domain, timelineStartTime, - newCalendarEvent, calendarPath, - calendarImage, followApprovals, - icons_as_buttons, accessKeys) + tl_str += \ + header_buttons_timeline(default_timeline, box_name, page_number, + translate, users_path, media_button, + blogs_button, features_button, + news_button, inbox_button, + dm_button, new_dm, replies_button, + new_reply, minimal, sent_button, + shares_button_str, wanted_button_str, + bookmarks_button_str, + events_button_str, moderation_button_str, + new_post_button_str, base_dir, nickname, + domain, timeline_start_time, + new_calendar_event, calendar_path, + calendar_image, follow_approvals, + icons_as_buttons, access_keys) # start the timeline - tlStr += \ + tl_str += \ '\n' + \ ' \n' + \ ' \n' + \ @@ -747,50 +750,50 @@ def html_timeline(css_cache: {}, defaultTimeline: str, domain_full = get_full_domain(domain, port) # left column - leftColumnStr = \ + left_column_str = \ get_left_column_content(base_dir, nickname, domain_full, http_prefix, translate, editor, artist, False, None, rss_icon_at_top, - True, False, theme, accessKeys, + True, False, theme, access_keys, shared_items_federated_domains) - tlStr += ' \n' + left_column_str + ' \n' # center column containing posts - tlStr += '
' + \ - leftColumnStr + ' \n' + tl_str += ' \n' if not full_width_tl_button_header: - tlStr += \ - header_buttons_timeline(defaultTimeline, boxName, pageNumber, - translate, usersPath, mediaButton, - blogsButton, featuresButton, - newsButton, inboxButton, - dmButton, newDM, repliesButton, - newReply, minimal, sentButton, - sharesButtonStr, wantedButtonStr, - bookmarksButtonStr, - eventsButtonStr, moderationButtonStr, - newPostButtonStr, base_dir, nickname, - domain, timelineStartTime, - newCalendarEvent, calendarPath, - calendarImage, followApprovals, - icons_as_buttons, accessKeys) + tl_str += \ + header_buttons_timeline(default_timeline, box_name, page_number, + translate, users_path, media_button, + blogs_button, features_button, + news_button, inbox_button, + dm_button, new_dm, replies_button, + new_reply, minimal, sent_button, + shares_button_str, wanted_button_str, + bookmarks_button_str, + events_button_str, moderation_button_str, + new_post_button_str, base_dir, nickname, + domain, timeline_start_time, + new_calendar_event, calendar_path, + calendar_image, follow_approvals, + icons_as_buttons, access_keys) - tlStr += '
\n' + tl_str += '
\n' # second row of buttons for moderator actions - tlStr += \ - _html_timeline_moderation_buttons(moderator, boxName, nickname, - moderationActionStr, translate) + tl_str += \ + _html_timeline_moderation_buttons(moderator, box_name, nickname, + moderation_action_str, translate) - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '6') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '6') - if boxName == 'tlshares': - maxSharesPerAccount = itemsPerPage - return (tlStr + - _html_shares_timeline(translate, pageNumber, itemsPerPage, + if box_name == 'tlshares': + max_shares_per_account = items_per_page + return (tl_str + + _html_shares_timeline(translate, page_number, items_per_page, base_dir, actor, nickname, domain, port, - maxSharesPerAccount, http_prefix, + max_shares_per_account, http_prefix, shared_items_federated_domains, 'shares') + _html_timeline_end(base_dir, nickname, domain_full, @@ -800,16 +803,16 @@ def html_timeline(css_cache: {}, defaultTimeline: str, show_publish_as_icon, rss_icon_at_top, publish_button_at_top, authorized, theme, - defaultTimeline, accessKeys, - boxName, - enableTimingLog, timelineStartTime) + + default_timeline, access_keys, + box_name, + enable_timing_log, timeline_start_time) + html_footer()) - elif boxName == 'tlwanted': - maxSharesPerAccount = itemsPerPage - return (tlStr + - _html_shares_timeline(translate, pageNumber, itemsPerPage, + elif box_name == 'tlwanted': + max_shares_per_account = items_per_page + return (tl_str + + _html_shares_timeline(translate, page_number, items_per_page, base_dir, actor, nickname, domain, port, - maxSharesPerAccount, http_prefix, + max_shares_per_account, http_prefix, shared_items_federated_domains, 'wanted') + _html_timeline_end(base_dir, nickname, domain_full, @@ -819,30 +822,31 @@ def html_timeline(css_cache: {}, defaultTimeline: str, show_publish_as_icon, rss_icon_at_top, publish_button_at_top, authorized, theme, - defaultTimeline, accessKeys, - boxName, - enableTimingLog, timelineStartTime) + + default_timeline, access_keys, + box_name, + enable_timing_log, timeline_start_time) + html_footer()) - _log_timeline_timing(enableTimingLog, timelineStartTime, boxName, '7') + _log_timeline_timing(enable_timing_log, timeline_start_time, box_name, '7') # separator between posts which only appears in shell browsers # such as Lynx and is not read by screen readers - if boxName != 'tlmedia': - textModeSeparator = \ + if box_name != 'tlmedia': + text_mode_separator = \ '

' else: - textModeSeparator = '' + text_mode_separator = '' # page up arrow - if pageNumber > 1: - tlStr += textModeSeparator - tlStr += '
' + _page_number_buttons(usersPath, boxName, pageNumber) - tlStr += \ + if page_number > 1: + tl_str += text_mode_separator + tl_str += '
' + \ + _page_number_buttons(users_path, box_name, page_number) + tl_str += \ '
\n' + \ - ' ' + \ + ' ' + \ '' + \
@@ -850,26 +854,26 @@ def html_timeline(css_cache: {}, defaultTimeline: str,
             '  </center>\n'
 
     # show the posts
-    itemCtr = 0
-    if timelineJson:
-        if 'orderedItems' not in timelineJson:
+    item_ctr = 0
+    if timeline_json:
+        if 'orderedItems' not in timeline_json:
             print('ERROR: no orderedItems in timeline for '
-                  + boxName + ' ' + str(timelineJson))
+                  + box_name + ' ' + str(timeline_json))
             return ''
 
-    useCacheOnly = False
-    if boxName == 'inbox':
-        useCacheOnly = True
+    use_cache_only = False
+    if box_name == 'inbox':
+        use_cache_only = True
 
-    if timelineJson:
+    if timeline_json:
         # if this is the media timeline then add an extra gallery container
-        if boxName == 'tlmedia':
-            if pageNumber > 1:
-                tlStr += '<br>'
-            tlStr += '<div class=\n' + if box_name == 'tlmedia': + if page_number > 1: + tl_str += '
' + tl_str += '
\n' # show each post in the timeline - for item in timelineJson['orderedItems']: + for item in timeline_json['orderedItems']: if item['type'] == 'Create' or \ item['type'] == 'Announce': # is the actor who sent this post snoozed? @@ -880,31 +884,31 @@ def html_timeline(css_cache: {}, defaultTimeline: str, continue # is the post in the memory cache of recent ones? - currTlStr = None - if boxName != 'tlmedia' and recent_posts_cache.get('html'): + curr_tl_str = None + if box_name != 'tlmedia' and recent_posts_cache.get('html'): post_id = remove_id_ending(item['id']).replace('/', '#') if recent_posts_cache['html'].get(post_id): - currTlStr = recent_posts_cache['html'][post_id] - currTlStr = \ + curr_tl_str = recent_posts_cache['html'][post_id] + curr_tl_str = \ prepare_post_from_html_cache(nickname, - currTlStr, - boxName, - pageNumber) - _log_timeline_timing(enableTimingLog, - timelineStartTime, - boxName, '10') + curr_tl_str, + box_name, + page_number) + _log_timeline_timing(enable_timing_log, + timeline_start_time, + box_name, '10') - if not currTlStr: - _log_timeline_timing(enableTimingLog, - timelineStartTime, - boxName, '11') + if not curr_tl_str: + _log_timeline_timing(enable_timing_log, + timeline_start_time, + box_name, '11') # read the post from disk - currTlStr = \ + curr_tl_str = \ individual_post_as_html(signing_priv_key_pem, False, recent_posts_cache, max_recent_posts, - translate, pageNumber, + translate, page_number, base_dir, session, cached_webfingers, person_cache, @@ -912,7 +916,7 @@ def html_timeline(css_cache: {}, defaultTimeline: str, item, None, True, allow_deletion, http_prefix, project_version, - boxName, + box_name, yt_replace_domain, twitter_replacement_domain, show_published_date_only, @@ -920,47 +924,47 @@ def html_timeline(css_cache: {}, defaultTimeline: str, allow_local_network_access, theme, system_language, max_like_count, - boxName != 'dm', - showIndividualPostIcons, - manuallyApproveFollowers, - False, True, useCacheOnly, + box_name != 'dm', + show_individual_post_icons, + manually_approve_followers, + False, True, use_cache_only, cw_lists, lists_enabled) - _log_timeline_timing(enableTimingLog, - timelineStartTime, boxName, '12') + _log_timeline_timing(enable_timing_log, + timeline_start_time, box_name, '12') - if currTlStr: - if currTlStr not in tlStr: - itemCtr += 1 - tlStr += textModeSeparator + currTlStr - if separatorStr: - tlStr += separatorStr - if boxName == 'tlmedia': - tlStr += '
\n' + if curr_tl_str: + if curr_tl_str not in tl_str: + item_ctr += 1 + tl_str += text_mode_separator + curr_tl_str + if separator_str: + tl_str += separator_str + if box_name == 'tlmedia': + tl_str += '
\n' - if itemCtr < 3: - print('Items added to html timeline ' + boxName + ': ' + - str(itemCtr) + ' ' + str(timelineJson['orderedItems'])) + if item_ctr < 3: + print('Items added to html timeline ' + box_name + ': ' + + str(item_ctr) + ' ' + str(timeline_json['orderedItems'])) # page down arrow - if itemCtr > 0: - tlStr += textModeSeparator - tlStr += \ + if item_ctr > 0: + tl_str += text_mode_separator + tl_str += \ '
\n' + \ '
\n' + \ - ' ' + \ + ' ' + \ '' + \
             translate['Page down'] + '\n' + \ '
\n' - tlStr += _page_number_buttons(usersPath, boxName, pageNumber) - tlStr += textModeSeparator - elif itemCtr == 0: - tlStr += _get_help_for_timeline(base_dir, boxName) + tl_str += _page_number_buttons(users_path, box_name, page_number) + tl_str += text_mode_separator + elif item_ctr == 0: + tl_str += _get_help_for_timeline(base_dir, box_name) - tlStr += \ + tl_str += \ _html_timeline_end(base_dir, nickname, domain_full, http_prefix, translate, moderator, editor, @@ -968,166 +972,168 @@ def html_timeline(css_cache: {}, defaultTimeline: str, show_publish_as_icon, rss_icon_at_top, publish_button_at_top, authorized, theme, - defaultTimeline, accessKeys, - boxName, - enableTimingLog, timelineStartTime) - tlStr += html_footer() - return tlStr + default_timeline, access_keys, + box_name, + enable_timing_log, timeline_start_time) + tl_str += html_footer() + return tl_str -def html_individual_share(domain: str, shareId: str, - actor: str, sharedItem: {}, translate: {}, - showContact: bool, removeButton: bool, +def html_individual_share(domain: str, share_id: str, + actor: str, shared_item: {}, translate: {}, + show_contact: bool, remove_button: bool, sharesFileType: str) -> str: """Returns an individual shared item as html """ - profileStr = '
\n' - profileStr += \ - '\n' - if sharedItem.get('imageUrl'): - profileStr += '\n' - profileStr += \ - '\n' + profile_str += \ + '\n' + if shared_item.get('imageUrl'): + profile_str += '\n' + profile_str += \ + '' + translate['Item image'] + '\n\n' - profileStr += '

' + sharedItem['summary'] + '

\n

' - if sharedItem.get('itemQty'): - if sharedItem['itemQty'] > 1: - profileStr += \ + profile_str += '

' + shared_item['summary'] + '

\n

' + if shared_item.get('itemQty'): + if shared_item['itemQty'] > 1: + profile_str += \ '' + translate['Quantity'] + ': ' + \ - str(sharedItem['itemQty']) + '
' - profileStr += \ - '' + translate['Type'] + ': ' + sharedItem['itemType'] + '
' - profileStr += \ + str(shared_item['itemQty']) + '
' + profile_str += \ + '' + translate['Type'] + ': ' + shared_item['itemType'] + '
' + profile_str += \ '' + translate['Category'] + ': ' + \ - sharedItem['category'] + '
' - if sharedItem.get('location'): - profileStr += \ + shared_item['category'] + '
' + if shared_item.get('location'): + profile_str += \ '' + translate['Location'] + ': ' + \ - sharedItem['location'] + '
' - contactTitleStr = translate['Contact'] - if sharedItem.get('itemPrice') and sharedItem.get('itemCurrency'): - if is_float(sharedItem['itemPrice']): - if float(sharedItem['itemPrice']) > 0: - profileStr += ' ' + \ + shared_item['location'] + '
' + contact_title_str = translate['Contact'] + if shared_item.get('itemPrice') and shared_item.get('itemCurrency'): + if is_float(shared_item['itemPrice']): + if float(shared_item['itemPrice']) > 0: + profile_str += ' ' + \ '' + translate['Price'] + ': ' + \ - sharedItem['itemPrice'] + ' ' + sharedItem['itemCurrency'] - contactTitleStr = translate['Buy'] - profileStr += '

\n' - sharedesc = sharedItem['displayName'] + shared_item['itemPrice'] + ' ' + \ + shared_item['itemCurrency'] + contact_title_str = translate['Buy'] + profile_str += '

\n' + sharedesc = shared_item['displayName'] if '<' not in sharedesc and ';' not in sharedesc: - if showContact: - buttonStyleStr = 'button' - if sharedItem['category'] == 'accommodation': - contactTitleStr = translate['Request to stay'] - buttonStyleStr = 'contactbutton' + if show_contact: + button_style_str = 'button' + if shared_item['category'] == 'accommodation': + contact_title_str = translate['Request to stay'] + button_style_str = 'contactbutton' - contactActor = sharedItem['actor'] - profileStr += \ + contact_actor = shared_item['actor'] + profile_str += \ '

' + \ '' + \ - '\n' - profileStr += \ - '\n' + profile_str += \ + '\n' - if removeButton and domain in shareId: + if remove_button and domain in share_id: if sharesFileType == 'shares': - profileStr += \ - ' \n' else: - profileStr += \ - ' \n' - profileStr += '

\n' - return profileStr + profile_str += '
\n' + return profile_str -def _html_shares_timeline(translate: {}, pageNumber: int, itemsPerPage: int, +def _html_shares_timeline(translate: {}, page_number: int, items_per_page: int, base_dir: str, actor: str, nickname: str, domain: str, port: int, - maxSharesPerAccount: int, http_prefix: str, + max_shares_per_account: int, http_prefix: str, shared_items_federated_domains: [], sharesFileType: str) -> str: """Show shared items timeline as html """ - sharesJson, lastPage = \ - shares_timeline_json(actor, pageNumber, itemsPerPage, - base_dir, domain, nickname, maxSharesPerAccount, + shares_json, lastPage = \ + shares_timeline_json(actor, page_number, items_per_page, + base_dir, domain, nickname, + max_shares_per_account, shared_items_federated_domains, sharesFileType) domain_full = get_full_domain(domain, port) actor = local_actor_url(http_prefix, nickname, domain_full) - adminNickname = get_config_param(base_dir, 'admin') - adminActor = '' - if adminNickname: - adminActor = \ - local_actor_url(http_prefix, adminNickname, domain_full) - timelineStr = '' + admin_nickname = get_config_param(base_dir, 'admin') + admin_actor = '' + if admin_nickname: + admin_actor = \ + local_actor_url(http_prefix, admin_nickname, domain_full) + timeline_str = '' - if pageNumber > 1: - timelineStr += '
' + \ - _page_number_buttons(actor, 'tl' + sharesFileType, pageNumber) - timelineStr += \ + if page_number > 1: + timeline_str += '
' + \ + _page_number_buttons(actor, 'tl' + sharesFileType, page_number) + timeline_str += \ '
\n' + \ ' ' + translate['Page up'] + '\n' + \ '
\n' - separatorStr = html_post_separator(base_dir, None) + separator_str = html_post_separator(base_dir, None) ctr = 0 - isAdminAccount = False - if adminActor and actor == adminActor: - isAdminAccount = True - is_moderatorAccount = False + is_admin_account = False + if admin_actor and actor == admin_actor: + is_admin_account = True + is_moderator_account = False if is_moderator(base_dir, nickname): - is_moderatorAccount = True + is_moderator_account = True - for published, sharedItem in sharesJson.items(): - showContactButton = False - if sharedItem['actor'] != actor: - showContactButton = True - showRemoveButton = False - if '___' + domain in sharedItem['shareId']: - if sharedItem['actor'] == actor or \ - isAdminAccount or is_moderatorAccount: - showRemoveButton = True - timelineStr += \ - html_individual_share(domain, sharedItem['shareId'], - actor, sharedItem, translate, - showContactButton, showRemoveButton, + for _, shared_item in shares_json.items(): + show_contact_button = False + if shared_item['actor'] != actor: + show_contact_button = True + show_remove_button = False + if '___' + domain in shared_item['shareId']: + if shared_item['actor'] == actor or \ + is_admin_account or is_moderator_account: + show_remove_button = True + timeline_str += \ + html_individual_share(domain, shared_item['shareId'], + actor, shared_item, translate, + show_contact_button, show_remove_button, sharesFileType) - timelineStr += separatorStr + timeline_str += separator_str ctr += 1 if ctr == 0: - timelineStr += _get_help_for_timeline(base_dir, 'tl' + sharesFileType) + timeline_str += _get_help_for_timeline(base_dir, 'tl' + sharesFileType) if not lastPage: - timelineStr += \ + timeline_str += \ '
\n' + \ ' ' + translate['Page down'] + '\n' + \ '
\n' - timelineStr += \ - _page_number_buttons(actor, 'tl' + sharesFileType, pageNumber) + timeline_str += \ + _page_number_buttons(actor, 'tl' + sharesFileType, page_number) - return timelineStr + return timeline_str -def html_shares(css_cache: {}, defaultTimeline: str, +def html_shares(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, @@ -1146,26 +1152,26 @@ def html_shares(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the shares timeline as html """ - manuallyApproveFollowers = \ + manually_approve_followers = \ follower_approval_active(base_dir, nickname, domain) artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, None, 'tlshares', allow_deletion, http_prefix, project_version, - manuallyApproveFollowers, + manually_approve_followers, False, yt_replace_domain, twitter_replacement_domain, @@ -1177,15 +1183,15 @@ def html_shares(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_wanted(css_cache: {}, defaultTimeline: str, +def html_wanted(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, @@ -1204,26 +1210,26 @@ def html_wanted(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the wanted timeline as html """ - manuallyApproveFollowers = \ + manually_approve_followers = \ follower_approval_active(base_dir, nickname, domain) artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, None, 'tlwanted', allow_deletion, http_prefix, project_version, - manuallyApproveFollowers, + manually_approve_followers, False, yt_replace_domain, twitter_replacement_domain, @@ -1235,15 +1241,15 @@ def html_wanted(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox(css_cache: {}, defaultTimeline: str, +def html_inbox(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1263,26 +1269,26 @@ def html_inbox(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the inbox as html """ - manuallyApproveFollowers = \ + manually_approve_followers = \ follower_approval_active(base_dir, nickname, domain) artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'inbox', allow_deletion, http_prefix, project_version, - manuallyApproveFollowers, + manually_approve_followers, minimal, yt_replace_domain, twitter_replacement_domain, @@ -1294,15 +1300,15 @@ def html_inbox(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_bookmarks(css_cache: {}, defaultTimeline: str, +def html_bookmarks(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, bookmarksJson: {}, @@ -1322,26 +1328,26 @@ def html_bookmarks(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the bookmarks as html """ - manuallyApproveFollowers = \ + manually_approve_followers = \ follower_approval_active(base_dir, nickname, domain) artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, bookmarksJson, 'tlbookmarks', allow_deletion, http_prefix, project_version, - manuallyApproveFollowers, + manually_approve_followers, minimal, yt_replace_domain, twitter_replacement_domain, @@ -1353,14 +1359,14 @@ def html_bookmarks(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox_d_ms(css_cache: {}, defaultTimeline: str, +def html_inbox_d_ms(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1380,7 +1386,7 @@ def html_inbox_d_ms(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, @@ -1388,10 +1394,10 @@ def html_inbox_d_ms(css_cache: {}, defaultTimeline: str, """Show the DM timeline as html """ artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'dm', allow_deletion, @@ -1406,15 +1412,15 @@ def html_inbox_d_ms(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox_replies(css_cache: {}, defaultTimeline: str, +def html_inbox_replies(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1434,7 +1440,7 @@ def html_inbox_replies(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, @@ -1442,10 +1448,10 @@ def html_inbox_replies(css_cache: {}, defaultTimeline: str, """Show the replies timeline as html """ artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'tlreplies', allow_deletion, http_prefix, project_version, False, @@ -1460,14 +1466,14 @@ def html_inbox_replies(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox_media(css_cache: {}, defaultTimeline: str, +def html_inbox_media(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1487,7 +1493,7 @@ def html_inbox_media(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, @@ -1495,10 +1501,10 @@ def html_inbox_media(css_cache: {}, defaultTimeline: str, """Show the media timeline as html """ artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'tlmedia', allow_deletion, http_prefix, project_version, False, @@ -1513,14 +1519,14 @@ def html_inbox_media(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox_blogs(css_cache: {}, defaultTimeline: str, +def html_inbox_blogs(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1540,7 +1546,7 @@ def html_inbox_blogs(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, @@ -1548,10 +1554,10 @@ def html_inbox_blogs(css_cache: {}, defaultTimeline: str, """Show the blogs timeline as html """ artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'tlblogs', allow_deletion, http_prefix, project_version, False, @@ -1566,14 +1572,14 @@ def html_inbox_blogs(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox_features(css_cache: {}, defaultTimeline: str, +def html_inbox_features(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1594,17 +1600,17 @@ def html_inbox_features(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the features timeline as html """ - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'tlfeatures', allow_deletion, http_prefix, project_version, False, @@ -1619,14 +1625,14 @@ def html_inbox_features(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_inbox_news(css_cache: {}, defaultTimeline: str, +def html_inbox_news(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, inboxJson: {}, @@ -1646,17 +1652,17 @@ def html_inbox_news(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the news timeline as html """ - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, inboxJson, 'tlnews', allow_deletion, http_prefix, project_version, False, @@ -1671,14 +1677,14 @@ def html_inbox_news(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) -def html_outbox(css_cache: {}, defaultTimeline: str, +def html_outbox(css_cache: {}, default_timeline: str, recent_posts_cache: {}, max_recent_posts: int, - translate: {}, pageNumber: int, itemsPerPage: int, + translate: {}, page_number: int, items_per_page: int, session, base_dir: str, cached_webfingers: {}, person_cache: {}, nickname: str, domain: str, port: int, outboxJson: {}, @@ -1698,24 +1704,24 @@ def html_outbox(css_cache: {}, defaultTimeline: str, peertube_instances: [], allow_local_network_access: bool, text_mode_banner: str, - accessKeys: {}, system_language: str, + access_keys: {}, system_language: str, max_like_count: int, shared_items_federated_domains: [], signing_priv_key_pem: str, cw_lists: {}, lists_enabled: str) -> str: """Show the Outbox as html """ - manuallyApproveFollowers = \ + manually_approve_followers = \ follower_approval_active(base_dir, nickname, domain) artist = is_artist(base_dir, nickname) - return html_timeline(css_cache, defaultTimeline, + return html_timeline(css_cache, default_timeline, recent_posts_cache, max_recent_posts, - translate, pageNumber, - itemsPerPage, session, base_dir, + translate, page_number, + items_per_page, session, base_dir, cached_webfingers, person_cache, nickname, domain, port, outboxJson, 'outbox', allow_deletion, http_prefix, project_version, - manuallyApproveFollowers, minimal, + manually_approve_followers, minimal, yt_replace_domain, twitter_replacement_domain, show_published_date_only, @@ -1726,6 +1732,6 @@ def html_outbox(css_cache: {}, defaultTimeline: str, publish_button_at_top, authorized, None, theme, peertube_instances, allow_local_network_access, text_mode_banner, - accessKeys, system_language, max_like_count, + access_keys, system_language, max_like_count, shared_items_federated_domains, signing_priv_key_pem, cw_lists, lists_enabled) diff --git a/webapp_tos.py b/webapp_tos.py index 23ef822a1..8c86710b1 100644 --- a/webapp_tos.py +++ b/webapp_tos.py @@ -20,7 +20,7 @@ def html_terms_of_service(css_cache: {}, base_dir: str, http_prefix: str, domain_full: str) -> str: """Show the terms of service screen """ - adminNickname = get_config_param(base_dir, 'admin') + admin_nickname = get_config_param(base_dir, 'admin') if not os.path.isfile(base_dir + '/accounts/tos.md'): copyfile(base_dir + '/default_tos.md', base_dir + '/accounts/tos.md') @@ -36,20 +36,21 @@ def html_terms_of_service(css_cache: {}, base_dir: str, TOSText = markdown_to_html(file.read()) TOSForm = '' - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') - TOSForm = html_header_with_external_style(cssFilename, instanceTitle, None) + TOSForm = \ + html_header_with_external_style(css_filename, instanceTitle, None) TOSForm += '
' + TOSText + '
\n' - if adminNickname: - adminActor = local_actor_url(http_prefix, adminNickname, domain_full) + if admin_nickname: + adminActor = local_actor_url(http_prefix, admin_nickname, domain_full) TOSForm += \ '
\n' + \ '

Administered by ' + adminNickname + '

\n' + \ + adminActor + '">' + admin_nickname + '

\n' + \ '
\n' TOSForm += html_footer() return TOSForm diff --git a/webapp_utils.py b/webapp_utils.py index 79d0a0ddd..6fd6a21c3 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -49,14 +49,14 @@ def html_following_list(css_cache: {}, base_dir: str, followingList = msg.split('\n') followingList.sort() if followingList: - cssFilename = base_dir + '/epicyon-profile.css' + css_filename = base_dir + '/epicyon-profile.css' if os.path.isfile(base_dir + '/epicyon.css'): - cssFilename = base_dir + '/epicyon.css' + css_filename = base_dir + '/epicyon.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') followingListHtml = \ - html_header_with_external_style(cssFilename, + html_header_with_external_style(css_filename, instanceTitle, None) for followingAddress in followingList: if followingAddress: @@ -72,14 +72,14 @@ def html_hashtag_blocked(css_cache: {}, base_dir: str, translate: {}) -> str: """Show the screen for a blocked hashtag """ blockedHashtagForm = '' - cssFilename = base_dir + '/epicyon-suspended.css' + css_filename = base_dir + '/epicyon-suspended.css' if os.path.isfile(base_dir + '/suspended.css'): - cssFilename = base_dir + '/suspended.css' + css_filename = base_dir + '/suspended.css' instanceTitle = \ get_config_param(base_dir, 'instanceTitle') blockedHashtagForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) blockedHashtagForm += '
\n' blockedHashtagForm += \ '

' + \ @@ -476,26 +476,26 @@ def _get_image_file(base_dir: str, name: str, directory: str, returns the filenames for an image with the given name """ bannerExtensions = get_image_extensions() - bannerFile = '' - bannerFilename = '' + banner_file = '' + banner_filename = '' for ext in bannerExtensions: - bannerFileTest = name + '.' + ext - bannerFilenameTest = directory + '/' + bannerFileTest - if os.path.isfile(bannerFilenameTest): - bannerFile = name + '_' + theme + '.' + ext - bannerFilename = bannerFilenameTest - return bannerFile, bannerFilename + banner_fileTest = name + '.' + ext + banner_filenameTest = directory + '/' + banner_fileTest + if os.path.isfile(banner_filenameTest): + banner_file = name + '_' + theme + '.' + ext + banner_filename = banner_filenameTest + return banner_file, banner_filename # if not found then use the default image theme = 'default' directory = base_dir + '/theme/' + theme for ext in bannerExtensions: - bannerFileTest = name + '.' + ext - bannerFilenameTest = directory + '/' + bannerFileTest - if os.path.isfile(bannerFilenameTest): - bannerFile = name + '_' + theme + '.' + ext - bannerFilename = bannerFilenameTest + banner_fileTest = name + '.' + ext + banner_filenameTest = directory + '/' + banner_fileTest + if os.path.isfile(banner_filenameTest): + banner_file = name + '_' + theme + '.' + ext + banner_filename = banner_filenameTest break - return bannerFile, bannerFilename + return banner_file, banner_filename def get_banner_file(base_dir: str, @@ -527,11 +527,11 @@ def get_right_image_file(base_dir: str, accountDir, nickname, domain, theme) -def html_header_with_external_style(cssFilename: str, instanceTitle: str, +def html_header_with_external_style(css_filename: str, instanceTitle: str, metadata: str, lang='en') -> str: if metadata is None: metadata = '' - cssFile = '/' + cssFilename.split('/')[-1] + cssFile = '/' + css_filename.split('/')[-1] htmlStr = \ '\n' + \ '\n' + \ @@ -554,7 +554,7 @@ def html_header_with_external_style(cssFilename: str, instanceTitle: str, return htmlStr -def html_header_with_person_markup(cssFilename: str, instanceTitle: str, +def html_header_with_person_markup(css_filename: str, instanceTitle: str, actor_json: {}, city: str, content_license_url: str, lang='en') -> str: @@ -563,7 +563,7 @@ def html_header_with_person_markup(cssFilename: str, instanceTitle: str, """ if not actor_json: htmlStr = \ - html_header_with_external_style(cssFilename, + html_header_with_external_style(css_filename, instanceTitle, None, lang) return htmlStr @@ -735,12 +735,12 @@ def html_header_with_person_markup(cssFilename: str, instanceTitle: str, "\" property=\"og:" + ogTag + "\" />\n" htmlStr = \ - html_header_with_external_style(cssFilename, instanceTitle, + html_header_with_external_style(css_filename, instanceTitle, ogMetadata + profileMarkup, lang) return htmlStr -def html_header_with_website_markup(cssFilename: str, instanceTitle: str, +def html_header_with_website_markup(css_filename: str, instanceTitle: str, http_prefix: str, domain: str, system_language: str) -> str: """html header which includes website markup @@ -792,13 +792,13 @@ def html_header_with_website_markup(cssFilename: str, instanceTitle: str, ' \n' htmlStr = \ - html_header_with_external_style(cssFilename, instanceTitle, + html_header_with_external_style(css_filename, instanceTitle, ogMetadata + websiteMarkup, system_language) return htmlStr -def html_header_with_blog_markup(cssFilename: str, instanceTitle: str, +def html_header_with_blog_markup(css_filename: str, instanceTitle: str, http_prefix: str, domain: str, nickname: str, system_language: str, published: str, modified: str, @@ -851,7 +851,7 @@ def html_header_with_blog_markup(cssFilename: str, instanceTitle: str, modified + '" />\n' htmlStr = \ - html_header_with_external_style(cssFilename, instanceTitle, + html_header_with_external_style(css_filename, instanceTitle, ogMetadata + blogMarkup, system_language) return htmlStr @@ -1273,7 +1273,7 @@ def html_hide_from_screen_reader(htmlStr: str) -> str: return '' -def html_keyboard_navigation(banner: str, links: {}, accessKeys: {}, +def html_keyboard_navigation(banner: str, links: {}, access_keys: {}, subHeading: str = None, usersPath: str = None, translate: {} = None, followApprovals: bool = False) -> str: @@ -1298,8 +1298,8 @@ def html_keyboard_navigation(banner: str, links: {}, accessKeys: {}, # show the list of links for title, url in links.items(): accessKeyStr = '' - if accessKeys.get(title): - accessKeyStr = 'accesskey="' + accessKeys[title] + '"' + if access_keys.get(title): + accessKeyStr = 'accesskey="' + access_keys[title] + '"' htmlStr += '

  • \n' + \ diff --git a/webapp_welcome_profile.py b/webapp_welcome_profile.py index c2f1ba5ff..950c981c0 100644 --- a/webapp_welcome_profile.py +++ b/webapp_welcome_profile.py @@ -63,12 +63,12 @@ def html_welcome_profile(base_dir: str, nickname: str, domain: str, profileText = markdown_to_html(remove_html(profileText)) profileForm = '' - cssFilename = base_dir + '/epicyon-welcome.css' + css_filename = base_dir + '/epicyon-welcome.css' if os.path.isfile(base_dir + '/welcome.css'): - cssFilename = base_dir + '/welcome.css' + css_filename = base_dir + '/welcome.css' profileForm = \ - html_header_with_external_style(cssFilename, instanceTitle, None) + html_header_with_external_style(css_filename, instanceTitle, None) # get the url of the avatar for ext in get_image_extensions():