From 920fe5e2bfee8499364b7e8b6b67a935a9f170a8 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 3 Feb 2022 10:02:41 +0000 Subject: [PATCH 1/7] Consistent prefix for exception messages --- session.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/session.py b/session.py index b5d98fe47..1305068b4 100644 --- a/session.py +++ b/session.py @@ -23,17 +23,17 @@ def create_session(proxy_type: str): try: session = requests.session() except requests.exceptions.RequestException as ex: - print('WARN: requests error during create_session ' + str(ex)) + print('EX: requests error during create_session ' + str(ex)) return None except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset during create_session ' + + print('EX: connection was reset during create_session ' + str(ex)) else: - print('WARN: socket error during create_session ' + str(ex)) + print('EX: socket error during create_session ' + str(ex)) return None except ValueError as ex: - print('WARN: error during create_session ' + str(ex)) + print('EX: error during create_session ' + str(ex)) return None if not session: return None @@ -114,7 +114,7 @@ def _get_json_request(session, url: str, domain_full: str, session_headers: {}, if session_headers2.get('Authorization'): session_headers2['Authorization'] = 'REDACTED' if debug and not quiet: - print('ERROR: get_json failed, url: ' + str(url) + ', ' + + print('EX: get_json failed, url: ' + str(url) + ', ' + 'headers: ' + str(session_headers2) + ', ' + 'params: ' + str(session_params) + ', ' + str(ex)) except ValueError as ex: @@ -122,13 +122,13 @@ def _get_json_request(session, url: str, domain_full: str, session_headers: {}, if session_headers2.get('Authorization'): session_headers2['Authorization'] = 'REDACTED' if debug and not quiet: - print('ERROR: get_json failed, url: ' + str(url) + ', ' + + print('EX: get_json failed, url: ' + str(url) + ', ' + 'headers: ' + str(session_headers2) + ', ' + 'params: ' + str(session_params) + ', ' + str(ex)) except SocketError as ex: if not quiet: if ex.errno == errno.ECONNRESET: - print('WARN: get_json failed, ' + + print('EX: get_json failed, ' + 'connection was reset during get_json ' + str(ex)) return None @@ -310,23 +310,23 @@ def post_json(http_prefix: str, domain_full: str, headers=headers, timeout=timeout_sec) except requests.Timeout as ex: if not quiet: - print('ERROR: post_json timeout ' + inbox_url + ' ' + + print('EX: post_json timeout ' + inbox_url + ' ' + json.dumps(post_json_object) + ' ' + str(headers)) print(ex) return '' except requests.exceptions.RequestException as ex: if not quiet: - print('ERROR: post_json requests failed ' + inbox_url + ' ' + + print('EX: post_json requests failed ' + inbox_url + ' ' + json.dumps(post_json_object) + ' ' + str(headers) + ' ' + str(ex)) return None except SocketError as ex: if not quiet and ex.errno == errno.ECONNRESET: - print('WARN: connection was reset during post_json') + print('EX: connection was reset during post_json') return None except ValueError as ex: if not quiet: - print('ERROR: post_json failed ' + inbox_url + ' ' + + print('EX: post_json failed ' + inbox_url + ' ' + json.dumps(post_json_object) + ' ' + str(headers) + ' ' + str(ex)) return None @@ -360,18 +360,18 @@ def post_json_string(session, post_jsonStr: str, headers=headers, timeout=timeout_sec) except requests.exceptions.RequestException as ex: if not quiet: - print('WARN: error during post_json_string requests ' + str(ex)) + print('EX: error during post_json_string requests ' + str(ex)) return None, None, 0 except SocketError as ex: if not quiet and ex.errno == errno.ECONNRESET: - print('WARN: connection was reset during post_json_string') + print('EX: connection was reset during post_json_string') if not quiet: - print('ERROR: post_json_string failed ' + inbox_url + ' ' + + print('EX: post_json_string failed ' + inbox_url + ' ' + post_jsonStr + ' ' + str(headers)) return None, None, 0 except ValueError as ex: if not quiet: - print('WARN: error during post_json_string ' + str(ex)) + print('EX: error during post_json_string ' + str(ex)) return None, None, 0 if post_result.status_code < 200 or post_result.status_code > 202: if post_result.status_code >= 400 and \ @@ -425,16 +425,16 @@ def post_image(session, attach_image_filename: str, federation_list: [], post_result = session.post(url=inbox_url, data=media_binary, headers=headers) except requests.exceptions.RequestException as ex: - print('WARN: error during post_image requests ' + str(ex)) + print('EX: error during post_image requests ' + str(ex)) return None except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset during post_image') + print('EX: connection was reset during post_image') print('ERROR: post_image failed ' + inbox_url + ' ' + str(headers) + ' ' + str(ex)) return None except ValueError as ex: - print('WARN: error during post_image ' + str(ex)) + print('EX: error during post_image ' + str(ex)) return None if post_result: return post_result.text @@ -540,16 +540,16 @@ def download_image_any_mime_type(session, url: str, try: result = session.get(url, headers=session_headers, timeout=timeout_sec) except requests.exceptions.RequestException as ex: - print('ERROR: download_image_any_mime_type failed: ' + + print('EX: download_image_any_mime_type failed1: ' + str(url) + ', ' + str(ex)) return None, None except ValueError as ex: - print('ERROR: download_image_any_mime_type failed: ' + + print('EX: download_image_any_mime_type failed2: ' + str(url) + ', ' + str(ex)) return None, None except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: download_image_any_mime_type failed, ' + + print('EX: download_image_any_mime_type failed, ' + 'connection was reset ' + str(ex)) return None, None From bae77c61a0cc94a519a34e5a37d53a13d2b88034 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 3 Feb 2022 10:34:34 +0000 Subject: [PATCH 2/7] Standardize exception message prefix --- daemon.py | 204 +++++++++++++++++++++++++++--------------------------- 1 file changed, 102 insertions(+), 102 deletions(-) diff --git a/daemon.py b/daemon.py index 95190cc29..36cff9dde 100644 --- a/daemon.py +++ b/daemon.py @@ -1025,10 +1025,10 @@ class PubServer(BaseHTTPRequestHandler): return True except BrokenPipeError as ex: if self.server.debug: - print('ERROR: _write error ' + str(tries) + ' ' + str(ex)) + print('EX: _write error ' + str(tries) + ' ' + str(ex)) break - except Exception as ex: - print('ERROR: _write error ' + str(tries) + ' ' + str(ex)) + except BaseException as ex: + print('EX: _write error ' + str(tries) + ' ' + str(ex)) time.sleep(0.5) tries += 1 return False @@ -1732,16 +1732,16 @@ class PubServer(BaseHTTPRequestHandler): login_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST login read ' + + print('EX: POST login read ' + 'connection reset by peer') else: - print('WARN: POST login read socket error') + print('EX: POST login read socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST login read failed, ' + str(ex)) + print('EX: POST login read failed, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -1925,16 +1925,16 @@ class PubServer(BaseHTTPRequestHandler): moderation_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST moderation_params connection was reset') + print('EX: POST moderation_params connection was reset') else: - print('WARN: POST moderation_params ' + + print('EX: POST moderation_params ' + 'rfile.read socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST moderation_params rfile.read failed, ' + + print('EX: POST moderation_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -2140,16 +2140,16 @@ class PubServer(BaseHTTPRequestHandler): access_keys_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST access_keys_params ' + + print('EX: POST access_keys_params ' + 'connection reset by peer') else: - print('WARN: POST access_keys_params socket error') + print('EX: POST access_keys_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST access_keys_params rfile.read failed, ' + + print('EX: POST access_keys_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -2233,16 +2233,16 @@ class PubServer(BaseHTTPRequestHandler): theme_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST theme_params ' + + print('EX: POST theme_params ' + 'connection reset by peer') else: - print('WARN: POST theme_params socket error') + print('EX: POST theme_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST theme_params rfile.read failed, ' + str(ex)) + print('EX: POST theme_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -2383,16 +2383,16 @@ class PubServer(BaseHTTPRequestHandler): options_confirm_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST options_confirm_params ' + + print('EX: POST options_confirm_params ' + 'connection reset by peer') else: - print('WARN: POST options_confirm_params socket error') + print('EX: POST options_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: ' + + print('EX: ' + 'POST options_confirm_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -2996,16 +2996,16 @@ class PubServer(BaseHTTPRequestHandler): follow_confirm_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST follow_confirm_params ' + + print('EX: POST follow_confirm_params ' + 'connection was reset') else: - print('WARN: POST follow_confirm_params socket error') + print('EX: POST follow_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST follow_confirm_params rfile.read failed, ' + + print('EX: POST follow_confirm_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -3085,16 +3085,16 @@ class PubServer(BaseHTTPRequestHandler): follow_confirm_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST follow_confirm_params ' + + print('EX: POST follow_confirm_params ' + 'connection was reset') else: - print('WARN: POST follow_confirm_params socket error') + print('EX: POST follow_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST follow_confirm_params rfile.read failed, ' + + print('EX: POST follow_confirm_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -3185,16 +3185,16 @@ class PubServer(BaseHTTPRequestHandler): block_confirm_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST block_confirm_params ' + + print('EX: POST block_confirm_params ' + 'connection was reset') else: - print('WARN: POST block_confirm_params socket error') + print('EX: POST block_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST block_confirm_params rfile.read failed, ' + + print('EX: POST block_confirm_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -3273,16 +3273,16 @@ class PubServer(BaseHTTPRequestHandler): block_confirm_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST block_confirm_params ' + + print('EX: POST block_confirm_params ' + 'connection was reset') else: - print('WARN: POST block_confirm_params socket error') + print('EX: POST block_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST block_confirm_params rfile.read failed, ' + + print('EX: POST block_confirm_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -3357,15 +3357,15 @@ class PubServer(BaseHTTPRequestHandler): search_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST search_params connection was reset') + print('EX: POST search_params connection was reset') else: - print('WARN: POST search_params socket error') + print('EX: POST search_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST search_params rfile.read failed, ' + str(ex)) + print('EX: POST search_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -3816,15 +3816,15 @@ class PubServer(BaseHTTPRequestHandler): question_params = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST question_params connection was reset') + print('EX: POST question_params connection was reset') else: - print('WARN: POST question_params socket error') + print('EX: POST question_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST question_params rfile.read failed, ' + str(ex)) + print('EX: POST question_params rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -3894,16 +3894,16 @@ class PubServer(BaseHTTPRequestHandler): media_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST media_bytes ' + + print('EX: POST media_bytes ' + 'connection reset by peer') else: - print('WARN: POST media_bytes socket error') + print('EX: POST media_bytes socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST media_bytes rfile.read failed, ' + str(ex)) + print('EX: POST media_bytes rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -3942,16 +3942,16 @@ class PubServer(BaseHTTPRequestHandler): self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST remove_share_confirm_params ' + + print('EX: POST remove_share_confirm_params ' + 'connection was reset') else: - print('WARN: POST remove_share_confirm_params socket error') + print('EX: POST remove_share_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST remove_share_confirm_params ' + + print('EX: POST remove_share_confirm_params ' + 'rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -4010,16 +4010,16 @@ class PubServer(BaseHTTPRequestHandler): self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST remove_share_confirm_params ' + + print('EX: POST remove_share_confirm_params ' + 'connection was reset') else: - print('WARN: POST remove_share_confirm_params socket error') + print('EX: POST remove_share_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST remove_share_confirm_params ' + + print('EX: POST remove_share_confirm_params ' + 'rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -4081,16 +4081,16 @@ class PubServer(BaseHTTPRequestHandler): self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST remove_post_confirm_params ' + + print('EX: POST remove_post_confirm_params ' + 'connection was reset') else: - print('WARN: POST remove_post_confirm_params socket error') + print('EX: POST remove_post_confirm_params socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST remove_post_confirm_params ' + + print('EX: POST remove_post_confirm_params ' + 'rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -4206,17 +4206,17 @@ class PubServer(BaseHTTPRequestHandler): post_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset while ' + + print('EX: connection was reset while ' + 'reading bytes from http form POST') else: - print('WARN: error while reading bytes ' + + print('EX: error while reading bytes ' + 'from http form POST') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: failed to read bytes for POST, ' + str(ex)) + print('EX: failed to read bytes for POST, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -4367,17 +4367,17 @@ class PubServer(BaseHTTPRequestHandler): post_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset while ' + + print('EX: connection was reset while ' + 'reading bytes from http form POST') else: - print('WARN: error while reading bytes ' + + print('EX: error while reading bytes ' + 'from http form POST') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: failed to read bytes for POST, ' + str(ex)) + print('EX: failed to read bytes for POST, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -4451,17 +4451,17 @@ class PubServer(BaseHTTPRequestHandler): post_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset while ' + + print('EX: connection was reset while ' + 'reading bytes from http form POST') else: - print('WARN: error while reading bytes ' + + print('EX: error while reading bytes ' + 'from http form POST') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: failed to read bytes for POST, ' + str(ex)) + print('EX: failed to read bytes for POST, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -4606,18 +4606,18 @@ class PubServer(BaseHTTPRequestHandler): post_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset while ' + + print('EX: connection was reset while ' + 'reading bytes from http form ' + 'citation screen POST') else: - print('WARN: error while reading bytes ' + + print('EX: error while reading bytes ' + 'from http form citations screen POST') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: failed to read bytes for ' + + print('EX: failed to read bytes for ' + 'citations screen POST, ' + str(ex)) self.send_response(400) self.end_headers() @@ -4706,17 +4706,17 @@ class PubServer(BaseHTTPRequestHandler): post_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset while ' + + print('EX: connection was reset while ' + 'reading bytes from http form POST') else: - print('WARN: error while reading bytes ' + + print('EX: error while reading bytes ' + 'from http form POST') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: failed to read bytes for POST, ' + str(ex)) + print('EX: failed to read bytes for POST, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -4766,8 +4766,8 @@ class PubServer(BaseHTTPRequestHandler): try: save_json(self.server.newswire, newswire_state_filename) - except Exception as ex: - print('ERROR: saving newswire state, ' + str(ex)) + except BaseException as ex: + print('EX: saving newswire state, ' + str(ex)) # remove any previous cached news posts news_id = \ @@ -4831,17 +4831,17 @@ class PubServer(BaseHTTPRequestHandler): post_bytes = self.rfile.read(length) except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: connection was reset while ' + + print('EX: connection was reset while ' + 'reading bytes from http form POST') else: - print('WARN: error while reading bytes ' + + print('EX: error while reading bytes ' + 'from http form POST') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: failed to read bytes for POST, ' + str(ex)) + print('EX: failed to read bytes for POST, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -8113,8 +8113,8 @@ class PubServer(BaseHTTPRequestHandler): base_dir + '/accounts/.newswirestate.json' try: save_json(newswire, newswire_state_filename) - except Exception as ex: - print('ERROR: saving newswire state, ' + str(ex)) + except BaseException as ex: + print('EX: saving newswire state, ' + str(ex)) if filename: save_json(newswire_item[votes_index], filename + '.votes') @@ -8168,8 +8168,8 @@ class PubServer(BaseHTTPRequestHandler): base_dir + '/accounts/.newswirestate.json' try: save_json(newswire, newswire_state_filename) - except Exception as ex: - print('ERROR: saving newswire state, ' + str(ex)) + except BaseException as ex: + print('EX: saving newswire state, ' + str(ex)) if filename: save_json(newswire_item[votes_index], filename + '.votes') @@ -12702,8 +12702,8 @@ class PubServer(BaseHTTPRequestHandler): self.server.css_cache) if css: break - except Exception as ex: - print('ERROR: _get_style_sheet ' + + except BaseException as ex: + print('EX: _get_style_sheet ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -12742,8 +12742,8 @@ class PubServer(BaseHTTPRequestHandler): with open(qr_filename, 'rb') as av_file: media_binary = av_file.read() break - except Exception as ex: - print('ERROR: _show_q_rcode ' + str(tries) + ' ' + str(ex)) + except BaseException as ex: + print('EX: _show_q_rcode ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 if media_binary: @@ -12786,8 +12786,8 @@ class PubServer(BaseHTTPRequestHandler): with open(banner_filename, 'rb') as av_file: media_binary = av_file.read() break - except Exception as ex: - print('ERROR: _search_screen_banner ' + + except BaseException as ex: + print('EX: _search_screen_banner ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -12831,8 +12831,8 @@ class PubServer(BaseHTTPRequestHandler): with open(banner_filename, 'rb') as av_file: media_binary = av_file.read() break - except Exception as ex: - print('ERROR: _column_image ' + str(tries) + ' ' + str(ex)) + except BaseException as ex: + print('EX: _column_image ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 if media_binary: @@ -12875,8 +12875,8 @@ class PubServer(BaseHTTPRequestHandler): with open(bg_filename, 'rb') as av_file: bg_binary = av_file.read() break - except Exception as ex: - print('ERROR: _show_background_image ' + + except BaseException as ex: + print('EX: _show_background_image ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -12921,8 +12921,8 @@ class PubServer(BaseHTTPRequestHandler): with open(bg_filename, 'rb') as av_file: bg_binary = av_file.read() break - except Exception as ex: - print('ERROR: _show_default_profile_background ' + + except BaseException as ex: + print('EX: _show_default_profile_background ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -14855,8 +14855,8 @@ class PubServer(BaseHTTPRequestHandler): with open(media_filename, 'rb') as av_file: media_binary = av_file.read() break - except Exception as ex: - print('ERROR: manifest logo ' + + except BaseException as ex: + print('EX: manifest logo ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -14897,8 +14897,8 @@ class PubServer(BaseHTTPRequestHandler): with open(screen_filename, 'rb') as av_file: media_binary = av_file.read() break - except Exception as ex: - print('ERROR: manifest screenshot ' + + except BaseException as ex: + print('EX: manifest screenshot ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -14939,8 +14939,8 @@ class PubServer(BaseHTTPRequestHandler): with open(icon_filename, 'rb') as av_file: media_binary = av_file.read() break - except Exception as ex: - print('ERROR: login screen image ' + + except BaseException as ex: + print('EX: login screen image ' + str(tries) + ' ' + str(ex)) time.sleep(1) tries += 1 @@ -17603,7 +17603,7 @@ class PubServer(BaseHTTPRequestHandler): print('WARN: POST post_bytes socket error') return None except ValueError as ex: - print('ERROR: POST post_bytes rfile.read failed, ' + + print('EX: POST post_bytes rfile.read failed, ' + str(ex)) return None @@ -17646,7 +17646,7 @@ class PubServer(BaseHTTPRequestHandler): print('WARN: handle POST message_bytes socket error') return {} except ValueError as ex: - print('ERROR: handle POST message_bytes rfile.read failed ' + + print('EX: handle POST message_bytes rfile.read failed ' + str(ex)) return {} @@ -17689,7 +17689,7 @@ class PubServer(BaseHTTPRequestHandler): print('WARN: POST message_bytes socket error') return {} except ValueError as ex: - print('ERROR: POST message_bytes rfile.read failed, ' + str(ex)) + print('EX: POST message_bytes rfile.read failed, ' + str(ex)) return {} len_message = len(message_bytes) @@ -18469,16 +18469,16 @@ class PubServer(BaseHTTPRequestHandler): unknown_post = self.rfile.read(length).decode('utf-8') except SocketError as ex: if ex.errno == errno.ECONNRESET: - print('WARN: POST unknown_post ' + + print('EX: POST unknown_post ' + 'connection reset by peer') else: - print('WARN: POST unknown_post socket error') + print('EX: POST unknown_post socket error') self.send_response(400) self.end_headers() self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST unknown_post rfile.read failed, ' + + print('EX: POST unknown_post rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() @@ -18525,7 +18525,7 @@ class PubServer(BaseHTTPRequestHandler): self.server.postreq_busy = False return except ValueError as ex: - print('ERROR: POST message_bytes rfile.read failed, ' + str(ex)) + print('EX: POST message_bytes rfile.read failed, ' + str(ex)) self.send_response(400) self.end_headers() self.server.postreq_busy = False @@ -18755,7 +18755,7 @@ def load_tokens(base_dir: str, tokens_dict: {}, tokens_lookup: {}) -> None: try: with open(token_filename, 'r') as fp_tok: token = fp_tok.read() - except Exception as ex: + except BaseException as ex: print('WARN: Unable to read token for ' + nickname + ' ' + str(ex)) if not token: @@ -18842,13 +18842,13 @@ def run_daemon(dyslexic_font: bool, try: httpd = EpicyonServer(server_address, pub_handler) - except Exception as ex: - if ex.errno == 98: - print('ERROR: HTTP server address is already in use. ' + + except SocketError as ex: + if ex.errno == errno.ECONNREFUSED: + print('EX: HTTP server address is already in use. ' + str(server_address)) return False - print('ERROR: HTTP server failed to start. ' + str(ex)) + print('EX: HTTP server failed to start. ' + str(ex)) print('server_address: ' + str(server_address)) return False From 387f68acc9df29bfb94a0ec690389c361d711e08 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 3 Feb 2022 10:39:52 +0000 Subject: [PATCH 3/7] Standardize exception message prefix --- desktop_client.py | 2 +- newsdaemon.py | 4 ++-- newswire.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/desktop_client.py b/desktop_client.py index e502b71dd..e6752427a 100644 --- a/desktop_client.py +++ b/desktop_client.py @@ -176,7 +176,7 @@ def _mark_post_as_read(actor: str, post_id: str, post_category: str) -> None: read_file.seek(0, 0) read_file.write(post_id + content) except Exception as ex: - print('WARN: Failed to mark post as read' + str(ex)) + print('EX: Failed to mark post as read' + str(ex)) else: with open(read_posts_filename, 'w+') as read_file: read_file.write(post_id + '\n') diff --git a/newsdaemon.py b/newsdaemon.py index 4532549c1..3cca873a5 100644 --- a/newsdaemon.py +++ b/newsdaemon.py @@ -54,8 +54,8 @@ def _update_feeds_outbox_index(base_dir: str, domain: str, feeds_file.seek(0, 0) feeds_file.write(post_id + '\n' + content) print('DEBUG: feeds post added to index') - except Exception as ex: - print('WARN: Failed to write entry to feeds posts index ' + + except BaseException as ex: + print('EX: Failed to write entry to feeds posts index ' + index_filename + ' ' + str(ex)) else: try: diff --git a/newswire.py b/newswire.py index e5d72ebe7..1bdec5807 100644 --- a/newswire.py +++ b/newswire.py @@ -1213,7 +1213,7 @@ def get_rs_sfrom_dict(base_dir: str, newswire: {}, published = published_with_offset.strftime("%Y-%m-%dT%H:%M:%SZ") try: pub_date = datetime.strptime(published, "%Y-%m-%dT%H:%M:%SZ") - except Exception as ex: + except BaseException as ex: print('WARN: Unable to convert date ' + published + ' ' + str(ex)) continue rss_str += \ From f188fd3486ef576bc18d4c3c49a43b4112d06737 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 3 Feb 2022 12:30:57 +0000 Subject: [PATCH 4/7] Fix unit test --- daemon.py | 7 +++---- static_analysis | 3 +++ tests.py | 5 ++++- utils.py | 29 ++++++----------------------- 4 files changed, 16 insertions(+), 28 deletions(-) diff --git a/daemon.py b/daemon.py index 36cff9dde..b32662a36 100644 --- a/daemon.py +++ b/daemon.py @@ -245,7 +245,6 @@ from languages import set_actor_languages from languages import get_understood_languages from like import update_likes_collection from reaction import update_reaction_collection -from utils import get_domain_from_url_in_string from utils import local_network_host from utils import undo_reaction_collection_entry from utils import get_new_post_endpoints @@ -13472,10 +13471,10 @@ class PubServer(BaseHTTPRequestHandler): referer_domain = None if self.headers.get('referer'): referer_domain = \ - get_domain_from_url_in_string(self.headers['referer']) + user_agent_domain(self.headers['referer'], self.server.debug) elif self.headers.get('Referer'): referer_domain = \ - get_domain_from_url_in_string(self.headers['Referer']) + user_agent_domain(self.headers['Referer'], self.server.debug) elif self.headers.get('Signature'): if 'keyId="' in self.headers['Signature']: referer_domain = self.headers['Signature'].split('keyId="')[1] @@ -13486,7 +13485,7 @@ class PubServer(BaseHTTPRequestHandler): elif '"' in referer_domain: referer_domain = referer_domain.split('"')[0] elif ua_str: - referer_domain = get_domain_from_url_in_string(ua_str) + referer_domain = user_agent_domain(ua_str, self.server.debug) return referer_domain def _get_user_agent(self) -> str: diff --git a/static_analysis b/static_analysis index 33e135b83..7c6ad6733 100755 --- a/static_analysis +++ b/static_analysis @@ -10,6 +10,9 @@ echo "Starting static analysis" for sourceFile in *.py do + if [[ "$sourceFile" == *"flycheck"* ]]; then + continue + fi result=$($cmd "$sourceFile") if [ "$result" ]; then echo '' diff --git a/tests.py b/tests.py index bfc89fbd5..6f5708a69 100644 --- a/tests.py +++ b/tests.py @@ -5867,7 +5867,10 @@ def _test_useragent_domain() -> None: print('test_user_agent_domain') user_agent = \ 'http.rb/4.4.1 (Mastodon/9.10.11; +https://mastodon.something/)' - assert user_agent_domain(user_agent, False) == 'mastodon.something' + agent_domain = user_agent_domain(user_agent, False) + if agent_domain != 'mastodon.something': + print(agent_domain) + assert agent_domain == 'mastodon.something' user_agent = \ 'Mozilla/70.0 (X11; Linux x86_64; rv:1.0) Gecko/20450101 Firefox/1.0' assert user_agent_domain(user_agent, False) is None diff --git a/utils.py b/utils.py index 593ea7895..14dfae636 100644 --- a/utils.py +++ b/utils.py @@ -2891,11 +2891,13 @@ def user_agent_domain(user_agent: str, debug: bool) -> str: """If the User-Agent string contains a domain then return it """ - if 'http' not in user_agent: + if 'https://' not in user_agent and 'http://' not in user_agent: return None - agent_domain = user_agent.split('http')[1].strip() - if '://' in agent_domain: - agent_domain = agent_domain.split('://')[1] + agent_domain = '' + if 'https://' in user_agent: + agent_domain = user_agent.split('https://')[1].strip() + else: + agent_domain = user_agent.split('http://')[1].strip() if '/' in agent_domain: agent_domain = agent_domain.split('/')[0] if ')' in agent_domain: @@ -3323,22 +3325,3 @@ def valid_hash_tag(hashtag: str) -> bool: if _is_valid_language(hashtag): return True return False - - -def get_domain_from_url_in_string(text: str) -> str: - """Returns the domain from within a string if it exists - """ - domain_str = '' - if 'https://' in text: - domain_str = text.split('https://')[1] - if '/' in domain_str: - domain_str = domain_str.split('/')[0] - elif ')' in domain_str: - domain_str = domain_str.split(')')[0] - elif 'http://' in text: - domain_str = text.split('http://')[1] - if '/' in domain_str: - domain_str = domain_str.split('/')[0] - elif ')' in domain_str: - domain_str = domain_str.split(')')[0] - return domain_str From e29d66ddd6f35898c84452ccde0601d0a4be5fba Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 3 Feb 2022 13:58:20 +0000 Subject: [PATCH 5/7] Version 1.3.0 --- acceptreject.py | 2 +- announce.py | 2 +- auth.py | 2 +- availability.py | 2 +- blocking.py | 2 +- blog.py | 2 +- bookmarks.py | 2 +- briar.py | 2 +- cache.py | 2 +- categories.py | 2 +- city.py | 2 +- content.py | 2 +- context.py | 2 +- conversation.py | 2 +- cwtch.py | 2 +- daemon.py | 2 +- delete.py | 2 +- desktop_client.py | 2 +- devices.py | 2 +- donate.py | 2 +- enigma.py | 2 +- epicyon.py | 2 +- feeds.py | 2 +- filters.py | 2 +- fitnessFunctions.py | 2 +- follow.py | 2 +- followingCalendar.py | 2 +- git.py | 2 +- happening.py | 2 +- httpsig.py | 2 +- inbox.py | 2 +- jami.py | 2 +- languages.py | 2 +- like.py | 2 +- linked_data_sig.py | 2 +- manualapprove.py | 2 +- markdown.py | 2 +- mastoapiv1.py | 2 +- matrix.py | 2 +- media.py | 2 +- metadata.py | 2 +- migrate.py | 2 +- newsdaemon.py | 2 +- newswire.py | 2 +- notifyOnPost.py | 2 +- outbox.py | 2 +- person.py | 2 +- petnames.py | 2 +- pgp.py | 2 +- posts.py | 2 +- question.py | 2 +- reaction.py | 2 +- roles.py | 2 +- schedule.py | 2 +- session.py | 6 +++--- shares.py | 2 +- siteactive.py | 2 +- skills.py | 2 +- socnet.py | 2 +- speaker.py | 2 +- ssb.py | 2 +- tests.py | 4 ++-- theme.py | 2 +- threads.py | 2 +- tox.py | 2 +- utils.py | 2 +- video.py | 2 +- webapp_about.py | 2 +- webapp_accesskeys.py | 2 +- webapp_calendar.py | 2 +- webapp_column_left.py | 2 +- webapp_column_right.py | 2 +- webapp_confirm.py | 2 +- webapp_create_post.py | 2 +- webapp_frontscreen.py | 2 +- webapp_hashtagswarm.py | 2 +- webapp_headerbuttons.py | 2 +- webapp_login.py | 2 +- webapp_media.py | 2 +- webapp_minimalbutton.py | 2 +- webapp_moderation.py | 2 +- webapp_person_options.py | 2 +- webapp_podcast.py | 2 +- webapp_post.py | 2 +- webapp_profile.py | 2 +- webapp_question.py | 2 +- webapp_search.py | 2 +- webapp_suspended.py | 2 +- webapp_theme_designer.py | 2 +- webapp_timeline.py | 2 +- webapp_tos.py | 2 +- webapp_utils.py | 2 +- webapp_welcome.py | 2 +- webapp_welcome_final.py | 2 +- webapp_welcome_profile.py | 2 +- webfinger.py | 2 +- xmpp.py | 2 +- 97 files changed, 100 insertions(+), 100 deletions(-) diff --git a/acceptreject.py b/acceptreject.py index a1f193b82..55dc41060 100644 --- a/acceptreject.py +++ b/acceptreject.py @@ -1,7 +1,7 @@ __filename__ = "acceptreject.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/announce.py b/announce.py index a47634f67..deae59b59 100644 --- a/announce.py +++ b/announce.py @@ -1,7 +1,7 @@ __filename__ = "announce.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/auth.py b/auth.py index a2dbfd64b..13f89c40f 100644 --- a/auth.py +++ b/auth.py @@ -1,7 +1,7 @@ __filename__ = "auth.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/availability.py b/availability.py index 273d9edc4..4c2528505 100644 --- a/availability.py +++ b/availability.py @@ -1,7 +1,7 @@ __filename__ = "availability.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/blocking.py b/blocking.py index 19ee64470..7fcde830a 100644 --- a/blocking.py +++ b/blocking.py @@ -1,7 +1,7 @@ __filename__ = "blocking.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/blog.py b/blog.py index 66961c014..f4c78f41c 100644 --- a/blog.py +++ b/blog.py @@ -1,7 +1,7 @@ __filename__ = "blog.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/bookmarks.py b/bookmarks.py index 60b28dab7..b2399c8d2 100644 --- a/bookmarks.py +++ b/bookmarks.py @@ -1,7 +1,7 @@ __filename__ = "bookmarks.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/briar.py b/briar.py index 4f7ffce1c..006f2cc9b 100644 --- a/briar.py +++ b/briar.py @@ -1,7 +1,7 @@ __filename__ = "briar.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/cache.py b/cache.py index bb9b5b50d..c0ba795ce 100644 --- a/cache.py +++ b/cache.py @@ -1,7 +1,7 @@ __filename__ = "cache.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/categories.py b/categories.py index 48d6e5392..acefee5e3 100644 --- a/categories.py +++ b/categories.py @@ -1,7 +1,7 @@ __filename__ = "categories.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/city.py b/city.py index 7fc7d7d61..4da36991a 100644 --- a/city.py +++ b/city.py @@ -1,7 +1,7 @@ __filename__ = "city.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/content.py b/content.py index fbc3101f0..80fc3211a 100644 --- a/content.py +++ b/content.py @@ -1,7 +1,7 @@ __filename__ = "content.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/context.py b/context.py index 6c18d6dc4..1eb2d2a10 100644 --- a/context.py +++ b/context.py @@ -1,7 +1,7 @@ __filename__ = "inbox.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/conversation.py b/conversation.py index 8bf7b0863..448d46e7f 100644 --- a/conversation.py +++ b/conversation.py @@ -1,7 +1,7 @@ __filename__ = "conversation.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/cwtch.py b/cwtch.py index 457d58824..9f531e6f7 100644 --- a/cwtch.py +++ b/cwtch.py @@ -1,7 +1,7 @@ __filename__ = "cwtch.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/daemon.py b/daemon.py index b32662a36..0c349b1ce 100644 --- a/daemon.py +++ b/daemon.py @@ -1,7 +1,7 @@ __filename__ = "daemon.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/delete.py b/delete.py index dce9dc6d7..6713ceec5 100644 --- a/delete.py +++ b/delete.py @@ -1,7 +1,7 @@ __filename__ = "delete.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/desktop_client.py b/desktop_client.py index e6752427a..db0d89bf0 100644 --- a/desktop_client.py +++ b/desktop_client.py @@ -1,7 +1,7 @@ __filename__ = "desktop_client.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/devices.py b/devices.py index a33e9b1cf..9766eda08 100644 --- a/devices.py +++ b/devices.py @@ -1,7 +1,7 @@ __filename__ = "devices.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/donate.py b/donate.py index eeb65ea0e..7ec71e4b6 100644 --- a/donate.py +++ b/donate.py @@ -1,7 +1,7 @@ __filename__ = "donate.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/enigma.py b/enigma.py index 8ebeb3e02..99820529d 100644 --- a/enigma.py +++ b/enigma.py @@ -1,7 +1,7 @@ __filename__ = "enigma.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/epicyon.py b/epicyon.py index 4b2e57dbd..4e5eb7128 100644 --- a/epicyon.py +++ b/epicyon.py @@ -1,7 +1,7 @@ __filename__ = "epicyon.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/feeds.py b/feeds.py index 9b2c382b6..edb40f108 100644 --- a/feeds.py +++ b/feeds.py @@ -1,7 +1,7 @@ __filename__ = "feeds.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/filters.py b/filters.py index dc0c431b8..1382f3ded 100644 --- a/filters.py +++ b/filters.py @@ -1,7 +1,7 @@ __filename__ = "filters.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/fitnessFunctions.py b/fitnessFunctions.py index 3b344d711..0845eba13 100644 --- a/fitnessFunctions.py +++ b/fitnessFunctions.py @@ -1,7 +1,7 @@ __filename__ = "fitnessFunctions.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/follow.py b/follow.py index d65636899..3c406776f 100644 --- a/follow.py +++ b/follow.py @@ -1,7 +1,7 @@ __filename__ = "follow.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/followingCalendar.py b/followingCalendar.py index 8bcbc3fb8..9c5f0340b 100644 --- a/followingCalendar.py +++ b/followingCalendar.py @@ -1,7 +1,7 @@ __filename__ = "followingCalendar.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/git.py b/git.py index 935c0a524..8c12d137c 100644 --- a/git.py +++ b/git.py @@ -1,7 +1,7 @@ __filename__ = "git.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/happening.py b/happening.py index 8a218b031..4670fc64e 100644 --- a/happening.py +++ b/happening.py @@ -1,7 +1,7 @@ __filename__ = "happening.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/httpsig.py b/httpsig.py index 0a843c48b..45aeb4268 100644 --- a/httpsig.py +++ b/httpsig.py @@ -2,7 +2,7 @@ __filename__ = "httpsig.py" __author__ = "Bob Mottram" __credits__ = ['lamia'] __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/inbox.py b/inbox.py index ba8daf129..e8afe0df4 100644 --- a/inbox.py +++ b/inbox.py @@ -1,7 +1,7 @@ __filename__ = "inbox.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/jami.py b/jami.py index 0c30c0af0..2beee1380 100644 --- a/jami.py +++ b/jami.py @@ -1,7 +1,7 @@ __filename__ = "jami.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/languages.py b/languages.py index 0506b219c..e66024d50 100644 --- a/languages.py +++ b/languages.py @@ -1,7 +1,7 @@ __filename__ = "languages.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/like.py b/like.py index 53d423b73..a878d35d5 100644 --- a/like.py +++ b/like.py @@ -1,7 +1,7 @@ __filename__ = "like.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/linked_data_sig.py b/linked_data_sig.py index 2e255f76a..8da07dc97 100644 --- a/linked_data_sig.py +++ b/linked_data_sig.py @@ -3,7 +3,7 @@ __author__ = "Bob Mottram" __credits__ = ['Based on ' + 'https://github.com/tsileo/little-boxes'] __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/manualapprove.py b/manualapprove.py index 5748bfd87..6e0cd9ca8 100644 --- a/manualapprove.py +++ b/manualapprove.py @@ -1,7 +1,7 @@ __filename__ = "manualapprove.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/markdown.py b/markdown.py index 252ec0b88..6434962bd 100644 --- a/markdown.py +++ b/markdown.py @@ -1,7 +1,7 @@ __filename__ = "markdown.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/mastoapiv1.py b/mastoapiv1.py index 654ab4a12..e8735e53e 100644 --- a/mastoapiv1.py +++ b/mastoapiv1.py @@ -1,7 +1,7 @@ __filename__ = "mastoapiv1.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/matrix.py b/matrix.py index 67b7797d0..1fcd7b801 100644 --- a/matrix.py +++ b/matrix.py @@ -1,7 +1,7 @@ __filename__ = "matrix.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/media.py b/media.py index b8abe3401..ab09ac62f 100644 --- a/media.py +++ b/media.py @@ -1,7 +1,7 @@ __filename__ = "media.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/metadata.py b/metadata.py index 0b275fa77..a115732a7 100644 --- a/metadata.py +++ b/metadata.py @@ -1,7 +1,7 @@ __filename__ = "metadata.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/migrate.py b/migrate.py index 151c077aa..c2cf396ef 100644 --- a/migrate.py +++ b/migrate.py @@ -1,7 +1,7 @@ __filename__ = "migrate.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/newsdaemon.py b/newsdaemon.py index 3cca873a5..e47725b7e 100644 --- a/newsdaemon.py +++ b/newsdaemon.py @@ -1,7 +1,7 @@ __filename__ = "newsdaemon.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/newswire.py b/newswire.py index 1bdec5807..3e04b4c45 100644 --- a/newswire.py +++ b/newswire.py @@ -1,7 +1,7 @@ __filename__ = "newswire.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/notifyOnPost.py b/notifyOnPost.py index ccba84df8..e82c68592 100644 --- a/notifyOnPost.py +++ b/notifyOnPost.py @@ -1,7 +1,7 @@ __filename__ = "notifyOnPost.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/outbox.py b/outbox.py index 1a8945ba8..95932ebaf 100644 --- a/outbox.py +++ b/outbox.py @@ -1,7 +1,7 @@ __filename__ = "outbox.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/person.py b/person.py index da54a191f..bf3b54ea3 100644 --- a/person.py +++ b/person.py @@ -1,7 +1,7 @@ __filename__ = "person.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/petnames.py b/petnames.py index bf3b66d92..39be1bd41 100644 --- a/petnames.py +++ b/petnames.py @@ -1,7 +1,7 @@ __filename__ = "petnames.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/pgp.py b/pgp.py index 6119db20e..2fb04b7ce 100644 --- a/pgp.py +++ b/pgp.py @@ -1,7 +1,7 @@ __filename__ = "pgp.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/posts.py b/posts.py index 05646fd31..96b827a2c 100644 --- a/posts.py +++ b/posts.py @@ -1,7 +1,7 @@ __filename__ = "posts.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/question.py b/question.py index 3b0674759..9514300a1 100644 --- a/question.py +++ b/question.py @@ -1,7 +1,7 @@ __filename__ = "question.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/reaction.py b/reaction.py index 5a6d84308..33c5a0a43 100644 --- a/reaction.py +++ b/reaction.py @@ -1,7 +1,7 @@ __filename__ = "reaction.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/roles.py b/roles.py index f638d15db..293990889 100644 --- a/roles.py +++ b/roles.py @@ -1,7 +1,7 @@ __filename__ = "roles.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/schedule.py b/schedule.py index ff5c276fb..b6fae6a4c 100644 --- a/schedule.py +++ b/schedule.py @@ -1,7 +1,7 @@ __filename__ = "schedule.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/session.py b/session.py index 1305068b4..2ced4f96f 100644 --- a/session.py +++ b/session.py @@ -1,7 +1,7 @@ __filename__ = "session.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" @@ -210,7 +210,7 @@ def _get_json_signed(session, url: str, domain_full: str, session_headers: {}, def get_json(signing_priv_key_pem: str, session, url: str, headers: {}, params: {}, debug: bool, - version: str = '1.2.0', http_prefix: str = 'https', + version: str = '1.3.0', http_prefix: str = 'https', domain: str = 'testdomain', timeout_sec: int = 20, quiet: bool = False) -> {}: if not isinstance(url, str): @@ -248,7 +248,7 @@ def get_json(signing_priv_key_pem: str, def download_html(signing_priv_key_pem: str, session, url: str, headers: {}, params: {}, debug: bool, - version: str = '1.2.0', http_prefix: str = 'https', + version: str = '1.3.0', http_prefix: str = 'https', domain: str = 'testdomain', timeout_sec: int = 20, quiet: bool = False) -> {}: if not isinstance(url, str): diff --git a/shares.py b/shares.py index ddbe0fc70..2393712e4 100644 --- a/shares.py +++ b/shares.py @@ -1,7 +1,7 @@ __filename__ = "shares.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/siteactive.py b/siteactive.py index 91403d041..ebc4ab444 100644 --- a/siteactive.py +++ b/siteactive.py @@ -2,7 +2,7 @@ __filename__ = "siteactive.py" __author__ = "Bob Mottram" __credits__ = ["webchk"] __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/skills.py b/skills.py index 422b66586..b1ac666b1 100644 --- a/skills.py +++ b/skills.py @@ -1,7 +1,7 @@ __filename__ = "skills.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/socnet.py b/socnet.py index 954731993..3b2ed3b7a 100644 --- a/socnet.py +++ b/socnet.py @@ -1,7 +1,7 @@ __filename__ = "socnet.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/speaker.py b/speaker.py index 984f30a62..6a6b85260 100644 --- a/speaker.py +++ b/speaker.py @@ -1,7 +1,7 @@ __filename__ = "speaker.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/ssb.py b/ssb.py index 24588a047..be7bec425 100644 --- a/ssb.py +++ b/ssb.py @@ -1,7 +1,7 @@ __filename__ = "ssb.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/tests.py b/tests.py index 6f5708a69..a3561b77a 100644 --- a/tests.py +++ b/tests.py @@ -1,7 +1,7 @@ __filename__ = "tests.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" @@ -283,7 +283,7 @@ def _test_http_signed_get(base_dir: str): accept = 'application/json' # accept = 'application/activity+json' headers = { - 'user-agent': 'Epicyon/1.2.0; +https://' + domain + '/', + 'user-agent': 'Epicyon/1.3.0; +https://' + domain + '/', 'host': headers_domain, 'date': date_str, 'accept': accept, diff --git a/theme.py b/theme.py index a7a868a03..a80a12e0b 100644 --- a/theme.py +++ b/theme.py @@ -1,7 +1,7 @@ __filename__ = "theme.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/threads.py b/threads.py index eb702e168..0aca29b25 100644 --- a/threads.py +++ b/threads.py @@ -1,7 +1,7 @@ __filename__ = "threads.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/tox.py b/tox.py index 92a47ab8d..c1e940043 100644 --- a/tox.py +++ b/tox.py @@ -1,7 +1,7 @@ __filename__ = "tox.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/utils.py b/utils.py index 14dfae636..8b7eca7ca 100644 --- a/utils.py +++ b/utils.py @@ -1,7 +1,7 @@ __filename__ = "utils.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/video.py b/video.py index eb16daaec..1fa03a72e 100644 --- a/video.py +++ b/video.py @@ -1,7 +1,7 @@ __filename__ = "video.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_about.py b/webapp_about.py index e410a33eb..6ef697750 100644 --- a/webapp_about.py +++ b/webapp_about.py @@ -1,7 +1,7 @@ __filename__ = "webapp_about.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_accesskeys.py b/webapp_accesskeys.py index 3f8b2f7bc..3d206f378 100644 --- a/webapp_accesskeys.py +++ b/webapp_accesskeys.py @@ -1,7 +1,7 @@ __filename__ = "webapp_accesskeys.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_calendar.py b/webapp_calendar.py index 0433143d6..131e71493 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -1,7 +1,7 @@ __filename__ = "webapp_calendar.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_column_left.py b/webapp_column_left.py index 61c26d5cc..790be4c72 100644 --- a/webapp_column_left.py +++ b/webapp_column_left.py @@ -1,7 +1,7 @@ __filename__ = "webapp_column_left.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_column_right.py b/webapp_column_right.py index 9548eaaa8..51527614c 100644 --- a/webapp_column_right.py +++ b/webapp_column_right.py @@ -1,7 +1,7 @@ __filename__ = "webapp_column_right.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_confirm.py b/webapp_confirm.py index 80a47f11b..6eb79d6ac 100644 --- a/webapp_confirm.py +++ b/webapp_confirm.py @@ -1,7 +1,7 @@ __filename__ = "webapp_confirm.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_create_post.py b/webapp_create_post.py index 70810d117..b96ff2cda 100644 --- a/webapp_create_post.py +++ b/webapp_create_post.py @@ -1,7 +1,7 @@ __filename__ = "webapp_create_post.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_frontscreen.py b/webapp_frontscreen.py index 190b883cb..d410b9bed 100644 --- a/webapp_frontscreen.py +++ b/webapp_frontscreen.py @@ -1,7 +1,7 @@ __filename__ = "webapp_frontscreen.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_hashtagswarm.py b/webapp_hashtagswarm.py index ef90d0bf7..1cec4180d 100644 --- a/webapp_hashtagswarm.py +++ b/webapp_hashtagswarm.py @@ -1,7 +1,7 @@ __filename__ = "webapp_hashtagswarm.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_headerbuttons.py b/webapp_headerbuttons.py index 50df5d836..519de7438 100644 --- a/webapp_headerbuttons.py +++ b/webapp_headerbuttons.py @@ -1,7 +1,7 @@ __filename__ = "webapp_headerbuttons.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_login.py b/webapp_login.py index 9ea1fd172..ddf4308cd 100644 --- a/webapp_login.py +++ b/webapp_login.py @@ -1,7 +1,7 @@ __filename__ = "webapp_login.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_media.py b/webapp_media.py index 6cb1dde8b..89912335b 100644 --- a/webapp_media.py +++ b/webapp_media.py @@ -1,7 +1,7 @@ __filename__ = "webapp_media.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_minimalbutton.py b/webapp_minimalbutton.py index bc8516df2..740eb8797 100644 --- a/webapp_minimalbutton.py +++ b/webapp_minimalbutton.py @@ -1,7 +1,7 @@ __filename__ = "webapp_minimalbutton.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_moderation.py b/webapp_moderation.py index 38ae5a00e..32096c960 100644 --- a/webapp_moderation.py +++ b/webapp_moderation.py @@ -1,7 +1,7 @@ __filename__ = "webapp_moderation.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_person_options.py b/webapp_person_options.py index 760f583ac..90867b033 100644 --- a/webapp_person_options.py +++ b/webapp_person_options.py @@ -1,7 +1,7 @@ __filename__ = "webapp_person_options.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_podcast.py b/webapp_podcast.py index 18bef82e7..bf80112d6 100644 --- a/webapp_podcast.py +++ b/webapp_podcast.py @@ -1,7 +1,7 @@ __filename__ = "webapp_podcast.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_post.py b/webapp_post.py index d31148636..01b1c1675 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -1,7 +1,7 @@ __filename__ = "webapp_post.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_profile.py b/webapp_profile.py index 322b5046e..709000cf2 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -1,7 +1,7 @@ __filename__ = "webapp_profile.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_question.py b/webapp_question.py index 4afec7e23..fe2881d4f 100644 --- a/webapp_question.py +++ b/webapp_question.py @@ -1,7 +1,7 @@ __filename__ = "webapp_question.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_search.py b/webapp_search.py index 32b3ec17d..4f8092e03 100644 --- a/webapp_search.py +++ b/webapp_search.py @@ -1,7 +1,7 @@ __filename__ = "webapp_search.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_suspended.py b/webapp_suspended.py index 181105ac3..8127bfb7c 100644 --- a/webapp_suspended.py +++ b/webapp_suspended.py @@ -1,7 +1,7 @@ __filename__ = "webapp_suspended.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_theme_designer.py b/webapp_theme_designer.py index ace4e35a4..1a76843f2 100644 --- a/webapp_theme_designer.py +++ b/webapp_theme_designer.py @@ -1,7 +1,7 @@ __filename__ = "webapp_theme_designer.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_timeline.py b/webapp_timeline.py index ac5e70785..98c3f0bdd 100644 --- a/webapp_timeline.py +++ b/webapp_timeline.py @@ -1,7 +1,7 @@ __filename__ = "webapp_timeline.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_tos.py b/webapp_tos.py index 6e956d437..cc91aa6aa 100644 --- a/webapp_tos.py +++ b/webapp_tos.py @@ -1,7 +1,7 @@ __filename__ = "webapp_tos.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_utils.py b/webapp_utils.py index 2b16cf429..9b884f735 100644 --- a/webapp_utils.py +++ b/webapp_utils.py @@ -1,7 +1,7 @@ __filename__ = "webapp_utils.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_welcome.py b/webapp_welcome.py index 4bb319d9a..e746548db 100644 --- a/webapp_welcome.py +++ b/webapp_welcome.py @@ -1,7 +1,7 @@ __filename__ = "webapp_welcome.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_welcome_final.py b/webapp_welcome_final.py index 5c084f984..0257c2c4f 100644 --- a/webapp_welcome_final.py +++ b/webapp_welcome_final.py @@ -1,7 +1,7 @@ __filename__ = "webapp_welcome_final.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webapp_welcome_profile.py b/webapp_welcome_profile.py index 81fc21d22..fc9cc5a79 100644 --- a/webapp_welcome_profile.py +++ b/webapp_welcome_profile.py @@ -1,7 +1,7 @@ __filename__ = "webapp_welcome_profile.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/webfinger.py b/webfinger.py index c21762d6b..ab0e5e819 100644 --- a/webfinger.py +++ b/webfinger.py @@ -1,7 +1,7 @@ __filename__ = "webfinger.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" diff --git a/xmpp.py b/xmpp.py index 419b8a287..17c672ff1 100644 --- a/xmpp.py +++ b/xmpp.py @@ -1,7 +1,7 @@ __filename__ = "xmpp.py" __author__ = "Bob Mottram" __license__ = "AGPL3+" -__version__ = "1.2.0" +__version__ = "1.3.0" __maintainer__ = "Bob Mottram" __email__ = "bob@libreserver.org" __status__ = "Production" From d74c0ddeca9ebf07ae29e43c97899ecf280242f6 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Thu, 3 Feb 2022 14:11:07 +0000 Subject: [PATCH 6/7] Additional web categories --- website/EN/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/EN/index.html b/website/EN/index.html index 404035caa..6013611d7 100644 --- a/website/EN/index.html +++ b/website/EN/index.html @@ -14,12 +14,12 @@ "email": "bob@libreserver.org", "url": "https://epicyon.libreserver.org/users/bob" }, - "applicationCategory" : ["server", "software", "bash", "debian", "linux", "self-hosting"], + "applicationCategory" : ["server", "software", "bash", "debian", "linux", "self-hosting", "raspberry-pi"], "downloadUrl" : "https://libreserver.org/epicyon/epicyon.tar.gz" } - + + + Epicyon ActivityPub server release version 1.3.0 + + +
+
+
+ + +

3rd Feb 2022

+
+

Over the last year Epicyon has seen some major improvements, such as keyboard navigation, much faster cryptography and federated shared items. So it has been an unusually busy year for the project and I expect that future development is going to become less hectic and more incremental.

+

Like a Norfolk Terrier, the fediverse continues to be a lively and more friendly companion than the smog monster which the big commercial social networks have turned into. Even if it doesn't take over the world or isn't to everyone's taste, being able to run your own small social network sites the way you want to and on low cost hardware is a victory.

+

Epicyon is not intended to compete with Mastodon, and there are no public Epicyon instances to try. This is expected to be a self-hosted system for instances with ten user accounts or less. Don't scale up, scale out horizontally, like the rhizome.

+

Some of the changes since the previous version are: +

    +
  • Switched from pycryptodome to python3-cryptography, with 20X speed increase
  • +
  • Bug fixes to RSS feed parsing in the newswire
  • +
  • Improved support for podcasts, including the podcast namespace
  • +
  • Dyslexic font option
  • +
  • Instance metadata improvements
  • +
  • Exceeded 10K commits (if that means anything)
  • +
  • Configurable keyboard navigation
  • +
  • Emoji reactions 😄
  • +
  • Support for tiny screen size on very small phones
  • +
  • Improved support for groups
  • +
  • Federation of shared items
  • +
  • Shared items ontology, based on the Data Food Consortium
  • +
  • Accommodation as a shared item category
  • +
  • Mute button mutes the whole conversation
  • +
  • Reply screen shows the post being replied to
  • +
  • Onboarding screens
  • +
  • Code architecture graphs
  • +
  • Occupation field within profile
  • +
  • DM bounce messages
  • +
  • Broch mode dogpiling defense
  • +
  • Support for authenticated fetch
  • +
+

+

Epicyon can be downloaded as a gzipped file, or you can get the latest version from the git repo. For installation instructions see the main page. To upgrade an existing instance, make sure that you have the python3-cryptography package installed then do a git pull, chown and restart the daemon. Upgrades to web systems do not need to be a huge drama.

+ + +