예제 #1
0
def tintucmoi():
    url = 'https://vnexpress.net'
    page = urllib.request.urlopen(url)
    soup = BeautifulSoup(page, 'html.parser')

    new_feeds = soup.find('section',
                          class_='featured container clearfix').find_all('a')
    i = 0
    tintuc_candoc = ""
    for feed in new_feeds:
        i += 1
        title = feed.get('title')
        if len(str(title)) > 10 and i > 1:
            tintuc_candoc = str(tintuc_candoc) + " . " + str(title)

        if i > 15:

            break

    print(tintuc_candoc)
    speaking.speak(tintuc_candoc)
예제 #2
0
 def more_info_friendly(data, friendly_name):
     continuego = 1
     if friendly_name == []:
         qa = 0
         while qa < 3:
             qa += 1
             speaking.speak('tác vụ cần làm là gì')
             more_data = processss.re_ask()
             if 'HỦY' in more_data.upper():
                 speaking.speak('thoát chế độ hẹn giờ')
                 continuego = 0
                 break
             else:
                 friendly_name = processss.find_hass_friendly_name(
                     more_data)
                 if friendly_name == []:
                     pass
                 else:
                     data = more_data
                     break
     return data, friendly_name, continuego
예제 #3
0
파일: spot.py 프로젝트: vndocker/vinahome
	def devices(self,sp):
		a=sp.devices()
		a=a['devices']
		device_list=[]
		i=1
		for ass in a:
			name=ass['name']
			id=ass['id']
			volume_cur=ass['volume_percent']
			ee=[i,name,id,volume_cur]
			device_list.append(ee)
			print(device_list) 
			i+=1
		if len(device_list)>1:
			speaking.speak('em tìm thấy '+str(len(device_list))+ ' thiết bị đang chạy Spotify, anh cần chạy trên thiết bị nào')
			for ii in device_list:
				speaking.speak('Thiết bị số '+ str(ii[0])+ ' là '+str(ii[1]) )
			hoi_lai=re_ask()
			print(hoi_lai)
			for iis in device_list:
				if str(iis[0]).upper() in str(hoi_lai).upper() or str(iis[1]).upper() in str(hoi_lai).upper():
					id=iis[2]
					namen=iis[1]
					volume_cur=iis[3]
					print(str(id))
					break
				else:
					id=device_list[0][2]
					namen=device_list[0][1]
					volume_cur=device_list[0][3]
					print(str(id))
			return id,namen,volume_cur
		elif len(device_list)==1:
			id=device_list[0][2]
			namen=device_list[0][1]
			volume_cur=device_list[0][3]
			return id,namen,volume_cur
		else:
			sai='no'
			return sai
예제 #4
0
        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')
예제 #5
0
    def more_info_time(data, time_in_data):
        continue_go = 1
        time_in_data = check_time_in(data)
        if time_in_data == []:
            qb = 0
            while qb < 3:
                qb += 1
                speaking.speak('cung cấp thời điểm thực hiện')
                more_data1 = processss.re_ask()
                if 'HỦY' in more_data1.upper():
                    speaking.speak('thoát khỏi chế độ hẹn giờ')
                    continue_go = 0
                    break

                else:
                    time_in_data = check_time_in(more_data1)
                    if time_in_data == []:
                        pass
                    else:
                        break

        return time_in_data, continue_go
def fetchData(url):

    URL = "http://www.weather-forecast.com/locations/" + url + "/forecasts/latest"
    try:
        res = urllib2.urlopen(URL)
    except:
        speaking.speak("Sorry Haven't listen about it")
        return
    data = res.read()
    soup = BeautifulSoup(data, "html.parser")
    #print(data)
    t = soup.find_all("td", class_="num_cell dark temp-color1")
    t += soup.find_all("td", class_="num_cell dark temp-color2")
    t += soup.find_all("td", class_="num_cell dark temp-color3")
    t += soup.find_all("td", class_="num_cell dark temp-color4")
    t += soup.find_all("td", class_="num_cell dark temp-color5")
    temp_list = []

    m = re.search('class="temp"', str(t))
    s = m.end() + 1
    e = re.search('</span>', str(t))
    l = e.start()
    temp_list.append(int(str(t)[s:l]))
    speaking.speak(str(sum(temp_list) / len(temp_list)) + ' Degree Celsius')
