示例#1
0
    def add_control(self, control):

        if not Utils.checkKeyInDict(self.data, 'controls'):
            self.data['controls'] = []

        if isinstance(control, BaseButton):
            self.data['controls'].append(control.get_data())
示例#2
0
    def set_lyric(self, url):

        if not Utils.checkKeyInDict(self.data['content'], 'lyric'):
            self.data['content']['lyric'] = {}
        self.data['content']['lyric']['url'] = url
        self.data['content']['lyric'][
            'format'] = AudioItemTypeEnum.FORMAT_LRC.value
    def set_lyric(self, url):

        if isinstance(url, str):
            if not Utils.checkKeyInDict(self.data, 'lyric'):
                self.data['lyric'] = {}
            self.data['lyric']['url'] = url
            self.data['lyric']['format'] = AudioItemTypeEnum.FORMAT_LRC.value
示例#4
0
 def get_token(self):
     """
     获取directive的token. 默认在构造时自动生成了token
     :return:
     """
     return Utils.getDictDataByKeyss(self.data,
                                     ['videoItem', 'stream', 'token'])
示例#5
0
    def get_request_query_original(self):
        """
        获取最原始的请求内容
        :return:
        """

        if Utils.checkKeyInDict(self.data['request'], ['query']):
            return self.data['request']['query']['original']
示例#6
0
    def get_user_info(self):
        """
        获取用户信息
        :return:
        """

        return Utils.get_dict_data_by_keys(
            self.data, ['context', 'System', 'user', 'userInfo'])
示例#7
0
    def get_app_launcher_context(self):
        """
        获取设备app安装列表
        :return:
        """

        return Utils.get_dict_data_by_keys(self.data,
                                           ['context', 'AppLauncher'])
示例#8
0
    def get_audio_player_context(self):
        """
        获取设备音频播放状态
        :return:
        """

        return Utils.get_dict_data_by_keys(self.data,
                                           ['context', 'AudioPlayer'])
示例#9
0
    def get_screen_token_from_context(self):
        """
        获取屏幕数据中的token
        :return:
        """

        return Utils.get_dict_data_by_keys(self.data,
                                           ['context', 'Screen', 'token'])
示例#10
0
    def _get_register_event_handler(self):
        """
        根据Dueros传递来的事件,在本地查找是否注册过本事件,如果找到则返回对应的handler方法,否则返回默认的handler
        :see addEventListener
        :return:
        """

        event_data = self._request.get_event_data()
        if event_data and event_data['type']:
            key = event_data['type']
            if key is not None and Utils.checkKeyInDict(self._event, key):
                return self._event[key]
            elif Utils.checkKeyInDict(self._event, '__default__'):
                return self._event['__default__']
            else:
                logging.info('request type = %s 未匹配到任何处理事件' % key)
                return None
示例#11
0
    def get_baidu_uid(self):
        """
        获取百度Id
        :return:
        """

        return Utils.get_dict_data_by_keys(self.data,
                                       ['context', 'System', 'user', 'userInfo', 'account', 'baidu', 'baiduUid'])
示例#12
0
    def set_report_delay_in_ms(self, report_delay_ms):
        report_delay_ms = Utils.convert_number(report_delay_ms)
        if report_delay_ms:
            if 'progressReport' not in self.data['videoItem']['stream']:
                self.data['videoItem']['stream']['progressReport'] = {}

            self.data['videoItem']['stream']['progressReport'][
                'progressReportDelayInMilliseconds'] = int(report_delay_ms)
示例#13
0
 def set_repeat_count(self, repeat_count):
     """
     重复执行次数
     :param repeat_count:
     :return:
     """
     if Utils.is_numeric(repeat_count):
         self.data['repeatCount'] = repeat_count
示例#14
0
    def getUserInfo(self):
        '''
        获取用户信息
        :return:
        '''

        return Utils.getDictDataByKeys(
            self.data, ['context', 'System', 'user', 'userInfo'])
示例#15
0
    def get_video_player_context(self):
        """
        获取设备的视频播放状态
        :return:
        """

        return Utils.get_dict_data_by_keys(self.data,
                                           ['context', 'VideoPlayer'])
示例#16
0
    def set_duration_in_millisecond(self, duration):
        """
        设置切换间隔
        :param duration:
        :return:
        """

        if Utils.is_numeric(duration):
            self.data['durationInMillisecond'] = duration
