Beispiel #1
0
def main(say, widget):
    for i in trigger:
        if i in say:
            nums = []
            for word in say.split():
                try:
                    num = w2n.word_to_num(
                        word
                    )  # Преобразование слов из входящего сообщения в числа
                    nums.append(num)
                except ValueError:
                    pass
            while len(nums) > 2:
                nums.pop(
                )  # Если получено больше двух чисел - удаляются следующие после второго
            if len(nums) == 1:
                # Завершение навыка в том случае, если передано только одно число
                toSpeak = "Мне нужно второе число!"
                break
            elif len(nums) == 0:
                # Завершение, если не передано ни одного числа
                toSpeak = "Мне нужны два числа!"
                break
            num1 = int(nums[0])
            num2 = int(nums[1])
            randnum = random.randint(
                num1, num2)  # Получение случайного числа из диапозона
            toSpeak = random.choice(answer) + str(randnum) + "."
            break
        else:
            toSpeak = ""

    if toSpeak:
        speak.speak(toSpeak, widget)
    return toSpeak
Beispiel #2
0
def getNums(mathExpression):
    expressionWithNums = ""
    for word in mathExpression.split():
        try:
            num = w2n.word_to_num(word)
            expressionWithNums += f" {str(num)}"
        except ValueError:
            expressionWithNums += f" {word}"
    return expressionWithNums
Beispiel #3
0
def main(say, widget):
    for i in trigger:
        if i in say:
            global time, listWidget
            now = datetime.datetime.now().strftime("%H %M %S")
            time = []
            for word in say.split():
                try:
                    num = w2n.word_to_num(
                        word
                    )  # Преобразование слов из входящего сообщения в числа
                    time.append(num)
                except ValueError:
                    pass

            while len(time) > 1:
                time.pop()

            if len(time) == 0 or int(time[0]) == 0:
                workTime = 30
            else:
                if "секунд" in say:
                    workTime = int(time[0])
                elif "минут" in say:
                    workTime = int(time[0]) * 60
                elif "час" in say:
                    workTime = int(time[0]) * 60 * 60
                elif "день" in say or "дней" in say or "дня" in say or "сутки" in say or "суток" in say:
                    workTime = int(time[0]) * 60 * 60 * 24
                else:
                    workTime = int(time[0]) * 60

            if workTime >= 60:
                toSpeak = "Таймер запущен на " + str(workTime / 60) + " минут."
            elif workTime >= 3600:
                toSpeak = "Таймер запущен на " + str(
                    workTime / 3600) + " часов."
            elif workTime >= 86400:
                toSpeak = "Таймер запущен на " + str(
                    workTime / 86400) + " дней."
            else:
                toSpeak = "Таймер запущен на " + str(workTime) + " секунд."
            time = workTime
            listWidget = widget
            th = Thread(target=timerProcess)
            th.start()
            break
        else:
            toSpeak = ""

    if toSpeak != "":
        speak.speak(toSpeak, widget)
    return toSpeak
Beispiel #4
0
def main(say, widget):
    for i in poweroff:
        if i in say:
            times = []
            for word in say.split():
                try:
                    num = w2n.word_to_num(
                        word
                    )  # Преобразование слов из входящего сообщения в числа
                    times.append(num)
                except ValueError:
                    pass

            while len(times) > 1:
                times.pop()  # Удаление лишних чисел

            if len(times) == 0 or int(times[0]) == 0:
                offTime = 0
            else:
                if "секунд" in say:
                    offTime = int(times[0])
                elif "минут" in say:
                    offTime = int(times[0]) * 60
                elif "час" in say:
                    offTime = int(times[0]) * 60 * 60
                elif "день" in say or "дней" in say or "дня" in say or "сутки" in say or "суток" in say:
                    offTime = int(times[0]) * 60 * 60 * 24
                else:
                    offTime = int(times[0]) * 60

            if offTime >= 60:
                toSpeak = "Устройство будет выключено через " + str(
                    offTime / 60) + " минут."
            elif offTime >= 3600:
                toSpeak = "Устройство будет выключено через " + str(
                    offTime / 3600) + " часов."
            elif offTime >= 86400:
                toSpeak = "Устройство будет выключено через " + str(
                    offTime / 86400) + " дней."
            else:
                toSpeak = "Устройство будет выключено через " + str(
                    offTime) + " секунд."
            global time, listWidget
            time = offTime
            listWidget = widget
            th = Thread(target=poweroffProcess)  # Инициализация потока
            th.start()  # Запуск потока
            break
        else:
            toSpeak = ""

        for i in reboot:
            if i in say:
                times = []
                for word in say.split():
                    try:
                        num = w2n.word_to_num(
                            word
                        )  # Преобразование слов из входящего сообщения в числа
                        times.append(num)
                    except ValueError:
                        pass

                while len(times) > 1:
                    times.pop()  # Удаление лишних чисел

                if len(times) == 0 or int(times[0]) == 0:
                    offTime = 0
                else:
                    if "секунд" in say:
                        offTime = int(times[0])
                    elif "минут" in say:
                        offTime = int(times[0]) * 60
                    elif "час" in say:
                        offTime = int(times[0]) * 60 * 60
                    elif "день" in say or "дней" in say or "дня" in say or "сутки" in say or "суток" in say:
                        offTime = int(times[0]) * 60 * 60 * 24
                    else:
                        offTime = int(times[0]) * 60

                if offTime >= 60:
                    toSpeak = "Устройство будет перезагружено через " + str(
                        offTime / 60) + " минут."
                elif offTime >= 3600:
                    toSpeak = "Устройство будет перезагружено через " + str(
                        offTime / 3600) + " часов."
                elif offTime >= 86400:
                    toSpeak = "Устройство будет перезагружено через " + str(
                        offTime / 86400) + " дней."
                else:
                    toSpeak = "Устройство будет перезагружено через " + str(
                        offTime) + " секунд."
                time = offTime
                listWidget = widget
                th = Thread(target=rebootProcess)  # Инициализация потока
                th.start()  # Запуск потока
                break

    if toSpeak:
        speak.speak(toSpeak, widget)
    return toSpeak