import speaking import tsm import time from termcolor import colored from pygame import mixer import snowboydecoder import os import gser import legal import sys from time import ctime, strftime import spot import pixels import requests interrupted = False spo = spot.spo('drlbminh', 'd6881de9093040d8b9c18d669224b559', '8f233b0f5037456b9c5e084f3f069efd', 'http://localhost:9999/') spotipy = spo.assign() reminder = gih.get_config('reminder') ggcre = gih.get_config('google_application_credentials') os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = ggcre api_boolean = gih.get_config('api_active') hotword = gih.get_config('hotword') con = lite.connect('data.db', check_same_thread=False) timlenh = lite.connect('data.db', check_same_thread=False) hehe = lite.connect('hehe.db', check_same_thread=False) model = gih.get_config('model') sensitivity = gih.get_config('sensitivity') detector = snowboydecoder.HotwordDetector(model, sensitivity=sensitivity) domain = gih.get_config('domain') password = gih.get_config('hass_password')
version = gih.get_config('version_above084') longlivedtoken = gih.get_config('longlived-token') voice = gih.get_config('voice') con1 = gih.data_init() con_command = gih.data_command_init() spotify = gih.get_config('spotify') if spotify == 1: import spot seed = gih.get_config('seed') if seed == 1: import pixels spotify_username = gih.get_config('spotify_username') spotify_client_id = gih.get_config('spotify_client_id') spotify_client_secret = gih.get_config('spotify_client_secret') if spotify == 1: spo = spot.spo(spotify_username, spotify_client_id, spotify_client_secret, 'http://localhost:9999/') spotipy = spo.assign() #khiển led------------- led_xanh = gih.get_config('led_xanh') led_do = gih.get_config('led_do') try: gpio.init() gpio.setcfg(led_xanh, 1) gpio.setcfg(led_do, 1) except: pass #khiển led------------- serial_pi = gser.getserial() serial_dangky = legal.check_legal() print(colored('[CHECK SERIAL] - Kiểm tra Serial', 'red')) time.sleep(0.1)
def hamthucthi(row0_in_db, data, friendly_name_hass, sta): global player print('[MAIN] - THỰC THI TÁC VỤ') print('---------') processss.timlenhtrongdata(data) if row0_in_db == "KHỎE KHÔNG": if seed == 1: pixels.speak() answer( "em khỏe. ", "khỏe lắm anh ", "khỏe chứ anh. ", ) if seed == 1: pixels.off() #camera - dieu khien xoay elif row0_in_db == "CAMERA": print('vao camera') a = ptz.control('http://192.168.9.121', 'admin', 'Emilybro2013') datapreset = data datapreset = datapreset.split() iiii = 0 while iiii < len(datapreset): if datapreset[iiii].isnumeric() == True: preset_number = datapreset[iiii] break else: iiii += 1 try: a.set_preset(preset_number) except: pass if 'LÊN' in data.upper(): print('vao len') a.len() time.sleep(2) return if 'XUỐNG' in data.upper(): a.xuong() time.sleep(2) return if 'TRÁI' in data.upper(): a.trai() time.sleep(2) return if 'PHẢI' in data.upper(): a.phai() time.sleep(2) return # Âm lịch elif row0_in_db == "ÂM LỊCH": check_day = [] if seed == 1: pixels.speak() if 'MAI' in data: check_day = amlich.ngaymai() elif 'MỐT' in data: check_day = amlich.ngaymot() elif 'QUA' in data: check_day = amlich.homqua() elif 'NAY' in data: check_day = amlich.homnay() else: check_day = amlich.ngaykhac(data) amlich.kiemtra_amlich(check_day[0], check_day[1], check_day[2], check_day[3], check_day[4]) if seed == 1: pixels.off() #Hỏi thứ elif row0_in_db == "THỨ MẤY": check_thu = [] if seed == 1: pixels.speak() if 'MAI' in data: check_thu = thu.ngaymai() elif 'MỐT' in data: check_thu = thu.ngaymot() elif 'QUA' in data: check_thu = thu.homqua() elif 'NAY' in data: check_thu = thu.homnay() else: check_thu = thu.ngaykhac(data) result_thu = thu.kiemtra_thu(check_thu[0], check_thu[1], check_thu[2], check_thu[3], check_thu[4]) speaking.speak(result_thu[0] + " là " + result_thu[1] + ' ' + result_thu[2] + ' tháng ' + str(result_thu[3])) if seed == 1: pixels.off() # Ngày lễ elif row0_in_db == "NGÀY LỄ": if seed == 1: pixels.speak() # answer('không có chi. ','rất vui vì giúp được anh ',' đừng bận tâm ') ngayle_res = [] ngayle_res = ngayle.ngayle_check(data) speaking.speak(ngayle_res[0] + ' Còn ' + str(ngayle_res[1]) + ' ngày nữa là đến ' + ngayle_res[2] + '. Đó là ngày ' + ngayle_res[3] + ' tháng ' + ngayle_res[4] + ' năm ' + ngayle_res[5]) if seed == 1: pixels.off() #Cảm ơn elif row0_in_db == "CẢM ƠN": if seed == 1: pixels.speak() answer('không có chi. ', 'rất vui vì giúp được anh ', ' đừng bận tâm ') if seed == 1: pixels.off() #Gass elif row0_in_db == "BAO NHIÊU TUỔI": import textinput textinput.main() #HELP elif row0_in_db == "TRỢ GIÚP": if seed == 1: pixels.speak() if 'THỜI TIẾT' in data: speaking.speak( 'Có thể hỏi các câu hỏi bao gồm các từ như, Thời tiết hôm nay, ngày mai' ) elif 'GIỜ' in data: speaking.speak('Đặt câu hỏi mấy giờ rồi') elif 'NGÀY' in data: speaking.speak( 'Hỏi thứ mấy, ngày nào. Có thể hỏi ngày mai là thứ mấy, ngày 30 tháng 4 là thứ mấy, vv.' ) elif 'ÂM LỊCH' in data: speaking.speak('Hỏi âm lịch hôm nay, ngày mai, ngày bất kì') elif 'DỊCH' in data: speaking.speak( 'Dịch từ tHoặc dịch cả câu với cấu trức: Dịch câu sau sang tiếng nào đó. Sau đó chờ âm báo rồi đọc câu. Ngôn ngữ hỗ trợ: Việt, Anh, Trung, Nhật, Hàn.' ) elif 'THÔNG TIN' in data: speaking.speak( 'Có thể hỏi thông tin bằng câu với kết thúc là gì hoặc là ai. Ví dụ, Hồ Chí Minh là ai.' ) elif 'LỆNH' in data: speaking.speak( 'Có thể bật, tắt, điều chỉnh nhiệt độ máy lạnh .... bằng các câu lệnh đơn giản như: bật đèn, tắt đèn, ....' ) elif 'NHẠC' in data: speaking.speak( 'Dùng lệnh Phát rồi gọi tên bài hát, playlist muốn nghe. Muốn qua bài thì dùng lệnh Tiếp theo. Dừng với lệnh Dừng nhạc' ) elif 'HẸN GIỜ' in data: speaking.speak( 'Dùng lệnh hẹn giờ cộng thời gian, hủy với lệnh hủy hẹn giờ') elif 'NGÀY LỄ' in data: speaking.speak( 'Hỏi còn bao nhiêu ngày nữa là đến ngày lễ. Các ngày lễ có sẵn bao gồm, Tết Tây, Tết ta, 30 tháng 4, trung thu, giỗ tổ, quốc khánh. ' ) else: speaking.speak( 'Các lệnh thường dùng, Hỏi giờ, thời tiết, thứ ngày tháng, thông tin, lệnh, phát nhạc, hẹn giờ, dịch từ, dịch câu, âm lịch, ngày lễ. Dùng lệnh trợ giúp kèm theo các lệnh muốn tra cứu để được hướng dẫn chi tiết hơn.' ) if seed == 1: pixels.off() #Hỏi giờ elif row0_in_db == "MẤY GIỜ": if seed == 1: pixels.speak() from time import ctime, strftime gio = strftime("%H") gio = list(gio) phut = strftime("%M") phut = list(phut) if gio[0] == '1': if gio[1] == '0': docgio = 'mười giờ ' else: docgio = 'mười ' + gio[1] + ' giờ ' elif gio[0] == '0': docgio = gio[1] + ' giờ ' elif gio[0] == '2': if gio[1] == '0': docgio = 'hai mươi giờ ' elif gio[1] == '1': docgio = 'hai mươi mốt giờ ' else: docgio = 'hai mươi ' + gio[1] + ' giờ ' if phut[0] == '0': docphut = phut[1] + ' phút ' elif phut[0] == '1': if phut[1] == '0': docphut = ' mười phút ' else: docphut = ' mười ' + phut[1] + ' phút ' else: if phut[1] == '0': docphut = phut[0] + ' mươi phút ' elif phut[1] == '1': docphut = phut[0] + ' mươi mốt phút ' else: docphut = phut[0] + ' mươi ' + phut[1] + ' phút ' speaking.speak("BÂY GIỜ LÀ " + docgio + docphut) if seed == 1: pixels.off() #Tin tức (TTS) elif row0_in_db == "TIN TỨC": pixels.speak() tintuc.tintucmoi() elif row0_in_db == "XỔ SỐ": pixels.speak() print('Kết quả xổ số') loto.check(data) #Truyện cười elif row0_in_db == "CƯỜI": pixels.speak() truyen = fun.truyen() speaking.speak(truyen) #Hỏi ngày # if row0_in_db=="VỊ TRÍ": # if "CỦA" in data: # locationcua = data.find('CỦA') # data = data[locationcua+4:len(data)] # location = data.strip(" ") # speaking.speak("đây là vị trí của " + location ) # webbrowser.open("https://www.google.nl/maps/place/" + location + "/&") # elif row0_in_db == 'NHẮC': elif row0_in_db == "RADIO": pixels.speak() try: player.stop() except: pass player = radio.phat_radio(data) elif row0_in_db == "ĐI NGỦ": pass elif row0_in_db == "LÀ GÌ": if seed == 1: pixels.speak() def wifi(data): data = data[0:len(data) - 6] rep = wk.find_info(data) rep = rep.find_wiki() print(rep) rep = '. '.join(rep) speaking.speak('Theo wikipedia: ' + rep) speaking.speak('để em tìm xem nào') execute.run_thread(wifi, data) if seed == 1: pixels.off() # Phát video elif row0_in_db == "PHÁT": if seed == 1: pixels.speak() global spotipy try: player.stop() except: pass if sp_act == 1: spotipy = spot.play_current_playlist(s_user, s_id, s_secret, 'http://localhost:9999/', data) else: player = radio.play_nhac(data, friendly_name_hass) if seed == 1: pixels.off() elif row0_in_db == "TIẾP THEO": try: player.stop() except: pass player = radio.phat_tiep_theo() if seed == 1: pixels.off() # Google word translate elif row0_in_db == "CÓ NGHĨA": if seed == 1: pixels.speak() from googletrans import Translator translator = Translator() print(data) data = data.replace('TỪ ', '') data = data.replace('TRONG ', '') # print ('Edit ' + data) # To Vietnamese if 'VIỆT' in data: m = re.search('(.+?) TIẾNG VIỆT', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='vi') print(translations.text) speaking.speak('Từ ') speaking.speaken(dataen) speaking.speak('trong tiếng việt nghĩa là: ' + translations.text) #To English elif 'TIẾNG ANH' in data: m = re.search('(.+?) TIẾNG ANH', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='en') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng anh nghĩa là: ') speaking.speaken(translations.text) # To Korean elif 'TIẾNG HÀN' in data: m = re.search('(.+?) TIẾNG HÀN', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='ko') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng Hàn nghĩa là: ') speaking.speakko(translations.text) # To Japanese elif 'TIẾNG NHẬT' in data: m = re.search('(.+?) TIẾNG NHẬT', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='ja') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng Nhật nghĩa là: ') speaking.speakja(translations.text) # To Chinese elif 'TIẾNG TRUNG' in data: m = re.search('(.+?) TIẾNG TRUNG', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='zh-cn') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng TRUNG nghĩa là: ') speaking.speakzh(translations.text) # Google sentence translate elif row0_in_db == "DỊCH CÂU": from googletrans import Translator translator = Translator() continue_go = 1 speaking.speak('OK, đọc câu cần dịch đi anh') more_data = processss.re_ask() print(more_data) # def gconv (data,more_data): # continue_go = 1 # empty = [] if len(more_data) > 0: while True: print('Google translate: ' + data) print('Data translate: ' + more_data) # speaking.speak('') processss.mixer.music.load('resources/ding.wav') processss.mixer.music.play() if 'TIẾNG ANH' in data: translations = translator.translate(more_data, dest='en') print(translations.text) speaking.speaken(translations.text) continue_go = 1 if 'TIẾNG VIỆT' in data: translations = translator.translate(more_data, dest='vi') print(translations.text) speaking.speak(translations.text) continue_go = 1 if 'TIẾNG HÀN' in data: translations = translator.translate(more_data, dest='ko') print(translations.text) speaking.speakko(translations.text) continue_go = 1 if 'TIẾNG TRUNG' in data: translations = translator.translate(more_data, dest='zh-cn') print(translations.text) speaking.speakzh(translations.text) continue_go = 1 if 'TIẾNG NHẬT' in data: translations = translator.translate(more_data, dest='ja') print(translations.text) speaking.speakja(translations.text) continue_go = 1 if 'HỦY' in more_data: speaking.speak('thoát khỏi chế độ dịch') continue_go = 0 break else: break # return more_data, continue_go # Hẹn giờ elif row0_in_db == "HẸN GIỜ": onoff.hen_gio(data) elif row0_in_db == "HỦY HẸN GIỜ": onoff.t1.cancel() speaking.speak("đã hủy hẹn giờ ") elif row0_in_db == "DỪNG": try: player.stop() except Exception as e: print(e) pass at = spot.spo(s_user, s_id, s_secret, 'http://localhost:9999/') sp = at.assign() de = sp.devices() de = de['devices'] for des in de: print(des['id']) try: at.pause(sp, des['id']) except Exception as t: print(t) pass elif row0_in_db == "TO LÊN": pixels.speak() radio.to_len() elif row0_in_db == "NHỎ XUỐNG": pixels.speak() radio.nho_xuong() elif row0_in_db == "ÂM LƯỢNG": pixels.speak() vol_extract = radio.amluong(data) speaking.speak("thiết lập âm lượng mức " + str(vol_extract)) elif row0_in_db == "THIẾT LẬP": pixels.speak() onoff.thietlap(friendly_name_hass, sta, data) elif row0_in_db == "MỞ": pixels.speak() onoff.on_mo(friendly_name_hass, data) elif row0_in_db == "TẮT": onoff.off_tat(friendly_name_hass, data) elif row0_in_db == "TÊN": if "EM" in data: answer( 'em là BOT LB', 'em là LB ', 'em tên LB', ) elif row0_in_db == "": speaking.speak('em không hiểu rồi đại ca ơi') # Trạng thái elif row0_in_db == "TRẠNG THÁI": if seed == 1: pixels.speak() onoff.trangthai(sta) if seed == 1: pixels.off() #Thời tiết elif row0_in_db == "THỜI TIẾT": if seed == 1: pixels.speak() def wt(data): fio = weth.darksky_weather() if "HIỆN TẠI" in data or "HÔM NAY" in data: icon = '' current_weather = weth.darksky_currently(fio) if current_weather[2].upper() == 'RAIN': icon = 'mưa' elif current_weather[2].upper() == 'PARTLY-CLOUDY-NIGHT': icon = 'buổi tối trời nhiều mây' elif current_weather[2].upper() == 'PARTLY-CLOUDY-DAY': icon = 'trời nhiều mây' elif current_weather[2].upper() == 'CLEAR-DAY': icon = 'trời trong xanh' elif current_weather[2].upper() == 'CLEAR-NIGHT': icon = 'đêm trời đẹp' elif current_weather[2].upper() == 'WIND': icon = 'có gió lớn' elif current_weather[2].upper() == 'CLOUDY': icon = 'trời nhiều mây' elif current_weather[2].upper() == 'FOG': icon = 'trời nhiều sương mù' speaking.speak(current_weather[0] + current_weather[1] + icon) elif "NGÀY MAI" in data: hourly_weather = weth.darksky_hourly(fio) speaking.speak(' nhìn chung ' + hourly_weather) else: speaking.speak('em không hiểu') answer('đang kiểm tra thông tin thời tiết', 'để em kiểm tra', 'em kiểm tra ngay') execute.run_thread(wt, data) # TIN RADIO elif row0_in_db == "TIN VẮN": import zing if seed == 1: pixels.speak() playlist = news.getlink(data) player = zing.phat_zing(playlist) speaking.speak('Đang chuẩn bị phát tin vắn radio') player.play() if 'TIẾP' in data: print('Next') player.next() if 'TRƯỚC' in data: print('Prev') player.previous() if seed == 1: pixels.off() # ZING elif row0_in_db == "ZING": if seed == 1: pixels.speak() import zing, vlc playlist = zing.zing_song(data) player = zing.phat_zing(playlist) speaking.speak('Đang chuẩn bị phát top 100 ca khúc trên Zing') player.play() if 'TIẾP' in data: print('Next') player.next() if 'TRƯỚC' in data: print('Prev') player.previous() if seed == 1: pixels.off() else: if seed == 1: pixels.speak() answer('em không hiểu', 'em nghe không rõ', ' vui lòng nói lại đi') if seed == 1: pixels.off()
def hamthucthi(row0_in_db, data, friendly_name_hass, sta): global player print('[MAIN] - THỰC THI TÁC VỤ') print('---------') processss.timlenhtrongdata(data) if row0_in_db == "KHỎE KHÔNG": answer("tôi khỏe.", "khỏe lắm chủ nhân", "khỏe chứ chủ nhân.") #camera - dieu khien xoay elif row0_in_db == "CAMERA": print('vao camera') a = ptz.control('http://192.168.9.121', 'admin', 'Emilybro2013') datapreset = data datapreset = datapreset.split() iiii = 0 while iiii < len(datapreset): if datapreset[iiii].isnumeric() == True: preset_number = datapreset[iiii] break else: iiii += 1 try: a.set_preset(preset_number) except: pass if 'LÊN' in data.upper(): print('vao len') a.len() time.sleep(2) return if 'XUỐNG' in data.upper(): a.xuong() time.sleep(2) return if 'TRÁI' in data.upper(): a.trai() time.sleep(2) return if 'PHẢI' in data.upper(): a.phai() time.sleep(2) return # Âm lịch elif row0_in_db == "ÂM LỊCH": check_day = [] if 'MAI' in data: check_day = amlich.ngaymai() elif 'MỐT' in data: check_day = amlich.ngaymot() elif 'QUA' in data: check_day = amlich.homqua() elif 'NAY' in data: check_day = amlich.homnay() else: check_day = amlich.ngaykhac(data) amlich.kiemtra_amlich(check_day[0], check_day[1], check_day[2], check_day[3], check_day[4]) #Hỏi thứ elif row0_in_db == "THỨ MẤY": check_thu = [] if 'MAI' in data: check_thu = thu.ngaymai() elif 'MỐT' in data: check_thu = thu.ngaymot() elif 'QUA' in data: check_thu = thu.homqua() elif 'NAY' in data: check_thu = thu.homnay() else: check_thu = thu.ngaykhac(data) result_thu = thu.kiemtra_thu(check_thu[0], check_thu[1], check_thu[2], check_thu[3], check_thu[4]) speaking.speak(result_thu[0] + " là " + result_thu[1] + result_thu[2] + ' tháng ' + str(result_thu[3])) # Ngày lễ elif row0_in_db == "NGÀY LỄ": ngayle_res = [] ngayle_res = ngayle.ngayle_check(data) speaking.speak(ngayle_res[0] + ' Còn ' + str(ngayle_res[1]) + ' ngày nữa là đến ' + ngayle_res[2] + '. Đó là ngày ' + ngayle_res[3] + ' tháng ' + ngayle_res[4] + ' năm ' + ngayle_res[5]) #Cảm ơn elif row0_in_db == "CẢM ƠN": answer('không có chi. ', 'rất vui vì giúp được chủ nhân ', ' đừng bận tâm ') #HELP elif row0_in_db == "TRỢ GIÚP": if 'THỜI TIẾT' in data: speaking.speak( 'Có thể hỏi các câu hỏi bao gồm các từ như, Thời tiết hôm nay, ngày mai' ) elif 'GIỜ' in data: speaking.speak('Đặt câu hỏi mấy giờ rồi') elif 'NGÀY' in data: speaking.speak( 'Hỏi thứ mấy, ngày nào. Có thể hỏi ngày mai là thứ mấy, ngày 30 tháng 4 là thứ mấy, vv.' ) elif 'ÂM LỊCH' in data: speaking.speak('Hỏi âm lịch hôm nay, ngày mai, ngày bất kì') elif 'DỊCH' in data: speaking.speak( 'Dịch từ tHoặc dịch cả câu với cấu trức: Dịch câu sau sang tiếng nào đó. Sau đó chờ âm báo rồi đọc câu. Ngôn ngữ hỗ trợ: Việt, chủ nhân, Trung, Nhật, Hàn.' ) elif 'THÔNG TIN' in data: speaking.speak( 'Có thể hỏi thông tin bằng câu với kết thúc là gì hoặc là ai. Ví dụ, Hồ Chí Minh là ai.' ) elif 'LỆNH' in data: speaking.speak( 'Có thể bật, tắt, điều chỉnh nhiệt độ máy lạnh .... bằng các câu lệnh đơn giản như: bật đèn, tắt đèn, ....' ) elif 'NHẠC' in data: speaking.speak( 'Dùng lệnh Phát rồi gọi tên bài hát, playlist muốn nghe. Muốn qua bài thì dùng lệnh Tiếp theo. Dừng với lệnh Dừng nhạc' ) elif 'HẸN GIỜ' in data: speaking.speak( 'Dùng lệnh hẹn giờ cộng thời gian, hủy với lệnh hủy hẹn giờ') elif 'NGÀY LỄ' in data: speaking.speak( 'Hỏi còn bao nhiêu ngày nữa là đến ngày lễ. Các ngày lễ có sẵn bao gồm, Tết Tây, Tết ta, 30 tháng 4, trung thu, giỗ tổ, quốc khánh. ' ) else: speaking.speak( 'Các lệnh thường dùng, Hỏi giờ, thời tiết, thứ ngày tháng, thông tin, lệnh, phát nhạc, hẹn giờ, dịch từ, dịch câu, âm lịch, ngày lễ. Dùng lệnh trợ giúp kèm theo các lệnh muốn tra cứu để được hướng dẫn chi tiết hơn.' ) #Hỏi giờ elif row0_in_db == "MẤY GIỜ": import speaking from time import ctime, strftime gio = strftime("%H") gio = list(gio) phut = strftime("%M") phut = list(phut) if gio[0] == '1': if gio[1] == '0': docgio = 'mười giờ ' else: docgio = 'mười ' + gio[1] + ' giờ ' elif gio[0] == '0': docgio = gio[1] + ' giờ ' elif gio[0] == '2': if gio[1] == '0': docgio = 'hai mươi giờ ' elif gio[1] == '1': docgio = 'hai mươi mốt giờ ' else: docgio = 'hai mươi ' + gio[1] + ' giờ ' if phut[0] == '0': docphut = phut[1] + ' phút ' elif phut[0] == '1': if phut[1] == '0': docphut = ' mười phút ' else: docphut = ' mười ' + phut[1] + ' phút ' else: if phut[1] == '0': docphut = phut[0] + ' mươi phút ' elif phut[1] == '1': docphut = phut[0] + ' mươi mốt phút ' else: docphut = phut[0] + ' mươi ' + phut[1] + ' phút ' speaking.speakvn("BÂY GIỜ LÀ " + docgio + docphut) #Tin tức (TTS) elif row0_in_db == "TIN TỨC": tintuc.tintucmoi() elif row0_in_db == "XỔ SỐ": print('Kết quả xổ số') loto.check(data) #Truyện cười elif row0_in_db == "CƯỜI": truyen = fun.truyen() speaking.speak(truyen) elif row0_in_db == "RADIO": try: player.stop() except: pass player = radio.phat_radio(data) elif row0_in_db == "ĐI NGỦ": pass elif row0_in_db == "LÀ GÌ": def wifi(data): data = data[0:len(data) - 6] rep = wk.find_info(data) rep = rep.find_wiki() speaking.speak('Theo wikipedia: ' + rep) speaking.speak('để tôi tìm xem nào') execute.run_thread(wifi, data) # Phát video elif row0_in_db == "PHÁT": if spotify == 1: global spotipy try: player.stop() except: pass spotipy = spot.play_current_playlist(spotify_username, spotify_client_id, spotify_client_secret, 'http://localhost:9999/', data) if spotify == 0: global link_yt try: we.put('quit') w.put('quit') wet.put('quit') except: print('er put') we = queue.Queue() locationtim = data.find('PHÁT') data = data[locationtim + 5:len(data)] query_string = urllib.parse.urlencode({"search_query": data}) html_content = urllib.request.urlopen( "http://www.youtube.com/results?" + query_string) search_results = re.findall(r'href=\"\/watch\?v=(.{11})', html_content.read().decode()) random_song = random.randint(0, 10) urlyt = "http://www.youtube.com/watch?v=" + search_results[ random_song] search_pre_write = (search_results[0], search_results[1], search_results[2], search_results[3], search_results[4], search_results[5], search_results[6], search_results[7], search_results[8], search_results[9], search_results[10], random_song) import speaking import threading import vlc import pafy import gih speaking.speakvn('Chuẩn bị phát nhạc') def yt_play(urlyt, we): try: video = pafy.new(urlyt) best = video.getbestaudio() playurl = best.url Instance = vlc.Instance() player = Instance.media_player_new() Media = Instance.media_new(playurl) Media.get_mrl() player.set_media(Media) player.play() we.put('start') m = alsaaudio.Mixer() vol = m.getvolume() vol = int(vol[0]) player_volume = vol player.audio_set_volume(player_volume) while True: player.play() item = we.get() if item == 'quit': player.stop() break if item == 'listen_mode': m = alsaaudio.Mixer() vol = m.getvolume() vol = int(vol[0]) player_volume = vol player.audio_set_volume(player_volume - 35) if item == 'normal_mode': m = alsaaudio.Mixer() vol = m.getvolume() vol = int(vol[0]) player_volume = vol player.audio_set_volume(player_volume - 35) time.sleep(0.7) player.audio_set_volume(player_volume - 25) time.sleep(0.7) player.audio_set_volume(player_volume - 15) time.sleep(0.7) player.audio_set_volume(player_volume) except Exception as e: print('error vlc') print(e) t = threading.Thread(target=yt_play, args=(urlyt, we)) t.start() link_yt = gih.info_user() with link_yt: link_yt_ex = link_yt.cursor() link_yt_ex.execute( "INSERT INTO link_music_youtube VALUES(?,?,?,?,?,?)", search_pre_write) else: player = radio.play_nhac(data, friendly_name_hass) player.play() elif row0_in_db == "TIẾP THEO": if spotify == 1: try: player.stop() except: pass spotipy = spot.play_current_playlist(spotify_username, spotify_client_id, spotify_client_secret, 'http://localhost:9999/', data) else: player = radio.phat_tiep_theo() # Google word translate elif row0_in_db == "CÓ NGHĨA": from googletrans import Translator translator = Translator() print(data) data = data.replace('TỪ ', '') data = data.replace('TRONG ', '') # print ('Edit ' + data) # To Vietnamese if 'VIỆT' in data: m = re.search('(.+?) TIẾNG VIỆT', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='vi') print(translations.text) speaking.speak('Từ ') speaking.speaken(dataen) speaking.speak('trong tiếng việt nghĩa là: ' + translations.text) #To English elif 'TIẾNG chủ nhân' in data: m = re.search('(.+?) TIẾNG chủ nhân', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='en') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng chủ nhân nghĩa là: ') speaking.speaken(translations.text) # To Korean elif 'TIẾNG HÀN' in data: m = re.search('(.+?) TIẾNG HÀN', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='ko') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng Hàn nghĩa là: ') speaking.speakko(translations.text) # To Japanese elif 'TIẾNG NHẬT' in data: m = re.search('(.+?) TIẾNG NHẬT', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='ja') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng Nhật nghĩa là: ') speaking.speakja(translations.text) # To Chinese elif 'TIẾNG TRUNG' in data: m = re.search('(.+?) TIẾNG TRUNG', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='zh-cn') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng TRUNG nghĩa là: ') speaking.speakzh(translations.text) # Google sentence translate elif row0_in_db == "DỊCH CÂU": from googletrans import Translator translator = Translator() continue_go = 1 speaking.speak('OK, đọc câu cần dịch đi chủ nhân') processss.mixer.music.load('resources/ding.wav') processss.mixer.music.play() more_data = processss.re_ask() print(more_data) if len(more_data) > 0: while True: print('Google translate: ' + data) print('Data translate: ' + more_data) processss.mixer.music.load('resources/dong.wav') processss.mixer.music.play() if 'TIẾNG ANH' in data: translations = translator.translate(more_data, dest='en') print(translations.text) speaking.speaken(translations.text) continue_go = 1 if 'TIẾNG VIỆT' in data: translations = translator.translate(more_data, dest='vi') print(translations.text) speaking.speak(translations.text) continue_go = 1 if 'TIẾNG HÀN' in data: translations = translator.translate(more_data, dest='ko') print(translations.text) speaking.speakko(translations.text) continue_go = 1 if 'TIẾNG TRUNG' in data: translations = translator.translate(more_data, dest='zh-cn') print(translations.text) speaking.speakzh(translations.text) continue_go = 1 if 'TIẾNG NHẬT' in data: translations = translator.translate(more_data, dest='ja') print(translations.text) speaking.speakja(translations.text) continue_go = 1 if 'HỦY' in more_data: speaking.speak('thoát khỏi chế độ dịch') continue_go = 0 break else: break else: speaking.speakvn('Xin lỗi, tôi không nghe được câu hỏi') # Hẹn giờ elif row0_in_db == "HẸN GIỜ": onoff.hen_gio(data) elif row0_in_db == "HỦY HẸN GIỜ": onoff.t1.cancel() speaking.speak("đã hủy hẹn giờ ") elif row0_in_db == "DỪNG": if spotify == 1: try: player.stop() except Exception as e: print(e) pass at = spot.spo(spotify_username, spotify_client_id, spotify_client_secret, 'http://localhost:9999/') sp = at.assign() de = sp.devices() de = de['devices'] for des in de: print(des['id']) try: at.pause(sp, des['id']) except Exception as t: print(t) pass else: try: w.put('quit') except: pass try: we.put('quit') except: pass try: wet.put('quit') except: pass elif row0_in_db == "TO LÊN": radio.to_len() elif row0_in_db == "NHỎ XUỐNG": radio.nho_xuong() elif row0_in_db == "ÂM LƯỢNG": vol_extract = radio.amluong(data) speaking.speak("thiết lập âm lượng mức " + str(vol_extract)) elif row0_in_db == "THIẾT LẬP": onoff.thietlap(friendly_name_hass, sta, data) elif row0_in_db == "MỞ": onoff.on_mo(friendly_name_hass, data) elif row0_in_db == "TẮT": onoff.off_tat(friendly_name_hass, data) elif row0_in_db == "TÊN": if "tôi" in data: answer( 'tôi là BOT LB', 'tôi là LB ', 'tôi tên LB', ) elif row0_in_db == "": speaking.speak('tôi không hiểu rồi đại ca ơi') # Trạng thái elif row0_in_db == "TRẠNG THÁI": onoff.trangthai(sta) #Thời tiết elif row0_in_db == "THỜI TIẾT": import speaking import gih latlong = gih.get_config('toado') import datetime from datetime import timedelta x = datetime.datetime.now() answer('đang kiểm tra thông tin thời tiết', 'để tôi kiểm tra', 'tôi kiểm tra ngay') if 'NGÀY MAI' in data: y = x + datetime.timedelta(1) day = str(y.day) tt = wt.weekly('latlon', latlong) speaking.speakvn('Ngày mai ' + tt[day]['overal'] + ', Nhiệt độ thấp nhất ' + str(tt[day]['mintemp']) + ' độ C, Nhiệt độ cao nhất ' + str(tt[day]['maxtemp']) + ' độ C, độ ẩm là ' + str(tt[day]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]['wind']) + ' km/h.') elif 'HÔM NAY' in data: tt = wt.current('latlon', latlong) speaking.speakvn('Hôm nay ' + tt['overal'] + ', Nhiệt độ là ' + str(tt['temp']) + ' độ C, độ ẩm là ' + str(tt['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt['wind']) + ' km/h.') elif 'GIỜ TỚI' in data: string = data num = [int(s) for s in string.split() if s.isdigit()] if len(num) > 0: from datetime import timedelta y = x + timedelta(hours=num[0]) if y.hour < 25: day = 'today' ngay = ' giờ hôm nay ' elif y.hour > 24: day = 'tomorrow' ngay = ' giờ ngày mai ' tt = wt.hourly('latlon', latlong) speaking.speakvn('Thời tiết lúc ' + str(y.hour) + ngay + tt[day]["%.1f" % y.hour]['overal'] + ', Nhiệt độ là ' + str(tt[day]["%.1f" % y.hour]['temp']) + ' độ C, độ ẩm là ' + str(tt[day]["%.1f" % y.hour]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]["%.1f" % y.hour]['wind']) + ' km/h.') else: pass elif 'TUẦN' in data.upper(): for i in range(1, 7): y = x + datetime.timedelta(i) day = str(y.day) tt = wt.weekly('latlon', latlong) speaking.speakvn('Ngày ' + day + tt[day]['overal'] + ', Nhiệt độ thấp nhất ' + str(tt[day]['mintemp']) + ' độ C, Nhiệt độ cao nhất ' + str(tt[day]['maxtemp']) + ' độ C, độ ẩm là ' + str(tt[day]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]['wind']) + ' km/h.') elif 'NGÀY TỚI' in data.upper(): string = data num = [int(s) for s in string.split() if s.isdigit()] if len(num) > 0: for i in range(0, num): y = x + datetime.timedelta(i) day = str(y.day) tt = wt.weekly('latlon', latlong) speaking.speak('Ngày ' + day + tt[day]['overal'] + ' Nhiệt độ thấp nhất ' + str(tt[day]['mintemp']) + ' độ C ' + ' Nhiệt độ cao nhất ' + str(tt[day]['maxtemp']) + ' độ C, độ ẩm là ' + str(tt[day]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]['wind']) + ' km/h.') else: tt = wt.current('latlon', latlong) speaking.speakvn('Hôm nay ' + tt['overal'] + ', Nhiệt độ là ' + str(tt['temp']) + ' độ C, độ ẩm là ' + str(tt['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt['wind']) + ' km/h.') else: answer('tôi không hiểu', 'tôi nghe không rõ', ' vui lòng nói lại đi')
def hamthucthi(row0_in_db, data, friendly_name_hass, sta): global player print('[MAIN] - THỰC THI TÁC VỤ') print('---------') processss.timlenhtrongdata(data) if row0_in_db == "KHỎE KHÔNG": answer( "tôi khỏe. ", "khỏe lắm chủ nhân ", "khỏe chứ chủ nhân. ", ) #camera - dieu khien xoay elif row0_in_db == "CAMERA": print('vao camera') a = ptz.control('http://192.168.9.121', 'admin', 'Emilybro2013') datapreset = data datapreset = datapreset.split() iiii = 0 while iiii < len(datapreset): if datapreset[iiii].isnumeric() == True: preset_number = datapreset[iiii] break else: iiii += 1 try: a.set_preset(preset_number) except: pass if 'LÊN' in data.upper(): print('vao len') a.len() time.sleep(2) return if 'XUỐNG' in data.upper(): a.xuong() time.sleep(2) return if 'TRÁI' in data.upper(): a.trai() time.sleep(2) return if 'PHẢI' in data.upper(): a.phai() time.sleep(2) return # Âm lịch elif row0_in_db == "ÂM LỊCH": check_day = [] if 'MAI' in data: check_day = amlich.ngaymai() elif 'MỐT' in data: check_day = amlich.ngaymot() elif 'QUA' in data: check_day = amlich.homqua() elif 'NAY' in data: check_day = amlich.homnay() else: check_day = amlich.ngaykhac(data) amlich.kiemtra_amlich(check_day[0], check_day[1], check_day[2], check_day[3], check_day[4]) #Hỏi thứ elif row0_in_db == "THỨ MẤY": check_thu = [] if 'MAI' in data: check_thu = thu.ngaymai() elif 'MỐT' in data: check_thu = thu.ngaymot() elif 'QUA' in data: check_thu = thu.homqua() elif 'NAY' in data: check_thu = thu.homnay() else: check_thu = thu.ngaykhac(data) result_thu = thu.kiemtra_thu(check_thu[0], check_thu[1], check_thu[2], check_thu[3], check_thu[4]) speaking.speak(result_thu[0] + " là " + result_thu[1] + result_thu[2] + ' tháng ' + str(result_thu[3])) # Ngày lễ elif row0_in_db == "NGÀY LỄ": # answer('không có chi. ','rất vui vì giúp được chủ nhân ',' đừng bận tâm ') ngayle_res = [] ngayle_res = ngayle.ngayle_check(data) speaking.speak(ngayle_res[0] + ' Còn ' + str(ngayle_res[1]) + ' ngày nữa là đến ' + ngayle_res[2] + '. Đó là ngày ' + ngayle_res[3] + ' tháng ' + ngayle_res[4] + ' năm ' + ngayle_res[5]) #Cảm ơn elif row0_in_db == "CẢM ƠN": answer('không có chi. ', 'rất vui vì giúp được chủ nhân ', ' đừng bận tâm ') #HELP elif row0_in_db == "TRỢ GIÚP": if 'THỜI TIẾT' in data: speaking.speak( 'Có thể hỏi các câu hỏi bao gồm các từ như, Thời tiết hôm nay, ngày mai' ) elif 'GIỜ' in data: speaking.speak('Đặt câu hỏi mấy giờ rồi') elif 'NGÀY' in data: speaking.speak( 'Hỏi thứ mấy, ngày nào. Có thể hỏi ngày mai là thứ mấy, ngày 30 tháng 4 là thứ mấy, vv.' ) elif 'ÂM LỊCH' in data: speaking.speak('Hỏi âm lịch hôm nay, ngày mai, ngày bất kì') elif 'DỊCH' in data: speaking.speak( 'Dịch từ tHoặc dịch cả câu với cấu trức: Dịch câu sau sang tiếng nào đó. Sau đó chờ âm báo rồi đọc câu. Ngôn ngữ hỗ trợ: Việt, chủ nhân, Trung, Nhật, Hàn.' ) elif 'THÔNG TIN' in data: speaking.speak( 'Có thể hỏi thông tin bằng câu với kết thúc là gì hoặc là ai. Ví dụ, Hồ Chí Minh là ai.' ) elif 'LỆNH' in data: speaking.speak( 'Có thể bật, tắt, điều chỉnh nhiệt độ máy lạnh .... bằng các câu lệnh đơn giản như: bật đèn, tắt đèn, ....' ) elif 'NHẠC' in data: speaking.speak( 'Dùng lệnh Phát rồi gọi tên bài hát, playlist muốn nghe. Muốn qua bài thì dùng lệnh Tiếp theo. Dừng với lệnh Dừng nhạc' ) elif 'HẸN GIỜ' in data: speaking.speak( 'Dùng lệnh hẹn giờ cộng thời gian, hủy với lệnh hủy hẹn giờ') elif 'NGÀY LỄ' in data: speaking.speak( 'Hỏi còn bao nhiêu ngày nữa là đến ngày lễ. Các ngày lễ có sẵn bao gồm, Tết Tây, Tết ta, 30 tháng 4, trung thu, giỗ tổ, quốc khánh. ' ) else: speaking.speak( 'Các lệnh thường dùng, Hỏi giờ, thời tiết, thứ ngày tháng, thông tin, lệnh, phát nhạc, hẹn giờ, dịch từ, dịch câu, âm lịch, ngày lễ. Dùng lệnh trợ giúp kèm theo các lệnh muốn tra cứu để được hướng dẫn chi tiết hơn.' ) #Hỏi giờ elif row0_in_db == "MẤY GIỜ": from time import ctime, strftime gio = strftime("%H") gio = list(gio) phut = strftime("%M") phut = list(phut) if gio[0] == '1': if gio[1] == '0': docgio = 'mười giờ ' else: docgio = 'mười ' + gio[1] + ' giờ ' elif gio[0] == '0': docgio = gio[1] + ' giờ ' elif gio[0] == '2': if gio[1] == '0': docgio = 'hai mươi giờ ' elif gio[1] == '1': docgio = 'hai mươi mốt giờ ' else: docgio = 'hai mươi ' + gio[1] + ' giờ ' if phut[0] == '0': docphut = phut[1] + ' phút ' elif phut[0] == '1': if phut[1] == '0': docphut = ' mười phút ' else: docphut = ' mười ' + phut[1] + ' phút ' else: if phut[1] == '0': docphut = phut[0] + ' mươi phút ' elif phut[1] == '1': docphut = phut[0] + ' mươi mốt phút ' else: docphut = phut[0] + ' mươi ' + phut[1] + ' phút ' speaking.speak("BÂY GIỜ LÀ " + docgio + docphut) #Tin tức (TTS) elif row0_in_db == "TIN TỨC": tintuc.tintucmoi() elif row0_in_db == "XỔ SỐ": print('Kết quả xổ số') loto.check(data) #Truyện cười elif row0_in_db == "CƯỜI": truyen = fun.truyen() speaking.speak(truyen) #Hỏi ngày # if row0_in_db=="VỊ TRÍ": # if "CỦA" in data: # locationcua = data.find('CỦA') # data = data[locationcua+4:len(data)] # location = data.strip(" ") # speaking.speak("đây là vị trí của " + location ) # webbrowser.open("https://www.google.nl/maps/place/" + location + "/&") # elif row0_in_db == 'NHẮC': elif row0_in_db == "RADIO": try: player.stop() except: pass player = radio.phat_radio(data) elif row0_in_db == "ĐI NGỦ": pass elif row0_in_db == "LÀ GÌ": def wifi(data): data = data[0:len(data) - 6] rep = wk.find_info(data) rep = rep.find_wiki() speaking.speak('Theo wikipedia: ' + rep) speaking.speak('để tôi tìm xem nào') execute.run_thread(wifi, data) # Phát video elif row0_in_db == "PHÁT": global spotipy try: player.stop() except: pass spotipy = spot.play_current_playlist( 'j81xwhr6zxkba3a5txkhrbsz0', 'd6881de9093040d8b9c18d669224b559', '8f233b0f5037456b9c5e084f3f069efd', 'http://localhost:9999/', data) if spotipy[0] == False: player = radio.play_nhac(data, friendly_name_hass) elif row0_in_db == "TIẾP THEO": try: player.stop() except: pass player = radio.phat_tiep_theo() # Google word translate elif row0_in_db == "CÓ NGHĨA": from googletrans import Translator translator = Translator() print(data) data = data.replace('TỪ ', '') data = data.replace('TRONG ', '') # print ('Edit ' + data) # To Vietnamese if 'VIỆT' in data: m = re.search('(.+?) TIẾNG VIỆT', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='vi') print(translations.text) speaking.speak('Từ ') speaking.speaken(dataen) speaking.speak('trong tiếng việt nghĩa là: ' + translations.text) #To English elif 'TIẾNG chủ nhân' in data: m = re.search('(.+?) TIẾNG chủ nhân', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='en') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng chủ nhân nghĩa là: ') speaking.speaken(translations.text) # To Korean elif 'TIẾNG HÀN' in data: m = re.search('(.+?) TIẾNG HÀN', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='ko') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng Hàn nghĩa là: ') speaking.speakko(translations.text) # To Japanese elif 'TIẾNG NHẬT' in data: m = re.search('(.+?) TIẾNG NHẬT', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='ja') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng Nhật nghĩa là: ') speaking.speakja(translations.text) # To Chinese elif 'TIẾNG TRUNG' in data: m = re.search('(.+?) TIẾNG TRUNG', data) dataen = m.group(1) print(dataen) translations = translator.translate(dataen, dest='zh-cn') print(translations.text) speaking.speak('Từ ' + dataen + ' trong tiếng TRUNG nghĩa là: ') speaking.speakzh(translations.text) # Google sentence translate elif row0_in_db == "DỊCH CÂU": from googletrans import Translator translator = Translator() continue_go = 1 speaking.speak('OK, đọc câu cần dịch đi chủ nhân') more_data = processss.re_ask() print(more_data) # def gconv (data,more_data): # continue_go = 1 # empty = [] if len(more_data) > 0: while True: print('Google translate: ' + data) print('Data translate: ' + more_data) # speaking.speak('') processss.mixer.music.load('resources/ding.wav') processss.mixer.music.play() if 'TIẾNG chủ nhân' in data: translations = translator.translate(more_data, dest='en') print(translations.text) speaking.speaken(translations.text) continue_go = 1 if 'TIẾNG VIỆT' in data: translations = translator.translate(more_data, dest='vi') print(translations.text) speaking.speak(translations.text) continue_go = 1 if 'TIẾNG HÀN' in data: translations = translator.translate(more_data, dest='ko') print(translations.text) speaking.speakko(translations.text) continue_go = 1 if 'TIẾNG TRUNG' in data: translations = translator.translate(more_data, dest='zh-cn') print(translations.text) speaking.speakzh(translations.text) continue_go = 1 if 'TIẾNG NHẬT' in data: translations = translator.translate(more_data, dest='ja') print(translations.text) speaking.speakja(translations.text) continue_go = 1 if 'HỦY' in more_data: speaking.speak('thoát khỏi chế độ dịch') continue_go = 0 break else: break # return more_data, continue_go # Hẹn giờ elif row0_in_db == "HẸN GIỜ": onoff.hen_gio(data) elif row0_in_db == "HỦY HẸN GIỜ": onoff.t1.cancel() speaking.speak("đã hủy hẹn giờ ") elif row0_in_db == "DỪNG": try: player.stop() except Exception as e: print(e) pass at = spot.spo('drlbminh', 'd6881de9093040d8b9c18d669224b559', '8f233b0f5037456b9c5e084f3f069efd', 'http://localhost:9999/') sp = at.assign() de = sp.devices() de = de['devices'] for des in de: print(des['id']) try: at.pause(sp, des['id']) except Exception as t: print(t) pass elif row0_in_db == "TO LÊN": radio.to_len() elif row0_in_db == "NHỎ XUỐNG": radio.nho_xuong() elif row0_in_db == "ÂM LƯỢNG": vol_extract = radio.amluong(data) speaking.speak("thiết lập âm lượng mức " + str(vol_extract)) elif row0_in_db == "THIẾT LẬP": onoff.thietlap(friendly_name_hass, sta, data) elif row0_in_db == "MỞ": onoff.on_mo(friendly_name_hass, data) elif row0_in_db == "TẮT": onoff.off_tat(friendly_name_hass, data) elif row0_in_db == "TÊN": if "tôi" in data: answer( 'tôi là BOT LB', 'tôi là LB ', 'tôi tên LB', ) elif row0_in_db == "": speaking.speak('tôi không hiểu rồi đại ca ơi') # Trạng thái elif row0_in_db == "TRẠNG THÁI": onoff.trangthai(sta) #Thời tiết elif row0_in_db == "THỜI TIẾT": import speaking import gih latlong = gih.get_config('toado') import datetime from datetime import timedelta x = datetime.datetime.now() answer('đang kiểm tra thông tin thời tiết', 'để tôi kiểm tra', 'tôi kiểm tra ngay') if 'NGÀY MAI' in data: y = x + datetime.timedelta(1) day = str(y.day) tt = wt.weekly('latlon', latlong) speaking.speak('Ngày mai ' + tt[day]['overal'] + ', Nhiệt độ thấp nhất ' + str(tt[day]['mintemp']) + ' độ C, Nhiệt độ cao nhất ' + str(tt[day]['maxtemp']) + ' độ C, độ ẩm là ' + str(tt[day]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]['wind']) + ' km/h.') elif 'HÔM NAY' in data: tt = wt.current('latlon', latlong) speaking.speak('Hôm nay ' + tt['overal'] + ', Nhiệt độ là ' + str(tt['temp']) + ' độ C, độ ẩm là ' + str(tt['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt['wind']) + ' km/h.') elif 'GIỜ TỚI' in data: string = data num = [int(s) for s in string.split() if s.isdigit()] if len(num) > 0: from datetime import timedelta y = x + timedelta(hours=num[0]) if y.hour < 25: day = 'today' ngay = ' giờ hôm nay ' elif y.hour > 24: day = 'tomorrow' ngay = ' giờ ngày mai ' tt = wt.hourly('latlon', latlong) speaking.speak('Thời tiết lúc ' + str(y.hour) + ngay + tt[day]["%.1f" % y.hour]['overal'] + ', Nhiệt độ là ' + str(tt[day]["%.1f" % y.hour]['temp']) + ' độ C, độ ẩm là ' + str(tt[day]["%.1f" % y.hour]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]["%.1f" % y.hour]['wind']) + ' km/h.') else: pass elif 'TUẦN' in data.upper(): for i in range(1, 3): y = x + datetime.timedelta(i) day = str(y.day) tt = wt.weekly('latlon', latlong) speaking.speak('Ngày ' + day + tt[day]['overal'] + ', Nhiệt độ thấp nhất ' + str(tt[day]['mintemp']) + ' độ C, Nhiệt độ cao nhất ' + str(tt[day]['maxtemp']) + ' độ C, độ ẩm là ' + str(tt[day]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]['wind']) + ' km/h.') elif 'NGÀY TỚI' in data.upper(): string = data num = [int(s) for s in string.split() if s.isdigit()] if len(num) > 0: for i in range(0, num): y = x + datetime.timedelta(i) day = str(y.day) tt = wt.weekly('latlon', latlong) speaking.speak('Ngày ' + day + tt[day]['overal'] + ' Nhiệt độ thấp nhất ' + str(tt[day]['mintemp']) + ' độ C ' + ' Nhiệt độ cao nhất ' + str(tt[day]['maxtemp']) + ' độ C, độ ẩm là ' + str(tt[day]['hum']) + ' phần trăm, tốc độ gió trung bình ' + str(tt[day]['wind']) + ' km/h.') else: tt = wt.current('latlon', latlong) speaking.speak( 'Xin lỗi, tôi không nghe bạn hỏi thời tiết ngày nào') else: answer('tôi không hiểu', 'tôi nghe không rõ', ' vui lòng nói lại đi')