예제 #7
0
def bot():
    speaking.speak("What do you want to search")
    data = microphone.record()
    data = urllib.quote(data)
    print(data)
def speak(audioString):
    speaking.speak(audioString)
예제 #9
0
파일: dem.py 프로젝트: vnhome/vinahome
 def wifi(data):
     data = data[0:len(data) - 6]
     rep = wk.find_info(data)
     rep = rep.find_wiki()
     speaking.speak('Theo wikipedia: ' + rep)
예제 #10
0
파일: dem.py 프로젝트: vnhome/vinahome
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')
예제 #11
0
파일: dem.py 프로젝트: vnhome/vinahome
def answer(ans1, ans2, ans3):
    caunoi = [ans1, ans2, ans3]
    spea = random.choice(caunoi)
    speaking.speak(spea)
예제 #12
0
파일: amlich.py 프로젝트: vnhome/vinahome
def kiemtra_amlich(a, ngay, yy, mm, dd):
    lunar_date = S2L(dd, mm, yy)
    ngay_am = str(lunar_date[0])
    list_thang = [
        "tháng Giêng", "tháng Hai", "tháng Ba", "tháng Tư", "tháng Năm",
        "tháng Sáu", "tháng Bảy", "tháng Tám", "tháng Chín", "tháng Mười",
        "tháng Mười một", "tháng Chạp"
    ]
    thang_am = int(str(lunar_date[1])) - 1
    thang_am1 = list_thang[thang_am]
    can = [
        'Canh ', 'Tân ', 'Nhâm ', 'Quý ', 'Giáp ', 'Ất ', 'Bính ', 'Đinh ',
        'Mậu ', 'Kỷ '
    ]
    chi = [
        'Thân', 'Dậu', 'Tuất', 'Hợi', 'Tí', 'Sửu', 'Dần', 'Mão', 'Thìn', 'Tị',
        'Ngọ', "Mùi"
    ]
    nam = int(str(lunar_date[2]))
    vitri_can = nam % 10
    vitri_chi = nam % 12
    nam_am = str(lunar_date[2])
    # lunar_text2 = 'Ngày: ' + str(lunar_date[0]) + ' - ' + thang_am1  + ' năm '  + can[vitri_can] + chi[vitri_chi] + ' (' +  str(lunar_date[2]) +')'
    ss = int(ngay_am)
    nam_nhuan = int(str(lunar_date[3]))
    if ss == 15:
        speaking.speak(a + " là ngày rằm " + thang_am1 + 'năm ' +
                       can[vitri_can] + ' ' + chi[vitri_chi] + ' ' + nam_am)
    elif ss == 1:
        speaking.speak(a + " là ngày mùng một " + thang_am1 + 'năm ' +
                       can[vitri_can] + ' ' + chi[vitri_chi] + ' ' + nam_am)
    elif ss > 1 and ss < 15:
        days_left = 15 - ss
        speaking.speak(a + " là ngày " + ngay_am + ' ' + thang_am1 + ' năm ' +
                       can[vitri_can] + ' ' + chi[vitri_chi] + ' ' + nam_am +
                       ". Còn " + str(days_left) + " ngày nữa là đến rằm")
    elif ss > 15 and ss < 31:
        thang_sau = thang_am + 1
        if thang_am <= 12:
            nam_a = nam_am
        else:
            nam_a = nam_am + 1
            # ny = yy + 1
            a2d = L2S(28, 12, yy, nam_nhuan)
            nd = a2d[0]
            td = a2d[1]
            nmd = a2d[2]
            daa = str(nd) + '-' + str(td) + '-' + str(nmd)
            a2dnew = datetime.datetime.strptime(daa, '%d-%m-%Y')
            ngaytet = a2dnew.day
            thangtet = a2dnew.month
            namtet = a2dnew.year
            nammoi = S2L(ngaytet, thangtet, namtet)
            nam_nhuan = int(str(nammoi[3]))
        next = L2S(1, thang_sau, int(nam_a), nam_nhuan)
        nd = next[0]
        td = next[1]
        nmd = next[2]
        daa = str(nd) + '-' + str(td) + '-' + str(nmd)
        a2dnew = datetime.datetime.strptime(daa, '%d-%m-%Y')
        delta = a2dnew - datetime.datetime.today()
        days_left = delta.days
        thang_am = list_thang[thang_am]
        ngay_am = str(lunar_date[0])
        speaking.speak(a + ' là ngày ' + ngay_am + ' ' + thang_am + ' năm ' +
                       can[vitri_can] + ' ' + chi[vitri_chi] + ' ' + nam_am)
    else:
        speaking.speak(
            str(a) + '  là ngày ' + str(ngay_am) + ' ' + str(thang_am) +
            ' năm ' + str(can[vitri_can]) + ' ' + str(chi[vitri_chi]) + ' ' +
            str(nam_am))
