changes up to parent... [git-p4: depot-paths = "//depot/": change = 768]replace/4e84fdb41ea781c7a8f872baa423e8b3be4045a7
@@ -69,19 +69,12 @@ class ContentDirectoryControl(UPnPPublisher, dict): | |||||
fakeparent = '-1' | fakeparent = '-1' | ||||
self.nextID = 0 | self.nextID = 0 | ||||
self.children = { fakeparent: []} | self.children = { fakeparent: []} | ||||
self.needupdate = False | |||||
self.updateId = 0 | |||||
self[fakeparent] = Container(None, None, '-1', 'fake') | self[fakeparent] = Container(None, None, '-1', 'fake') | ||||
root = self.addContainer(fakeparent, title) | root = self.addContainer(fakeparent, title) | ||||
assert root == '0' | assert root == '0' | ||||
del self[fakeparent] | del self[fakeparent] | ||||
del self.children[fakeparent] | del self.children[fakeparent] | ||||
def doupdate(self): | |||||
if self.needupdate: | |||||
self.needupdate += 1 | |||||
self.needupdate = False | |||||
# Required actions | # Required actions | ||||
def soap_GetSearchCapabilities(self, *args, **kwargs): | def soap_GetSearchCapabilities(self, *args, **kwargs): | ||||
@@ -101,8 +94,7 @@ class ContentDirectoryControl(UPnPPublisher, dict): | |||||
"""Required: Return the current value of state variable SystemUpdateID.""" | """Required: Return the current value of state variable SystemUpdateID.""" | ||||
log.msg('GetSystemUpdateID()') | log.msg('GetSystemUpdateID()') | ||||
self.needupdate = True | |||||
return { 'SystemUpdateIdResponse': { 'Id': self.updateId }} | |||||
return { 'SystemUpdateIdResponse': { 'Id': self['0'].updateID }} | |||||
BrowseFlags = ('BrowseMetaData', 'BrowseDirectChildren') | BrowseFlags = ('BrowseMetaData', 'BrowseDirectChildren') | ||||
@@ -140,7 +132,7 @@ class ContentDirectoryControl(UPnPPublisher, dict): | |||||
result = {'BrowseResponse': {'Result': didl.toString() , | result = {'BrowseResponse': {'Result': didl.toString() , | ||||
'NumberReturned': didl.numItems(), | 'NumberReturned': didl.numItems(), | ||||
'TotalMatches': didl.numItems(), | 'TotalMatches': didl.numItems(), | ||||
'UpdateID': 0}} | |||||
'UpdateID': self[ObjectID].updateID }} | |||||
except: | except: | ||||
traceback.print_exc(file=log.logfile) | traceback.print_exc(file=log.logfile) | ||||
@@ -86,6 +86,10 @@ class Item(Object): | |||||
elementName = 'item' | elementName = 'item' | ||||
refID = None | refID = None | ||||
def doUpdate(self): | |||||
# Update parent container | |||||
self.cd[self.parentID].doUpdate() | |||||
def toElement(self): | def toElement(self): | ||||
root = Object.toElement(self) | root = Object.toElement(self) | ||||
@@ -217,11 +221,15 @@ class Container(Object, list): | |||||
createClass = None | createClass = None | ||||
searchClass = None | searchClass = None | ||||
searchable = None | searchable = None | ||||
updateID = 0 | |||||
def __init__(self, cd, id, parentID, title, restricted = 0, creator = None): | def __init__(self, cd, id, parentID, title, restricted = 0, creator = None): | ||||
Object.__init__(self, cd, id, parentID, title, restricted, creator) | Object.__init__(self, cd, id, parentID, title, restricted, creator) | ||||
list.__init__(self) | list.__init__(self) | ||||
def doUpdate(self): | |||||
self.updateID = (self.updateID + 1) % (1l << 32) | |||||
def toElement(self): | def toElement(self): | ||||
root = Object.toElement(self) | root = Object.toElement(self) | ||||
@@ -62,6 +62,7 @@ class FSItem(FSObject, Item): | |||||
def doUpdate(self): | def doUpdate(self): | ||||
self.res = Resource(self.url, 'http-get:*:%s:*' % self.mimetype) | self.res = Resource(self.url, 'http-get:*:%s:*' % self.mimetype) | ||||
self.res.size = os.path.getsize(self.FSpath) | self.res.size = os.path.getsize(self.FSpath) | ||||
Item.doUpdate(self) | |||||
class FSVideoItem(FSItem, VideoItem): | class FSVideoItem(FSItem, VideoItem): | ||||
pass | pass | ||||
@@ -151,3 +152,5 @@ class FSDirectory(FSObject, StorageFolder): | |||||
log.msg('doUpdate: %s, sorting: %s' % (self.title, list.__str__(self))) | log.msg('doUpdate: %s, sorting: %s' % (self.title, list.__str__(self))) | ||||
self.sort(lambda x, y: cmp(x.title, y.title)) | self.sort(lambda x, y: cmp(x.title, y.title)) | ||||
log.msg('sorted') | log.msg('sorted') | ||||
StorageFolder.doUpdate(self) |