cc-4105: added event packing to event objects

This commit is contained in:
Rudi Grinberg 2012-07-27 10:27:30 -04:00
parent be00cc6990
commit 3422eb3cc0
5 changed files with 26 additions and 4 deletions

View file

@ -35,7 +35,24 @@ class BaseEvent(object):
class OrganizeFile(BaseEvent, HasMetaData):
def __init__(self, *args, **kwargs): super(OrganizeFile, self).__init__(*args, **kwargs)
def pack(self):
raise AttributeError("What the hell are you doing? You can't send organize events to airtime!!!")
class NewFile(BaseEvent, HasMetaData):
def __init__(self, *args, **kwargs): super(NewFile, self).__init__(*args, **kwargs)
def pack(self):
"""
packs turns an event into a media monitor request
"""
req_dict = self.metadata.extract()
req_dict['mode'] = 'create'
req_dict['MDATA_KEY_FILEPATH'] = self.path
return req_dict
class DeleteFile(BaseEvent):
def __init__(self, *args, **kwargs): super(DeleteFile, self).__init__(*args, **kwargs)
def pack(self):
req_dict = {}
req_dict['mode'] = 'delete'
req_dict['MDATA_KEY_FILEPATH'] = self.path
return req_dict

View file

@ -92,6 +92,7 @@ def truncate_to_length(item, length):
else: return item
class Metadata(Loggable):
@staticmethod
def write_unsafe(path,md):
if not os.path.exists(path):

View file

@ -28,7 +28,7 @@ class RequestSync(threading.Thread,Loggable):
# Not forget to attach the 'is_record' to any requests that are related
# to recorded shows
# A simplistic request would like:
self.apiclient.send_media_monitor_requests(self.requests)
self.apiclient.send_media_monitor_requests([ req.pack() for req in self.requests ])
self.watcher.flag_done()
class TimeoutWatcher(threading.Thread,Loggable):