예제 #13
0
def check(data):
    diaphuong = [
        'NAM', 'TRUNG', 'MIỀN BẮC', 'AN GIANG', 'BÌNH DƯƠNG', 'BÌNH ĐỊNH',
        'BẠC LIÊU', 'BÌNH PHƯỚC', 'BẾN TRE', 'BÌNH THUẬN', 'CÀ MAU', 'CẦN THƠ',
        'ĐẮC LẮC', 'ĐỒNG NAI', 'ĐÀ NẴNG', 'ĐẮC NÔNG', 'ĐỒNG THÁP', 'GIA LAI',
        'THÀNH PHỐ', 'HẬU GIANG', 'KIÊN GIANG', 'KHÁNH HÒA', 'KON TUM',
        'LONG AN', 'LÂM ĐỒNG', 'NINH THUẬN', 'PHÚ YÊN', 'QUẢNG BÌNH',
        'QUẢNG NGÃI', 'QUẢNG NAM', 'QUẢNG TRỊ', 'SÓC TRĂNG', 'TIỀN GIANG',
        'TÂY NINH', 'HUẾ', 'TRÀ VINH', 'VĨNH LONG', 'VŨNG TÀU'
    ]
    diaphuong_ = np.array(diaphuong)
    rss = [
        'https://xskt.com.vn/rss-feed/mien-nam-xsmn.rss',
        'https://xskt.com.vn/rss-feed/mien-trung-xsmt.rss',
        'https://xskt.com.vn/rss-feed/mien-bac-xsmb.rss',
        'https://xskt.com.vn/rss-feed/an-giang-xsag.rss',
        'https://xskt.com.vn/rss-feed/binh-duong-xsbd.rss',
        'https://xskt.com.vn/rss-feed/binh-dinh-xsbdi.rss',
        'https://xskt.com.vn/rss-feed/bac-lieu-xsbl.rss',
        'https://xskt.com.vn/rss-feed/binh-phuoc-xsbp.rss',
        'https://xskt.com.vn/rss-feed/ben-tre-xsbt.rss',
        'https://xskt.com.vn/rss-feed/binh-thuan-xsbth.rss',
        'https://xskt.com.vn/rss-feed/ca-mau-xscm.rss',
        'https://xskt.com.vn/rss-feed/can-tho-xsct.rss',
        'https://xskt.com.vn/rss-feed/dac-lac-xsdlk.rss',
        'https://xskt.com.vn/rss-feed/dong-nai-xsdn.rss',
        'https://xskt.com.vn/rss-feed/da-nang-xsdng.rss',
        'https://xskt.com.vn/rss-feed/dac-nong-xsdno.rss',
        'https://xskt.com.vn/rss-feed/dong-thap-xsdt.rss',
        'https://xskt.com.vn/rss-feed/gia-lai-xsgl.rss',
        'https://xskt.com.vn/rss-feed/tp-hcm-xshcm.rss',
        'https://xskt.com.vn/rss-feed/hau-giang-xshg.rss',
        'https://xskt.com.vn/rss-feed/kien-giang-xskg.rss',
        'https://xskt.com.vn/rss-feed/khanh-hoa-xskh.rss',
        'https://xskt.com.vn/rss-feed/kon-tum-xskt.rss',
        'https://xskt.com.vn/rss-feed/long-an-xsla.rss',
        'https://xskt.com.vn/rss-feed/lam-dong-xsld.rss',
        'https://xskt.com.vn/rss-feed/ninh-thuan-xsnt.rss',
        'https://xskt.com.vn/rss-feed/phu-yen-xspy.rss',
        'https://xskt.com.vn/rss-feed/quang-binh-xsqb.rss',
        'https://xskt.com.vn/rss-feed/quang-ngai-xsqng.rss',
        'https://xskt.com.vn/rss-feed/quang-nam-xsqnm.rss',
        'https://xskt.com.vn/rss-feed/quang-tri-xsqt.rss',
        'https://xskt.com.vn/rss-feed/soc-trang-xsst.rss',
        'https://xskt.com.vn/rss-feed/tien-giang-xstg.rss',
        'https://xskt.com.vn/rss-feed/tay-ninh-xstn.rss',
        'https://xskt.com.vn/rss-feed/thua-thien-hue-xstth.rss',
        'https://xskt.com.vn/rss-feed/tra-vinh-xstv.rss',
        'https://xskt.com.vn/rss-feed/vinh-long-xsvl.rss',
        'https://xskt.com.vn/rss-feed/vung-tau-xsvt.rss'
    ]
    loc = pos_tag(data)
    #	print(loc)
    m = np.array(loc)
    n = np.intersect1d(diaphuong_, m)
    nn = str(n[0])
    print('Địa phuong: ' + nn)
    o = diaphuong.index(nn)
    url = str(rss[o])
    d = feedparser.parse(url)
    if 'CŨ HƠN' in data:
        tg = d['entries'][1]['title']
        kq = d['entries'][1]['description']
