app.replace("#fiddle", str(img), event['client']) msg = 'SWEET!!!' for i in range(8): app.set_text("h2", msg[:i], event['client']) await asyncio.sleep(1) async def clicked(event): logging.info("CLICKED!") async def buttonclicked(event): if ('id' in event['event_object']['target']): logging.info("BUTTON " + event['event_object']['target']['id'] + " CLICKED!") else: logging.info("BUTTON " + event['event_object']['target']['innerText'] + " CLICKED!") app.unregister('click', buttonclicked, selector='#' + event['event_object']['target']['id'], client=event['client']) logging.basicConfig(format="%(asctime)s [%(levelname)s] - %(funcName)s: %(message)s", level=logging.INFO) app = Sofi(singleclient=True) app.register('init', oninit) app.register('load', onload) # app.start() app.start()
}) app.dispatch({ "command": "unity.subscribe", "name": "keyboard", "data": "up,left,down,right,space,backspace,return,enter" }) async def onkeyboard(event): global current_slide print(event) if event['key'] in ['space', 'return', 'enter', 'right', 'down']: current_slide = min(current_slide + 1, len(ordered_slides) - 1) elif event['key'] in ['up', 'left', 'backspace']: current_slide = max(current_slide - 1, 0) displayslide() app = Sofi() app.register('init', oninit) app.register('unity.keyboard', onkeyboard) stream = tweepy.Stream(auth=twitter.auth, listener=TwitterListener()) stream.filter(track=["python"], async=True) app.start(desktop=False)
app.replace("#fiddle", str(img), event['client']) msg = 'SWEET!!!' for i in range(8): app.text("h2", msg[:i], event['client']) await asyncio.sleep(1) async def clicked(event): logging.info("CLICKED!") async def buttonclicked(event): if ('id' in event['event_object']['target']): logging.info("BUTTON " + event['event_object']['target']['id'] + " CLICKED!") else: logging.info("BUTTON " + event['event_object']['target']['innerText'] + " CLICKED!") app.unregister('click', buttonclicked, selector='#' + event['event_object']['target']['id'], client=event['client']) logging.basicConfig(format="%(asctime)s [%(levelname)s] - %(funcName)s: %(message)s", level=logging.INFO) app = Sofi(singleclient=True) app.register('init', oninit) app.register('load', onload) # app.register('click', clicked) app.start() # app.start(browser=False)
class App(object): def __init__(self, **kwargs): self.vidhub = kwargs.get('vidhub') self.app = Sofi() self.app.loaded = False self.app_registered = False self.app.register('init', self.oninit) self.app.register('load', self.onload) self.app.register('close', self.onclose) config.bind(vidhubs=self.on_config_vidhubs) def start(self): self.app.start() def on_config_vidhubs(self, instance, value, **kwargs): if not self.app.loaded: return need_refresh = False for device_id, vidhub in value.items(): if device_id in self.device_dropdown_items: continue dritem = DropdownItem( str(vidhub.device_name), cl='device-select', attrs={'data-device-id': str(device_id)}, ) self.device_dropdown_items[device_id] = dritem self.device_dropdown.addelement(dritem) vidhub.bind(device_name=self.on_vidhub_device_name) need_refresh = True if need_refresh: self.app.replace( '#{}'.format(self.device_dropdown.ident), ''.join([str(dr) for dr in self.device_dropdown._children]), ) if self.app_registered: self.app.unregister('click', self.on_device_select_click, selector='.device-select') self.app.register('click', self.on_device_select_click, selector='.device-select') def on_vidhub_device_name(self, instance, value, **kwargs): dritem = self.device_dropdown_items[instance.device_id] selector = ".device-select[data-device-id={}]".format( instance.device_id) self.app.replace(selector, '<a href="#">{}</a>'.format(value)) async def oninit(self, e): v = self.view = View() nav = Navbar(brand='Vidhub Control') dr = self.device_dropdown = Dropdown('Select Device', ident='device_dropdown') self.device_dropdown_items = {} dr.addelement( DropdownItem('None', cl='device-select', attrs={'data-device-id': 'NONE'})) for device_id, vidhub in config.vidhubs.items(): dritem = DropdownItem( str(vidhub.device_name), cl='device-select', attrs={'data-device-id': str(device_id)}, ) self.device_dropdown_items[device_id] = dritem vidhub.bind(device_name=self.on_vidhub_device_name) dr.addelement(dritem) nav.adddropdown(dr) v.addelement(nav) self.vidhub_view = VidHubView(vidhub=self.vidhub, app=self.app) v.addelement(self.vidhub_view.widget) self.app.load(str(v)) self.app.loaded = True async def onload(self, e): self.app.register('click', self.on_device_select_click, selector='.device-select') self.app.register('click', self.on_click, selector='button') self.app_registered = True async def on_device_select_click(self, e): self.app.unregister('click', self.on_click, selector='button') device_id = e['event_object']['currentTarget']['data-device-id'] if device_id == 'NONE': self.vidhub = None self.vidhub_view.vidhub = None return if device_id not in config.vidhubs: for key in config.vidhubs.keys(): if str(key) == device_id: device_id = key break self.vidhub = config.vidhubs[device_id].backend await self.vidhub.connect() logger.info('switching to vidhub {!r}'.format(self.vidhub)) self.vidhub_view.vidhub = self.vidhub self.app.register('click', self.on_click, selector='button') async def on_click(self, e): await self.vidhub_view.on_click(e) async def onclose(self, *args): await config.stop()
app.remove("#fiddle") msg = 'SWEET!!!' for i in range(8): app.text("h2", msg[:i]) yield from asyncio.sleep(1) app.unregister('click', buttonclicked, selector='button') return @asyncio.coroutine def clicked(event): logging.info("CLICKED!") @asyncio.coroutine def buttonclicked(event): if ('id' in event['event_object']['target']): logging.info("BUTTON " + event['event_object']['target']['id'] + " CLICKED!") else: logging.info("BUTTON " + event['event_object']['target']['innerText'] + " CLICKED!") logging.basicConfig(format="%(asctime)s [%(levelname)s] - %(funcName)s: %(message)s", level=logging.INFO) app = Sofi() app.register('init', oninit) app.register('load', onload) # app.register('click', clicked) app.start(False)