Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
    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()
Exemplo n.º 3
0
    })

    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)
Exemplo n.º 4
0
# Tue Jun 07 23:05:55 +0000 2016
dateformat = "%a %b %d %H:%M:%S %z %Y"


@asyncio.coroutine
def main(event):
    print("MAIN")
    v = View()
    c = Container()

    tweets = api.home_timeline()

    for tweet in tweets:
        p = Panel(heading=True, style="max-height:150px;min-height:150px;")
        p.setheading(tweet.user.screen_name + "<div class='pull-right'>" +
                     tweet.created_at.strftime("%b %d %Y %H:%M:%S") + "</div>")
        p.addelement(Paragraph(tweet.text))
        col = Column('md', 4)
        col.addelement(p)
        c.addelement(col)

    v.addelement(c)

    app.load(str(v))


app = Sofi()
app.register('init', main)

app.start()
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)