示例#17
0
 def set_offset_in_milliseconds(self, milliseconds):
     """
     指定从当前offset播放视频
     :param milliseconds:
     :return:
     """
     milliseconds = Utils.convert_number(milliseconds)
     if milliseconds:
         self.data['videoItem']['stream']['offsetInMilliseconds'] = milliseconds
示例#18
0
    def set_delay_in_milliseconds(self, delay):
        """
        设置延迟时间间隔
        :param delay:
        :return:
        """

        if Utils.is_numeric(delay):
            self.data['delayInMilliseconds'] = delay
    def set_duration(self, duration):
        """
        设置动画执行的时间
        :param duration:
        :return:
        """

        if Utils.is_numeric(duration):
            self.data['duration'] = duration
示例#20
0
    def set_value(self, value):
        """
        设置切换步长
        :param value:
        :return:
        """

        if Utils.is_numeric(value):
            self.data['value'] = value
示例#21
0
    def set_index(self, index):
        """
        设置index索引值
        :param index:
        :return:
        """

        if Utils.is_numeric(index):
            self.data['index'] = index
示例#22
0
    def get_query(self):
        """
        获取请求的Query
        :return:
        """

        if self.request_type == 'IntentRequest' and self.data['request']['query']['original']:
            return Utils.get_dict_data_by_keys(self.data, ['request', 'query', 'original'])
        else:
            return ''
示例#23
0
    def set_media_length_in_ms(self, media_length_in_ms):
        """

        :param media_length_in_ms:
        :return:
        """
        media_length_in_ms = Utils.convert_number(media_length_in_ms)
        if media_length_in_ms:
            self.data['content'][
                'mediaLengthInMilliseconds'] = media_length_in_ms
示例#24
0
    def set_provider(self, name, logo):
        """

        :param name:
        :param logo:
        :return:
        """
        if not Utils.checkKeysInDict(self.data, ['content', 'provider']):
            self.data['content']['provider'] = {}

        if name is not None:
            self.data['content']['provider']['name'] = str(name)

        if not Utils.checkKeysInDict(self.data,
                                     ['content', 'provider', 'logo']):
            self.data['content']['provider']['logo'] = {}

        if logo is not None:
            self.data['content']['provider']['logo']['src'] = str(logo)
示例#25
0
    def set_art(self, src):
        """

        :param src:
        :return:
        """
        if not Utils.checkKeysInDict(self.data, ['content', 'art']):
            self.data['content']['art'] = {}
        if src is not None:
            self.data['content']['art']['src'] = str(src)
示例#26
0
    def __init__(self, data):
        """
        :param data:  请求数据
        """

        super(Request, self).__init__()
        if not isinstance(data, dict):
            self.data = json.loads(data)
        else:
            self.data = data
        self.request_type = Utils.getDictDataByKeyss(self.data,
                                                     ['request', 'type'])
        self.session = Session(self.data['session'])
        self.nlu = None
        if self.request_type == 'IntentRequest':
            self.nlu = Nlu(
                Utils.getDictDataByKeyss(self.data, ['request', 'intents']))
        self.deviceData = None
        self.arrUserProfile = None
示例#27
0
    def getBaiduUid(self):
        '''
        获取百度Id
        :return:
        '''

        return Utils.getDictDataByKeys(self.data, [
            'context', 'System', 'user', 'userInfo', 'account', 'baidu',
            'baiduUid'
        ])
示例#28
0
 def set_image(self, image):
     """
     设置image
     :param image:
     :return:
     """
     if image and isinstance(image, str):
         if not Utils.checkKeyInDict(self.data, 'image'):
             self.data['image'] = {}
             self.data['image']['src'] = {}
         self.data['image']['src'] = image
示例#29
0
 def _is_support_interface(self, support_func):
     """
     校验是否支持
     :param support_func:
     :return:
     """
     supported_interfaces = self._request.get_supported_interfaces()
     if supported_interfaces and isinstance(supported_interfaces, dict):
         return Utils.checkKeyInDict(supported_interfaces, support_func)
     else:
         return False
示例#30
0
 def set_progress_report_interval_ms(self, interval_ms):
     '''
     设置directive的属性。定时上报事件的间隔时间
     :param interval_ms:  毫秒数。
     :return:
     '''
     interval_ms = Utils.convert_number(interval_ms)
     if interval_ms:
         self.data['audioItem']['stream'][
             'progressReportIntervalMs'] = interval_ms
     return self