#		print(kq)
    else:
        tg = d['entries'][0]['title']
        kq = d['entries'][0]['description']
        print(kq)
    kq = kq.replace(']', ': ')
    kq = kq.replace('ĐB:', 'Giải đặc biệt:')
    kq = kq.replace('1:', 'Giải nhất:')
    kq = kq.replace('2:', 'Giải nhì:')
    kq = kq.replace('3:', 'Giải ba:')
    kq = kq.replace('4:', 'Giải tư:')
    kq = kq.replace('5:', 'Giải năm:')
    kq = kq.replace('6:', 'Giải sáu:')
    kq = kq.replace('7:', 'Giải bảy:')
    x = kq.split("[")
    speaking.speak(tg)
    ketqua = '. '.join(x)
    ketqua = ketqua.replace('\n', '. ')
    speaking.speak(ketqua)
    return ketqua
    print(ketqua)
예제 #14
0
    try:
        # volume=dem.spotipy[1].devices(dem.spotipy[0])
        # volume=volume[2]
        print('volume sau khi giam: ' + str(volume))
        spotipy.volume(volume - 35)
        time.sleep(0.1)
        spotipy.volume(volume - 20)
        time.sleep(0.1)
        spotipy.volume(volume)
    except Exception as e:
        print('spotify: ' + str(e))
    pixels.pixels.off()
    print(colored('*****************SẴN SÀNG CHỜ GỌI****************',
                  'green'))

speaking.speak('Xin chào, tôi là Jarvis, trợ lý ảo cho ngôi nhà thông minh.')
print(
    '------------------------------------------------------------------------------'
)
print('')
time.sleep(0.1)
print(
    colored('[MAIN]: THIẾT LẬP - Home Assistant tại địa chỉ: ' + domain,
            'yellow'))
print('')
time.sleep(0.1)
t = gih.getinfo(domain, password, con1)

