diff --git a/mediaserver.py b/mediaserver.py index 80b27f9..79d50d7 100644 --- a/mediaserver.py +++ b/mediaserver.py @@ -13,6 +13,10 @@ import common +CREATE_OBJ = re.compile(r'.*(.*)', re.DOTALL) +CREATE_OBJ_DETAILS = re.compile(r'<dc:title>(.*)</dc:title>.*protocolInfo="\*:\*:(.*):DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_CI=0"') + +X_BACKUP = re.compile(r'') X_BACKUP_RESPONSE = ''' @@ -68,9 +72,27 @@ def render_GET(self, request): if request.path == '/DMS/SamsungDmsDesc.xml': - return self.GetDMSDescription() + return self.GetDMSDescriptionResponse() - def GetDMSDescription(self): + def render_POST(self, request): + if request.path == '/upnp/control/ContentDirectory1': + return self.GetContentDirectoryResponse(request.content.read()) + + def GetContentDirectoryResponse(self, content): + if X_BACKUP.search(content): + action = X_BACKUP.search(content).group(1) + response = X_BACKUP_RESPONSE % action + print "Response:" + print response + if CREATE_OBJECT.search(content): + obj_didl = CREATE_OBJ.search(content).group(1) + obj_details = CREATE_OBJ_DETAILS.search(obj_didl).groups() + obj_name = obj_details[0] + obj_type = obj_details[1] + + return response + + def GetDMSDescriptionResponse(self): response = DMS_DESC % {'friendly_name': self.config.get('AUTOBACKUP', 'server_name'), 'uuid': self.config.get('AUTOBACKUP', 'uuid')} @@ -80,6 +102,7 @@ return response + def StartMediaServer(): resource = MediaServer() factory = Site(resource)