Messages can be quite big and verbose, and they can anyway be subscribed
over Websockets.
Full dumps are anyway enabled when Platypush is started in verbose mode.
This commit replaces the dumps on INFO level with a quick summary
containing the message ID, request/event type and response time.
If some procedures are removed either from the configuration or from the
loaded scripts, then their associated entities should also be removed
from the database when the `procedures` plugin is loaded.
- Added support for file/directory add/copy/move/rename/remove
operations.
- Added automatic detection of MIME types.
- Added support for file view/download.
- Added file uploader component.
- Added custom sorting and other visualization options.
- Added custom `Home` component to show configurable bookmarks above the
filesystem root level.
- Added file editor with automatic syntax highlight.
- Added `uppercase` property (default: true) for the modal title. This
makes it possible to override the default case of the modal title.
- Added support for custom buttons in the modal titlebar.
This is needed in several places in the code where we need to compare if
two strings differ, but either the strings are too long (e.g. content of
large files) or we don't want to pass the original values (e.g.
credentials, session tokens etc.).
- Added `style` property to pass static style rules to the dropdown
body.
- Better positioning of the dropdown when the resulting body is too long
and may overflow the top of the screen - in that case, the dropdown
position needs to be maximized at zero.
- The MIME magic functions apparently aren't thread safe, and they may
crash the interpreter if called concurrently. Lock calls to
`file.get_mime_types`.
- Added an LRU cache for the MIME type results.
`_on_stop_event` may be set by the callback, but then cleared again when
`_reset_state` is called.
This can result in the `_on_stop_event.wait` call in `quit` to time out.
Instead, `_on_stop_event` should be cleared only when the player goes
into `playing` or `paused` mode. It's only then that we know for sure
that the state isn't `stopped`, and only in that case it makes sense to
wait for a stop.
- Support for _Play_ / _Play (With Cache)_ options for YouTube videos.
- Added `media.chromecast` and `media.gstreamer` UI panels.
- Removed `media.omxplayer` - the plugin has been removed.
- Enriched and improved the media info component.
- Propagate the media loading state to all children components.
- Persist query/search state on the URL.
Closes: #422