コード例 #1
0
def create_channels_response(config,
                             request,
                             url='demo.macroscop.com',
                             login='******',
                             password=''):
    xml_doc = minidom.parseString(config)
    channels = xml_doc.getElementsByTagName('ChannelInfo')
    response = get_response_pattern(request)
    response['response'][
        'text'] = 'Выберите камеру на демо сервере для просмотра видео:'
    cameras_buttons = []

    for channel in channels:
        channel_id = channel.attributes['Id'].value
        cameras_buttons.append({
            'title':
            channel.attributes['Name'].value,
            'url':
            f'http://{url}/mobile?'
            f'channelId={channel_id}&'
            f'resolutionX=1024&'
            f'resolutionY=662&'
            f'fps=15&'
            f'login={login}&'
            f'password={password}&'
            f'is_ajax=true&'
            f'whoami=webclient&'
            f'withcontenttype=true',
            'hide':
            False
        })

    response['response']['buttons'] = cameras_buttons

    return response
コード例 #2
0
def create_about_response(request):
    response = get_response_pattern(request)
    response['response'][
        'text'] = 'Камераскоп - помогает просматривать видео в формате mjpeg с вашего сервера Macroscop, \n' \
                  'а также получать информацию по камерам на нём.'

    return response
コード例 #3
0
    def create_start_response(self, config, request):
        xml_doc = minidom.parseString(config)
        channels = xml_doc.getElementsByTagName('ChannelInfo')
        response = get_response_pattern(request)
        response['response']['text'] = 'Доступные функции:\n' \
                                       '* Генерация тревоги:\n' \
                                       '        Просто скажи: тревога {название камеры в Макроскопе} ' \
                                       '{опциональное сообщение}\n' \
                                       '* Посмотреть видео с камеры:'
        cameras_buttons = []

        for channel in channels:
            channel_id = channel.attributes['Id'].value
            self.channels[channel_id] = channel.attributes['Name'].value
            cameras_buttons.append({'title': channel.attributes['Name'].value,
                                    'url': f'http://{self.url}/mobile?'
                                           f'channelId={channel_id}&'
                                           f'resolutionX=1024&'
                                           f'resolutionY=662&'
                                           f'fps=15&'
                                           f'login={self.login}&'
                                           f'password={self.password}&'
                                           f'is_ajax=true&'
                                           f'whoami=webclient&'
                                           f'withcontenttype=true',
                                    'hide': False})

        response['response']['buttons'] = cameras_buttons

        return response
コード例 #4
0
    def login_to_server(self, request):
        response = get_response_pattern(request)
        try:
            spited_request = self.original_utterance.lower().split('%', 3)

            self.url = spited_request[0]
            self.login = spited_request[1]
            self.password = spited_request[2]
        except IndexError:
            response['response']['text'] = 'Вы ввели неправильно, вот шаблон:\n' \
                                           '(ip адрес или доменное имя):(порт)%(логин)%(пароль)'
            response['response']['buttons'] = suggests_buttons
            self.is_connected_to_server = False
            return response

        try:
            output = urlopen(f"http://{self.url}/configex?login={self.login}&password={self.password}").read()
            response = output.decode('utf-8')
        except:
            response['response']['text'] = 'Ошибка аутентификации'
            response['response']['buttons'] = suggests_buttons
            self.is_connected_to_server = False
            return response

        if 'Configuration' in response:
            login_success_response = self.create_start_response(response, request)
            self.is_connected_to_server = True
            return login_success_response
        else:
            response['response']['text'] = 'Неверное имя пользователя или пароль.'
            response['response']['buttons'] = suggests_buttons
            self.is_connected_to_server = False
            return response
コード例 #5
0
def create_joke_response(request):
    response = get_response_pattern(request)
    response['response'][
        'text'] = 'Сергей, Илья и Андрей купили по даче. Сергей не поставил никакой сигнализации, \n' \
                  'Илья установил простенькую сигнализацию, ну а Андрей навороченную систему видеонаблюдения. \n' \
                  'Через месяц растащили дачу Сергея, дачу Ильи и дачу Андрея тоже, зато он смог всё это \n' \
                  'посмотреть. ха ха ха  '

    return response
コード例 #6
0
def create_new_user_response(request):
    response = get_response_pattern(request)
    response['response'][
        'text'] = 'Здравствуйте! Я могу запустить ' \
                  'для Вас демо сервер или рассказать ' \
                  'о Камераскоп'

    response['response']['buttons'] = suggests_buttons

    return response
コード例 #7
0
    def create_alarm(self, request):
        for ch_id, ch_name in self.channels.items():
            ch_name_lower_case = ch_name.lower()
            if ch_name_lower_case in self.original_utterance.lower():
                alarm_message = self.original_utterance.lower().split(ch_name_lower_case, 2)[1]
                mc_server_response = self.execute_alarm(ch_id.encode('utf-8'), alarm_message.encode('utf-8'))
                response = get_response_pattern(request)
                response['response']['text'] = mc_server_response

                return response
コード例 #8
0
def create_best_soft_response(request):
    response = get_response_pattern(request)
    response['response'][
        'text'] = 'Знают мамы, знают дети,\nМакроскоп самый лучший на свете!'

    return response
コード例 #9
0
def create_default_response(request):
    response = get_response_pattern(request)
    response['response']['text'] = 'Вот что я умею:'
    response['response']['buttons'] = suggests_buttons

    return response
コード例 #10
0
def create_error_response(request):
    response = get_response_pattern(request)
    response['response'][
        'text'] = 'Упс, произошла внутренняя ошибка, обратитесь к Сергею!'

    return response
コード例 #11
0
def create_test_response(request):
    response = get_response_pattern(request)
    response['response']['text'] = 'тест'
    response['response']['url'] = 'https://macroscop.com'

    return response
コード例 #12
0
def create_enter_server_response(request):
    response = get_response_pattern(request)
    response['response']['text'] = 'Введите адрес сервера, логин и пароль в формате:\n' \
                                   '(ip адрес или доменное имя):(порт)%(логин)%(пароль)'

    return response