MediaProvider v0.1.03 released

NotTheEvilOne NotTheEvilOne at
Sun May 15 16:32:48 EDT 2016

MediaProvider *v0.1.03* has been released. This is a *alpha release* intended 
for testing and development purposes.



Database schema files have changed. Please run the DbTool.


* Added support to reload plugins


* Added support for multiple root containers of the same type


* Revised "mp" theme
* Schedule container resource scan only once
* Added support for sorting UPnP search results
* Added support for auto (self) maintained resources in 
* Added GENA events to "X_MS_MediaReceiverRegistrar"
* Added support for thumbnails
* Added optional server-side resized UPnP image resources
* Added support for depreciated "QueryStateVariable"
* Added support for UPnP searches
* Added support for programmable hook based UPnP resources
* Added support for DLNA based detection of the MediaProvider API endpoint
* Upgraded protocols to "DLNA-1.51" and "MediaServer:4"

New module pas.file_store


* Added support for thumbnails
* Added support for device icons
* Added support for depreciated "QueryStateVariable"
* Added support for UPnP searches
* Added SSDP search implementation as a separate class
* Increased supported UPnP version to 2.0
* Added support for "upnp:propchange" GENA notifications
* Added implementation for the UpdateID registry
* Set bootId and configId based on the current time to emphasize that no 
previous cached data are valid after each server startup
* Separated event propagation from the UPnP control point instance


* Added streamer to support transparent decoding of base64
* Added streamer to support transparent decoding of quoted-printable
* Added file-like streamer that accepts a file-like instance


* Added support to list database tasks


* Added a list of latest documents of sub-categories


* Added service to view a list of sub entries of DataLinker one
* Check for "read" permission before returning table rows


* Check for "html_theme" support for the response before accessing the OSet 
* Added callback support before using an OSet for rendering
* Added support for sorting by table column

New module pas.http.dom_editor


* Revised "simple" theme
* Added support for date & month input fields
* Added support for wizard-like form actions
* Added support for "multipart/form-data" including file uploads
* Separated abstract class from the implementation instance used to get the 
configured server instance.
* Added support for JSON based API endpoints
* Fixed handling of services in sub-directories
* Fixed possible use of wrong value in 
* Correctly handle script names if applicable
* Added configurable host definition header to identify the server behind a 
* Do not deny streaming if no valid "Content-Type" was identified
* Added possibility to read the URL scheme from a proxy server header
* Added possibility to intercept HTTP request executions


* Added support to check if the user type is lower/higher (or equal) than a 
given value
* Added support for ACL entry instances and to set permissions for them.
* Moved "AclEntry" and "Permission" SQLalchemy classes from the 
"pas_database_ownable" module.


* Added random retry delays for rescheduled LRT tasks
* Failed database tasks will save the exception if no "error"


* Separated abstract class from the implementation instance used to get the 
configured session class or load an instance.


* Added support to copy "inherited" permissions
* Fixed attributes used to set category permissions


* Fixed identification of structure elements listed before their parent(s) 
* Fixed wrong call of parent method in "DataLinker"
* Ensure that database instances are attached to the current SQLAlchemy 
session before accessing properties


* Added support to copy "inherited" permissions and to add ACL entries.
* Moved "AclEntry" and "Permission" SQLalchemy classes to the 
"pas_user_profile" module. Module requirements have changed.


Added support for SQLAlchemy >= 1.0

* "get_key()" returned the "id" instead of the "key" attribute
* Check for completely populated attributes of newly created instances in 
* Fixed recursive call issue in "__getattr__()"
* Fixed release of non-acquired lock in "_enter_context_cleanup()"
* Use SQLalchemy instance validation for non-polymorphic classes as well
* Added helper method to enforce an database instance object to be derived 
from a given expected class
* Ensure automatically that a local reference to the SQLAlchemy instance is 
available in the database instance context
* Replaced depreciated and in SQLAlchemy 1.0 removed event used for 
autoloading missing classes by a custom polymorphic map implementation
* Added context specific sort definitions for instances
* Added negative match methods in "ConditionDefinition"
* Implemented case-(in)sensitive match conditions
* Database connection has always been set to be serialized
* Fixed an threading issue in "dNG.pas.database.Instance" related to 
serialized database connections and SQLAlchemy


* Fixed handling of EXIF data without orientation information
* Do not compare the PIL Image class with None as this triggers an exception


* Added support to create thumbnails of videos
* Resolved "Exception: unorderable types: Fraction() > int()"


* Replaced JSON-RPC based communication protocol with a D-Bus based protocol
* Added support to reload plugins


* Added support to localize year-only and month-year representations

New module pas.dbus


* Call "close()" of streamer instance if provided.
* Added response specific runtime settings support


* Enhanced "reload_plugins()" to reload the module as well
* Added weakly referenced method support for hook callbacks


* Added abstract VFS implementation for VFS objects
* Splitted file-backed and runtime configured settings
* Fixed in-place operation at the mime type initialization

*About the project*

MediaProvider is an Open Source project to provide media in your network. It 
should be irrelevant on which device they should be played back or where the 
data is stored.

Test results can be published on the user community [1]. More detailed 
information how to get all relevant details are available in the user guide on 
the web site. The source code for all modules being used are on github [2]. 
Please visit our development web site [3] for more information.


As the first step a MediaServer compliant to the UPnP standard is available for 
duty. It should be accessible by any DLNA compatible device. But this Python-
based software should not only be a UPnP / DLNA server. A HTML5 interface 
intended for SmartTVs and mobile devices should bring a MediaCenter interface 
where it belongs to: To the TV screen.

Best regards
Tobias "NotTheEvilOne" Wolf


More information about the Python-announce-list mailing list