示例#1
0
文件: model.py 项目: jietang/dbrc
def known_screens_for_broadcast(broadcast_id):
    remote_id = _rget('remote_to_broadcast_id_%s' % (broadcast_id, ))
    remote_info = _rget('remote_info_%s' % (remote_id, ))
    devices_data = []
    if remote_info:
        for device_id in remote_info.get('devices', {}).keys():
            # TODO expiration for known devices?
            # For each device, get its current screen and the device name
            devices_data.append({
                'screen_id': str(_rget('device_to_screen_id_%s' % (device_id, ))),
                'device_name': _rget('device_to_device_name_%s' % (device_id, )),
                'known': True,
                })

    return devices_data
示例#2
0
文件: model.py 项目: jietang/dbrc
def _send_to_screen(screen_id, data):
    print 'broadcasting to', screen_id, '\n\tdata: ', data
    screen_channel = 'screen_channel_%s' % screen_id
    redis_session.publish((screen_channel), data)
    screen_queue = _rget('screen_message_queue_%s' % screen_channel) or []
    screen_queue.append(data)
    _rset('queue_%s' % screen_channel, screen_queue[:100])
示例#3
0
文件: model.py 项目: jietang/dbrc
def remove_from_broadcast(screen_id, broadcast_id):
    broadcast_info = _rget('broadcast_info_%s' % broadcast_id)
    screen_info = _rget('screen_info_%s' % screen_id)

    try:
        broadcast_info['screens'].pop(str(screen_id))
    except KeyError:
        pass
    else:
        _rset('broadcast_info_%s' % broadcast_id, broadcast_info)

    try:
        screen_info['broadcasts'].pop(str(broadcast_id))
    except KeyError:
        pass
    else:
        _rset('screen_info_%s' % screen_id, screen_info)

    return {'broadcast_id': broadcast_id, 'screen_id': screen_id}
示例#4
0
文件: model.py 项目: jietang/dbrc
def add_to_broadcast(screen_id, broadcast_id):
    broadcast_info = _rget('broadcast_info_%s' % broadcast_id)
    screen_info = _rget('screen_info_%s' % screen_id)

    start_time = time.time()

    # Update start times for the broadcast and screen info
    broadcast_info['screens'][str(screen_id)] = start_time
    screen_info['broadcasts'][str(broadcast_id)] = start_time

    # Create a record of the fact that this device has conencted
    # to this creen
    remote_id = _rget('remote_to_broadcast_id_%s' % (broadcast_id, ))
    device_id = _rget('screen_to_device_id_%s' % (screen_id, ))
    remote_info = _rget('remote_info_%s' % (remote_id, ))
    if not remote_info:
        remote_info = {'devices': {}}
    remote_info['devices'][device_id] = start_time

    _rset('screen_info_%s' % screen_id, screen_info)
    _rset('remote_info_%s' % (remote_id, ), remote_info)
    return _rset('broadcast_info_%s' % broadcast_id, broadcast_info)
示例#5
0
文件: model.py 项目: jietang/dbrc
def get_broadcast_pairing_info(broadcast_id):
    return _rget('broadcast_pairing_info_%s' % broadcast_id)
示例#6
0
文件: model.py 项目: jietang/dbrc
def get_broadcast(broadcast_id):
    return _rget('broadcast_info_%s' % broadcast_id)
示例#7
0
文件: model.py 项目: jietang/dbrc
def get_screen(screen_id):
    return _rget('screen_info_%s' % screen_id)
示例#8
0
文件: model.py 项目: jietang/dbrc
def get_screen_id(device_id):
    return _rget('device_to_screen_id_%s' % device_id)
示例#9
0
文件: model.py 项目: jietang/dbrc
def get_device_name(device_id):
    return _rget('device_to_device_name_%s' % device_id)
示例#10
0
文件: model.py 项目: jietang/dbrc
def get_device_pairing_info(device_id):
    return _rget('device_to_pairing_info_%s' % device_id)