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
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
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
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