if t == True:
    speaking.speak(
        'Kết nối thành công với trung tâm điều khiển nhà. Sẵn sàng chờ lệnh của bạn.'
예제 #15
0
def hen_gio(data):
    global t1
    from threading import Timer

    from time import ctime, strftime

    def check_time_in(xi_tin):
        split_lan1 = xi_tin.split()

        for m in range(0, len(split_lan1)):

            if ":" in split_lan1[m]:
                split_lan2 = split_lan1[m].split(":")

                break
            else:
                split_lan2 = []
        return split_lan2

    def more_info_friendly(data, friendly_name):
        continuego = 1
        if friendly_name == []:
            qa = 0
            while qa < 3:
                qa += 1
                speaking.speak('tác vụ cần làm là gì')
                more_data = processss.re_ask()
                if 'HỦY' in more_data.upper():
                    speaking.speak('thoát chế độ hẹn giờ')
                    continuego = 0
                    break
                else:
                    friendly_name = processss.find_hass_friendly_name(
                        more_data)
                    if friendly_name == []:
                        pass
                    else:
                        data = more_data
                        break
        return data, friendly_name, continuego

    def more_info_time(data, time_in_data):
        continue_go = 1
        time_in_data = check_time_in(data)
        if time_in_data == []:
            qb = 0
            while qb < 3:
                qb += 1
                speaking.speak('cung cấp thời điểm thực hiện')
                more_data1 = processss.re_ask()
                if 'HỦY' in more_data1.upper():
                    speaking.speak('thoát khỏi chế độ hẹn giờ')
                    continue_go = 0
                    break

                else:
                    time_in_data = check_time_in(more_data1)
                    if time_in_data == []:
                        pass
                    else:
                        break

        return time_in_data, continue_go

    friendly_name = processss.find_hass_friendly_name(data)
    print(friendly_name)
    time_in_data = check_time_in(data)
    print(time_in_data)
    continue_go = 1
    if friendly_name == []:
        abc = more_info_friendly(data, friendly_name)
        friendly_name = abc[1]
        data = abc[0]
        continue_go = abc[2]

    if continue_go == 1:
        if time_in_data == []:
            abcd = more_info_time(data, time_in_data)
            time_in_data = abcd[0]
            continue_go = abcd[1]
    if continue_go == 1:
        time_set = dem.datetime.timedelta(hours=int(time_in_data[0]),
                                          minutes=int(time_in_data[1]),
                                          seconds=00)
        print(time_set)
        time_now_hour = strftime("%H")
        time_now_minute = strftime("%M")
        time_now_second = strftime("%S")
        time_now = dem.datetime.timedelta(hours=int(time_now_hour),
                                          minutes=int(time_now_minute),
                                          seconds=int(time_now_second))

        second_delta = time_set - time_now

        secondelta = str(second_delta).split(":")

        second_delta_final = int(secondelta[0]) * 3600 + int(
            secondelta[1]) * 60 + int(secondelta[2])

    if len(friendly_name) != 0 and int(second_delta_final) > 1:
        seconds = int(second_delta_final)
        print('ok')
        speaking.speak('đã đặt hẹn giờ')
        if 'HẸN GIỜ' in data:
            data = data.replace("HẸN GIỜ", "")

        t1 = Timer(seconds, processss.jarvis, [data])
        t1.start()
    else:
        speaking.speak('xin thử lại sau')
예제 #16
0
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 + "/&amp;")
# 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()
예제 #17
0
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 + "/&amp;")
# 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')
예제 #18
0
def xuly():
    pixels.pixels.wakeup()

    if ok == 0:
        trial_times = 0
        speaking.speak('đây là bản dùng thử')
        trial_times += 1
        if trial_times < 20:
            print(
                colored('Số lần request còn lại: ' + str(21 - trial_times),
                        'red'))
        else:
            print(
                colored(
                    '[ERROR] - Hết giới hạn dùng thử. Vui lòng khởi động lại BOT',
                    'red'))
            speaking.speak(
                'Hết giới hạn dùng thử. Khởi động lại bot để dùng tiếp')
            sys.exit(0)
    print('[MAIN] - TIẾP NHẬN XỬ LÝ')
    print('')
    try:
        dem.player.audio_set_volume(40)
    except:
        pass
    try:
        global volume
        volume = spotipy.devices()

        volume = volume['devices'][0]['volume_percent']
        print('volume truoc khi giam' + str(volume))
        spotipy.volume(36)
    except:
        pass
    data = 'interruptinterrupt'
    while data == 'interruptinterrupt':
        print(
            colored(
                'tôi ĐANG CHỜ RA LỆNH - BẬT TẮT <TÊN THIẾT BỊ> HAY HỎI MẤY GIỜ RỒI...',
                'green'))
        conti = 1

        mixer.music.load('resources/ding.wav')
        mixer.music.play()
        try:
            #	Dùng API Google
            if api_boolean == 1:
                print('------------------------------------------------------')
                print(
                    colored(
                        '-------------------------CÓ DÙNG API GOOGLE-----------------',
                        'green'))
                print('------------------------------------------------------')
                data = tsm.main()
                conti = 1
