import appuifw import urllib import e32 class App: def __init__(self): self.central_maps = { '547300':u'PRINCES CIRCUS / HOLBORN', '547600':u'KINGSWAY / HIGH HOLBORN', '546590':u'THE STRAND / WELLINGTON ST', '548854':u'A5 EDGWARE RD / A501 MARYLEBONE RD ', '548850':u'MARBLE ARCH ', '547369':u'A501 MARYLEBONE RD / BAKER STREET', '548950':u'PORTMAN SQUARE / ORCHARD ST', '547364':u'A501 EUSTON RD / GREAT PORTLAND STREET', '546660':u'BAYSWATER RD / WESTBOURNE ST', '546515':u'HYDE PARK CORNER ', '546512':u'HOBART PLACE / GROSVENOR PLACE ', '546520':u'ECCLESTONE BRIDGE / BUCKINGHAM PALACE RD', '548750':u'PARK LANE / HYDE PARK CORNER ', '547500':u'NORTHUMBERLAND AVENUE / VICTORIA EMBANKMENT ', '547450':u'PICCADILLY CIRCUS', '546502':u'TRAFALGAR SQUARE ', '547550':u'CHARING CROSS RD / CRANBOURNE ST ', '547551':u'CHARING CROSS RD - CAMBRIDGE CIRCUS', '547301':u'OXFORD STREET - CENTRE POINT', '547361':u"A501 EUSTON U'PASS / TOTTENHAM COURT RD", '547359':u'A501 EUSTON RD / EVERSHOLT ST ', '547356':u'A501 EUSTON ROAD / YORK WAY ', '547452':u'OXFORD ST / REGENT ST ', '547451':u'REGENT ST / CONDUIT ST', '547400':u'GREAT PORTLAND ST / MORTIMER ST ', '546501':u'WHITEHALL / PARLIAMENT SQUARE ', '546592':u'PICCADILLY / ST JAMES ST ', '546511':u'VICTORIA ST / WILTON RD', '544327':u'VAUXHALL BRIDGE RD / MILLBANK ', '544256':u'VAUXHALL CROSS', '546510':u'BAYLIS RD / WESTMINSTER BRIDGE RD' } self.west_maps = { '546622':u'A316 TWICKENHAM RD / HEATHCOTE RD ', '546621':u'A316 TWICKENHAM RD / ST JOHNS GROVE ', '547302':u'A40(M) EASTERN END - JOHN AIRD COURT ', '547303':u'A40(M) PADDINGTON SLIP - BRINKLOW HOUSE ', '547304':u"A40(M) / M41 NORTHERN R'BOUT - WHITSTABLE HOUSE", '546620':u'A316 / A205 CHALKERS CORNER', '546530':u'CHELSEA BRIDGE / CHELSEA EMBANKMENT ', '547311':u'A40 / HANGER LANE GYRATORY', '546581':u'OLD BROMPTON RD / FINBOROUGH ROAD', '546560':u'ALBERT BRIDGE SOUTHSIDE', '546598':u'CROMWELL RD / COLLINGHAM ROAD' } self.east_maps = { '440350':u'BLACKWALL TUNNEL AVE/APPROACH', '440349':u'BLACKWALL TUNNEL HOUSE', '440201':u'BLACKWALL TUNNEL SOUTHBOUND (1)', '440205':u'BLACKWALL TUNNEL SOUTHBOUND (2)', '440306':u'BLACKWALL TUNNEL NORTHBOUND (1)', '440322':u'BLACKWALL TUNNEL NORTHBOUND (2)', '440323':u'BLACKWALL TUNNEL NORTHERN APPROACH', '440601':u'EAST INDIA DOCK LINK TUNNEL (1)', '440605':u'EAST INDIA DOCK LINK TUNNEL (2)', '440324':u'EAST INDIA DOCK ROAD', '440329':u'EAST INDIA DOCK ROAD / COTTON ST', '541411':u'KINGSLAND RD / BALLS POND RD', '440326':u'A13 LEAMOUTH ROAD', '440390':u'LIMEHOUSE TUNNEL - ASPEN WAY', '440364':u'LIMEHOUSE TUNNEL - EASTBOUND 1', '440373':u'LIMEHOUSE TUNNEL - EASTBOUND 2', '440385':u'LIMEHOUSE TUNNEL - EASTBOUND 3', '440389':u'LIMEHOUSE TUNNEL - EAST PORTAL (EASTBOUND)', '440391':u'LIMEHOUSE TUNNEL - EAST PORTAL (WESTBOUND)', '440375':u'LIMEHOUSE TUNNEL - EAST SLIP', '440362':u'LIMEHOUSE TUNNEL - HIGHWAY', '440361':u'LIMEHOUSE TUNNEL - WEST APPROACH', '440402':u'LIMEHOUSE TUNNEL - WESTBOUND 1', '440412':u'LIMEHOUSE TUNNEL - WESTBOUND 2', '440419':u'LIMEHOUSE TUNNEL - WESTBOUND SLIP 1', '440420':u'LIMEHOUSE TUNNEL - WESTBOUND SLIP 2', '440403':u'LIMEHOUSE TUNNEL - WEST FERRY RD', '440408':u'LIMEHOUSE TUNNEL - WEST SLIP ', '440425':u'ROTHERHITHE TUNNEL 1', '440431':u'ROTHERHITHE TUNNEL 2', '440430':u'ROTHERHITHE TUNNEL 3', '440431':u'ROTHERHITHE TUNNEL 4', '440432':u'ROTHERHITHE TUNNEL - SOUTH APPROACH', '541400':u'SHOREDITCH HIGH ST / COMMERCIAL ST ', '542100':u'WHITECHAPEL HIGH ST / MANSELL ST' } self.south_east_maps = { '440345':u'A102 SHOOTERS HILL', '440346':u'A102 WOOLWICH RD (WOOLWICH FLYOVER SOUTH)', '440347':u'A102 WOOLWICH RD (WOOLWICH FLYOVER NORTH)', '440337':u'A2 BLACK PRINCE', '440339':u'A2 DANSON', '440338':u'A2 EAST ROCHESTER WAY', '440340':u'A2 FALCONWOOD', '440344':u'A2 KIDBROOKE JUNCTION', '543653':u'A2 OLD KENT RD / ALBANY RD ', '440343':u'A2 ROCHESTER WAY RELIEF RD/WESTHORNE AVE', '440342':u'A2 ROCHESTER WAY RELIEF RD/WESTMOUNT RD', '543752':u'A205 CATFORD ONE-WAY SYSTEM', '543665':u'DEPTFORD BROADWAY / DEPTFORD CHURCH ST', '543603':u'ELEPHANT AND CASTLE NORTH', '543604':u'ELEPHANT AND CASTLE SOUTH', '440431':u'JAMAICA ROAD' } self.south_maps = { '544514':u'A23 STREATHAM HIGH RD / MITCHAM LANE', '544622':u'A3 / A205 CLAPHAM COMMON NORTHSIDE ', '544651':u'A205 / CLAPHAM COMMON SOUTHSIDE ', '544601':u'BOROUGH HIGH ST / SOUTHWARK ST ', '543601':u'BLACKFRIARS BRIDGE / UNITED AFRICA HOUSE ', '544503':u'CAMBERWELL NEW RD / BRIXTON ROAD', '545750':u'WANDSWORTH BRIDGE RD / YORK RD ', '544628':u'WANDSWORTH ONE-WAY SYSTEM - SUDBURY HOUSE' } self.north_maps = { '549551':u'CAMDEN HIGH ST / KENTISH TOWN RD', '548956':u'A41 FINCHLEY RD SOUTH OF FROGNAL COURT', '548955':u'A41 SWISS COTTAGE', '548960':u'A41 FINCHLEY RD / HENDON WAY', '549711':u'A1 HOLLOWAY RD / SEVEN SISTERS RD', '549702':u'A1 ANGEL ISLINGTON' } self.maps_list = (self.central_maps, self.west_maps, self.east_maps, self.south_east_maps, self.south_maps, self.north_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'Cent', u'W', u'E', u'SE', u'S', u'N'], 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]) url = "http://www.bbc.co.uk/london/travel/jamcams/cctv/%s.jpg" % 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()