Changeset 40

Show
Ignore:
Timestamp:
09/23/07 11:30:00 (1 year ago)
Author:
devja..@anarkystic.com
Message:

rar

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • photobooth/photobooth.py

    r39 r40  
    2222 
    2323 
    24 from fizzjik.config import ConfigurableService 
     24from fizzjik.config import ConfigurableService, if_config 
    2525from fizzjik.interfaces import IController, implements 
    2626from fizzjik.rfid import TagAddedEvent, TagPresentEvent, TagRemovedEvent 
     27from fizzjik.remote import anymeta 
    2728 
    2829class PhotoboothController(ConfigurableService): 
     
    3132    delay = 5.0 
    3233 
    33     def __init__(self): 
     34    def __init__(self, remote): 
    3435        self.bucket = [] 
    35         self.bucket = [{"id": "1417", "name": "Andy Smit"}] 
     36        self.remote = remote 
     37        #self.bucket = [{"id": "1417", "name": "Andy Smit"}] 
     38 
     39    @if_config('enabled') 
     40    def startService(self): 
     41        ConfigurableService.startService(self) 
     42        self.test() 
     43 
     44    def test(self): 
     45        e = TagAddedEvent('046792D9') 
     46        self.addToBucket(e) 
     47        import pprint 
     48        d = self.getCurrentTags() 
     49        d.addCallback(lambda x: pprint.pprint(x) and x or x) 
    3650 
    3751    def registerObservers(self, hub): 
     
    4357            self.startCountdown() 
    4458        self.bucket.append(evt.data) 
     59        self.makeContacts() 
    4560 
    46     def startCoundown(self): 
     61    def startCountdown(self): 
    4762        print "counting down" 
    4863        if self.countdown and not self.countdown.called: 
     
    5469        self.bucket = [{"id": "1417", "name": "Andy Smit"}] 
    5570 
    56     def getCurrentTags(self): 
    57         return defer.succeed(dict(tags=self.bucket)) 
    58  
     71    def makeContacts(self): 
     72        pass 
    5973 
    6074     
    6175 
     76    def getCurrentTags(self): 
     77        d = self._tagsToPeople() 
     78         
     79        def _addContacts(rv): 
     80            for p in rv: 
     81                p['contacts'] = [{"id": "test", "name": p['name'] + "TEST"}, 
     82                                 {"id": "test2", "name": p['name'] + "TEST2"} 
     83                                    ] 
     84            return rv 
     85        d.addCallback(_addContacts) 
     86        return d 
     87        return defer.succeed(dict(tags=self.bucket)) 
     88 
     89    def _tagsToPeople(self): 
     90        l = [] 
     91        #for tag in self.bucket: 
     92        #    l.append(self._getPersonByTag(tag)) 
     93        #d = defer.gatherResults(l) 
     94 
     95        return defer.succeed([{"id": "1417", "name": "Andy Smith"}, {"id": "4171", "name": "Koe"}]) 
     96        return d 
     97 
     98    def _getPersonByTag(self, tag): 
     99        d = self.remote.identity.search.uri(uri='urn:rfid:%s'%(tag)) 
     100        d.addCallback(lambda x: x[0]) 
     101        return d 
     102     
    62103 
    63104from twisted.web2 import iweb, http, resource, stream 
     
    67108        self.controller = controller 
    68109        self.child_current_tags = WebCurrentTags(self.controller) 
     110        self.child_current_contacts = WebCurrentContacts(self.controller) 
    69111 
    70112 
     
    85127        return http.Response(stream=s) 
    86128 
     129class WebCurrentContacts(resource.Resource): 
     130    def __init__(self, controller): 
     131        self.controller = controller 
     132 
     133    def render(self, ctx): 
     134        req = iweb.IRequest(ctx) 
     135        s = stream.ProducerStream() 
     136 
     137        d = self.controller.getCurrentContacts() 
     138        #return http.Response(stream="OK") 
     139        d.addCallback(simplejson.dumps) 
     140        d.addCallback(s.write) 
     141        d.addCallback(s.finish) 
     142 
     143        return http.Response(stream=s) 
    87144 
    88145     
     
    120177    json.setServiceParent(hub) 
    121178 
    122     controller = PhotoboothController(
     179    controller = PhotoboothController(JSONService
    123180    controller.setServiceParent(hub) 
    124181