#	Không dùng API Google
            elif api_boolean == 0:
                print('------------------------------------------------------')
                print(
                    colored(
                        '---------------KHÔNG DÙNG API, SẼ NHẬN CHẬM LẮM ĐÂY, MÔI TRƯỜNG ÍT ỒN SẼ DỄ NHẬN HƠN (TRÁNH QUẠT, MÁY LẠNH)-------------',
                        'red'))
                print('------------------------------------------------------')
                data = dem.recordAudio()
                conti = 1
                if hotword.upper() in str(data).upper():
                    data == 'interruptinterrupt'
#	Dùng API FPT
            elif api_boolean == 2:
                print('------------------------------------------------------')
                print(
                    colored('---------------DÙNG API FPT-------------',
                            'yellow'))
                print('------------------------------------------------------')
                data = dem.recordFPT()
                conti = 1
                if hotword.upper() in str(data).upper():
                    data == 'interruptinterrupt'
#	Dùng API VTCC
            elif api_boolean == 3:
                print('------------------------------------------------------')
                print(
                    colored('---------------DÙNG API VIETTEL-------------',
                            'blue'))
                print('------------------------------------------------------')
                data = dem.recordVTCC()
                conti = 1
                if hotword.upper() in str(data).upper():
                    data == 'interruptinterrupt'


#	Sử dụng text input
            elif api_boolean == 1111:
                data = input("Nhập lệnh cần thực thi:  ")
        except:
            conti = 0
            break

    mixer.music.load('resources/dong.wav')
    mixer.music.play()
    pixels.pixels.think()
    if conti == 1 and str(data).upper() != 'ĐƯỢC RỒI':
        try:
            jarvis(data)
        except Exception as e:
            print(e)
    giophut = str(strftime("%H")) + ':' + str(strftime("%M"))
    ai_data = (data, giophut, "")
    try:
        with hehe:
            haha = hehe.cursor()
            haha.execute("INSERT INTO ai_data VALUES(?,?,?)", ai_data)
    except:
        print('writing ai_data ee')
        pass
    try:
        player_volume = dem.radio.lay_am_luong()
        dem.player.audio_set_volume(player_volume - 35)
        time.sleep(0.1)
        dem.player.audio_set_volume(player_volume - 20)
        time.sleep(0.1)
        dem.player.audio_set_volume(player_volume)

    except:
        pass
    try:
        # volume=dem.spotipy[1].devices(dem.spotipy[0])
        # volume=volume[2]
        print('volume sau khi giam: ' + str(volume))
        spotipy.volume(volume - 35)
        time.sleep(0.1)
        spotipy.volume(volume - 20)
        time.sleep(0.1)
        spotipy.volume(volume)
    except Exception as e:
        print('spotify: ' + str(e))
    pixels.pixels.off()
    print(colored('*****************SẴN SÀNG CHỜ GỌI****************',
                  'green'))
