import appuifw import urllib import e32 class App: def __init__(self): self.manhattan_maps = { '10':u'2 Ave @ 125 Street', '07':u'5 Ave @ 23 Street', '08':u'5 Ave @ 49 Street', '12':u'6 Ave @ 42 Street', '10':u'6 Ave @ 49 Street', '66':u'7 Ave @ 125 Street', '68':u'7 Ave @ 145 Street', '19':u'8 Ave @ 34 Street', '20':u'8 Ave @ 42 Street', '17':u'9 Ave @ 34 Street', '31':u'11 Ave @ 42 Street', '67':u'Amsterdam Ave @ 181 St', '65':u'Broadway @ 169 St', '02':u'Church Street @ Vesey', '15':u'E 57 Street @ QBB (btwn 1 & 2 Ave)', '16':u'E 63 Street @ QBB (btwn 1 & 2 Ave)', '23':u'FDR Dr @ 36 Street', '24':u'FDR Dr @ 78 Street', '25':u'FDR Dr @ 96 Street', '27':u'FDR @ 135 St', '74':u'FDR @ 155 St', '64':u'FDR @ Old Slip', '01':u'Riverside Dr @ 135 St - H Hudson Pkwy', '28':u'Riverside Dr @ 153 St - H Hudson Pkwy', '50':u'West St @ Canal St', '71':u'West St @ Murray St' } self.bronx_maps = { '35':u'Bruckner Expy @ Bronx River Pkwy', '33':u'Cross Bronx Expy @ Randall Ave', '41':u'Major Deegan Expy @ South of W 167 Street', '111':u'Major Deegan Expy Triboro Approach', '122':u'New England Thwy @ Bartow Ave - Ext 12', '36':u'New England Thwy @ East Tremont' } self.brooklyn_maps = { '89':u'Adams St @ Tillary St', '62':u'Belt Pkwy East of VNB', '114':u'Belt Pkwy @ 68 St', '116':u'Belt Pkwy @ Erskine Ave', '115':u'Belt Pkwy @ Ocean Pkwy', '45':u'BQE @ Sackett St', '103':u'Gowanus Expy @ 92 St', '47':u'Prospect Expy @ Fort Hamilton Pkwy', '48':u'WBB Manhattan Entrance', '43':u'WBB Brooklyn Entrance' } self.queens_maps = { '117':u'Belt Pkwy @ 225 St', '72':u'Belt Pkwy @ Cross Bay Blvd', '107':u'Belt Pkwy @ Laurel Hill Blvd', '119':u'Clearview Expy @ Northern Blvd', '120':u'Cross Island Pkwy Throgs Neck Bridge Appr', '118':u'Cross Isl Pkwy @ Union Tpke', '108':u'Triboro @ 31 St', '58':u'LIE near Woodhaven Blvd', '52':u'Van Wyck Expy @ 101 Ave' } self.staten_maps = { '95':u'Outerbridge Crossing @ Tyrellan Ave', '96':u'Staten Island Expy @ Clove Rd', '83':u'Staten Island Expy @ Richmond Ave', '84':u'West Shore Expy @ Victory Blvd' } self.maps_list = (self.brooklyn_maps, self.bronx_maps, self.manhattan_maps, self.queens_maps, self.staten_maps) self.lock = e32.Ao_lock() self.old_exit_key = appuifw.app.exit_key_handler appuifw.app.exit_key_handler = self.exit_handler self.current_tab = 0 appuifw.app.set_tabs([u'Brooklyn', u'Bronx', u'Manhattan', u'Queens', u'Staten'], self.display_tab) self.display_tab(0) self.lock.wait() def exit_handler(self): self.lock.signal() def display_tab(self, id): appuifw.app.body = appuifw.Listbox(self.maps_list[id].values(), self.load) self.current_tab = id def load(self): try: id = appuifw.app.body.current() k = self.maps_list[self.current_tab].keys() url = "http://207.251.86.248/cctv%i.jpg"%int(k[id]) urllib.urlretrieve(url, "C:\\traffic.jpg") content_handler = appuifw.Content_handler() content_handler.open("C:\\traffic.jpg") except IOError: appuifw.note(u"Could not fetch the image.",'info') except Exception, E: appuifw.note(u"Could not open the data, %s"%E,'info') A = App()