The method doesn't use its bound instance. Decorate this method with `@staticmethod` decorator, so that Python does not have to instantiate a bound method for every instance of this class thereby saving memory and computation. Read more about staticmethods [here](https://docs.python.org/3/library/functions.html#staticmethod).
- Updated several instance methods in ReticulumMeshChat to static methods for improved clarity and usability.
- Adjusted method calls to reflect the new static context, enhancing code organization.
- Updated exception handling across multiple files to specify Exception type, enhancing clarity and maintainability.
- Renamed several route handler functions in meshchat.py for better readability and consistency.
- Added noqa comments to suppress linting warnings for specific lines in database.py and other files.
- Incremented database version to 6 and added 'is_spam' column to LxmfMessage model.
- Introduced BlockedDestination and SpamKeyword models for managing blocked destinations and spam keywords.
- Added API endpoints for managing blocked destinations and spam keywords, including create, read, and delete operations.
- Enhanced message handling to mark messages as spam based on keywords and block messages from blocked sources.
- Implemented tracking for active downloads with unique IDs.
- Added functionality to cancel ongoing downloads from the client side.
- Updated UI to include cancel buttons for file and page downloads.
- Enhanced download success, failure, and progress handling to include download IDs for better tracking.
- Integrated psutil for memory and network statistics.
- Enhanced app info API to include memory usage, network stats, and download statistics.
- Implemented download speed tracking for files in NomadNetworkPage.
- Added utility functions for formatting numbers and bytes per second.
- Updated frontend components to display new statistics in real-time.