예제 #19
0
def on_mo(friendly_name_hass, data):
    print(friendly_name_hass)
    p = 0
    if len(friendly_name_hass) == 1 and str(
            dem.chsv.check_fr(data)).strip("'[]'") == '':
        aaaa = 1
    else:
        aaaa = 0
    while p < len(friendly_name_hass) and aaaa != 1:
        try:
            r = friendly_name_hass[p].turn_on()
            friendly_name1 = dem.chsv.check_fr(data)
            if r == 1:
                if p == len(
                        friendly_name_hass
                ) - 1:  # nếu là thiết bị cuối cùng mới đọc thông báo
                    speaking.speak("đã mở " +
                                   str(friendly_name1).strip("'[]'"))
                p += 1
        except:
            speaking.speak('có lỗi thiết bị trên hass')
            p += 1

    if len(friendly_name_hass) == 0 or aaaa == 1:

        speaking.speak("vui lòng nói lại tên thiết bị")
        dem.time.sleep(0.5)
        processss.mixer.music.load('resources/ding.wav')
        processss.mixer.music.play()
        more_data = processss.re_ask()
        friendly_name_hass1 = processss.find_hass_friendly_name(more_data)
        if friendly_name_hass1 == []:
            speaking.speak('xin lỗi em không nghe được')
        else:
            t = 0
            while t < len(friendly_name_hass1):
                try:
                    rr = friendly_name_hass1[t].turn_on()
                    friendly_name1 = dem.chsv.check_fr(more_data)
                    if rr == 1:
                        if t == len(friendly_name_hass1) - 1:
                            speaking.speak("đã mở " +
                                           str(friendly_name1).strip("'[]'"))
                        t += 1
                except:
                    speaking.speak('có lỗi thiết bị trên hass')
                    t += 1
예제 #20
0
what_to_do = file.paragraphs[25].text

#--------------------------------------------------
#--------------------------------------------------

#-----------------------------------------------------------------------
# Display and read health advice based on BMI and Blood Pressure
#-----------------------------------------------------------------------

if bmi < 18.5:
    print(f"\nHi {f_name.title()}...\n")
    print(
        f"\nYour BMI is {round(bmi, 2)} kg/m2; and your blood pressure is {sbp}/{dbp} mmHg\n"
    )
    if (sbp + dbp) < 230:
        speaking.speak(underweight_normotensive, what_to_do)
    elif (sbp + dbp) == 0:
        speaking.speak(underweight_no_bp, what_to_do)
    else:
        speaking.speak(underweight_hypertensive, what_to_do)
elif bmi < 24.9:
    print(f"\nHi {f_name.title()}...\n")
    print(
        f"\nYour BMI is {round(bmi, 2)} kg/m2; and your blood pressure is {sbp}/{dbp} mmHg\n"
    )
    if (sbp + dbp) < 230:
        speaking.speak(normal_normotensive, what_to_do)
    elif (sbp + dbp) == 0:
        speaking.speak(normal_no_bp, what_to_do)
    else:
        speaking.speak(normal_hypertensive, what_to_do)
예제 #21
0
def off_tat(friendly_name_hass, data):
    q = 0
    if len(friendly_name_hass) == 1 and str(
            dem.chsv.check_fr(data)).strip("'[]'") == '':
        aaaa = 1
    else:
        aaaa = 0
    while q < len(friendly_name_hass) and aaaa != 1:
        try:
            rr = friendly_name_hass[q].turn_off()
            friendly_name1 = dem.chsv.check_fr(data)
            if rr == 1:
                if q == len(
                        friendly_name_hass
                ) - 1:  #nếu là thiết bị cuối cùng mới đọc thông báo
                    speaking.speak("đã tắt " +
                                   str(friendly_name1).strip("'[]'"))
                q += 1
        except:
            speaking.speak('có lỗi thiết bị trên hass')
            q += 1

    if len(friendly_name_hass) == 0 or aaaa == 1:
        speaking.speak(" vui lòng nói lại tên thiết bị")
        processss.mixer.music.load('resources/ding.wav')
        processss.mixer.music.play()
        more_data = processss.re_ask()
        friendly_name_hass1 = processss.find_hass_friendly_name(more_data)
        if friendly_name_hass1 == []:
            speaking.speak('xin lỗi em không nghe được')
        else:
            z = 0
            while z < len(friendly_name_hass1):
                try:
                    r = friendly_name_hass1[z].turn_off()
                    friendly_name1 = dem.chsv.check_fr(more_data)
                    if r == 1:
                        if z == len(friendly_name_hass1) - 1:
                            speaking.speak("đã tắt " +
                                           str(friendly_name1).strip("'[]'"))
                        z += 1
                except:
                    speaking.speak('có lỗi thiết bị trên hass')
                    z += 1