Advertisement
DanielMoura91

Untitled

May 20th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.02 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import string, random, socket, time, os
  3. from bs4 import BeautifulSoup as bs
  4. import speech_recognition as sr
  5. from chatterbot.trainers import ListTrainer
  6. from chatterbot import ChatBot
  7. import comtypes.client as ct
  8. import requests as rq
  9.  
  10. tts = ct.CreateObject("sapi.SPVoice")
  11. r = sr.Recognizer()
  12.  
  13. contador = 0
  14. usuario = "Daniel" # Coloque seu nome aqui
  15.  
  16. bot = ChatBot('Sexta-feira')
  17. pt = ['Oi', 'Olá '+usuario+', como vai?', 'Olá','Oi '+usuario+', tudo bem?', 'Ei', 'Ei '+usuario+'', 'Tudo bem?','Estou bem','Bom dia','Bom dia '+usuario+'!','Boa tarde','Boa tarde '+usuario+'!','Boa noite','Boa noite '+usuario+'!','Tchau','Até mais '+usuario+'']
  18. en = ['Hello','Hi '+usuario+'','Hi','Hello Mister '+usuario+'','How are you?','I am fine']
  19. es = ['Hola','Hola '+usuario+'','Como estas?','Voy bien','Voy bien','Que bueno']
  20. bot.set_trainer(ListTrainer)
  21. bot.train(pt)
  22. bot.train(en)
  23. bot.train(es)  
  24.  
  25. def check_host():
  26. confiaveis = ['www.google.com', 'www.yahoo.com']
  27. for host in confiaveis:
  28.     a = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  29.     a.settimeout(.5)
  30.     try:
  31.         b = a.connect_ex((host, 80))
  32.         if b == 0:  # ok, conectado
  33.             return True
  34.     except:
  35.         a.close()
  36.         return False
  37.  
  38. def recVoz(r):
  39.     try:
  40.         with sr.Microphone() as source:
  41.             r.adjust_for_ambient_noise(source)
  42.             audio = r.listen(source)
  43.             speech = r.recognize_google(audio, language='pt-BR')
  44.             return speech
  45.     except sr.UnknownValueError:
  46.         print('Erro de reconhecimento de fala')
  47.         time.sleep(2)
  48.         main()
  49.  
  50. def piadas():
  51.     aleatorio = random.randint(1, 7)
  52.     url = 'https://www.piadas.com.br'
  53.     page = rq.get(url=url, timeout=2)
  54.     soup = bs(page.content, 'html.parser')
  55.     if aleatorio == 1:
  56.         conteudo = soup.find(class_="views-row views-row-2 views-row-even")
  57.     elif aleatorio == 2:
  58.         conteudo = soup.find(class_="views-row views-row-3 views-row-even")
  59.     elif aleatorio == 3:
  60.         conteudo = soup.find(class_="views-row views-row-4 views-row-even")
  61.     elif aleatorio == 4:
  62.         conteudo = soup.find(class_="views-row views-row-5 views-row-even")
  63.     elif aleatorio == 5:
  64.         conteudo = soup.find(class_="views-row views-row-6 views-row-even")
  65.     elif aleatorio == 6:
  66.         conteudo = soup.find(class_="views-row views-row-7 views-row-even")
  67.     elif aleatorio == 7:
  68.         conteudo = soup.find(class_="views-row views-row-8 views-row-even")
  69.     piada = conteudo.get_text()
  70.     print('Sexta-feira: ...')
  71.     texto = (u""+piada)
  72.     tts.Speak(texto)
  73.     main()
  74.  
  75. def pass_generator(size=10, chars=string.ascii_uppercase + string.digits + string.ascii_lowercase):
  76.     return ''.join(random.choice(chars) for _ in range(size))
  77.  
  78. def pesqGoogle():
  79.     print('Sexta-feira: O que deseja pesquisar?')
  80.     pesquisa = (u"O que deseja pesquisar?")
  81.     tts.Speak(pesquisa)
  82.     speech = recVoz(r)
  83.     print('Você: ', speech)
  84.     speech = speech.replace(" ", '+')
  85.     url = "https://www.google.com.br/search?q="+speech
  86.     os.system("cd C:\\Program Files (x86)\\Google\\Chrome\\Application && .\\chrome.exe "+url)
  87.     main()
  88.  
  89. def pesqYoutube():
  90.     print('Sexta-feira: O que deseja pesquisar?')
  91.     pesquisa = (u"O que deseja pesquisar?")
  92.     tts.Speak(pesquisa)
  93.     speech = recVoz(r)
  94.     print('Você: ', speech)
  95.     video = speech.replace(" ", '+')
  96.     url = "https://www.youtube.com/results?search_query="+video
  97.     pesquisa = (u"Segue vídeos com o tema "+speech)
  98.     tts.Speak(pesquisa)
  99.     os.system("cd C:\\Program Files (x86)\\Google\\Chrome\\Application && .\\chrome.exe "+url)
  100.     main()
  101.  
  102. def wikipedia():
  103.     print('Sexta-feira: Qual tema deseja pesquisar?')
  104.     pesquisa = (u"Qual tema deseja pesquisar?")
  105.     tts.Speak(pesquisa)
  106.     speech = recVoz(r)
  107.     print('Você: ', speech)
  108.     busca = speech.replace(" ", '_')
  109.     url = "https://pt.wikipedia.org/wiki/"+busca
  110.     page = rq.get(url=url)
  111.     soup = bs(page.content, 'html.parser')
  112.     conteudo = soup.find(id="mw-content-text")
  113.     texto = conteudo.get_text()
  114.     print('Sexta-feira: ...')
  115.     pesquisa = (u""+texto)
  116.     tts.Speak(pesquisa)
  117.     main()
  118.  
  119. def traduzir():
  120.         print('Fale o que deseja traduzir...')     
  121.         speech = recVoz(r)
  122.         print('Você: ', speech)
  123.         texto = speech.replace(" ",'%20')
  124.         origem = 'pt'
  125.         destino = 'en'
  126.         url = "https://translate.google.com.br/?hl=pt-BR#"+origem+"/"+destino+"/"+texto
  127.         os.system("cd C:\\Program Files (x86)\\Google\\Chrome\\Application && .\\chrome.exe "+url)
  128.         main()
  129.  
  130. def main():
  131.     try:
  132.         check_host()
  133.         if check_host():
  134.             while True:
  135.                 os.system('cls')
  136.                 print('\n\t\tAssistente Virtual v7.0 by Daniel M. Alves\n\n')
  137.                 print('Fale algo...')
  138.                 speech = recVoz(r)
  139.                 print('Você: ', speech)
  140.                 response = bot.get_response(speech)
  141.                 print('Sexta-feira:', response)
  142.                 resposta = (u""+str(response))
  143.                 tts.Speak(resposta)
  144.                 time.sleep(0.5)
  145.                 if speech == "pesquisar":
  146.                     print('Sexta-feira: ...')
  147.                     speech = recVoz(r)
  148.                     print('Você: ', speech)
  149.                     if speech == "google" or speech == "Google":
  150.                         pesqGoogle()
  151.                     elif speech == "youtube" or speech == "YouTube" or speech == "Youtube":
  152.                         pesqYoutube()
  153.                     elif speech == "Wikipédia" or speech == "wikipédia":
  154.                         wikipedia()
  155.                 elif speech == "traduzir":
  156.                     traduzir()
  157.                 elif speech == "estou com fome":
  158.                     url = "https://www.google.com.br/maps/search/Restaurantes/@-20.3118374,-40.3248965,16z/data=!4m7!2m6!3m5!1sRestaurantes!2s-20.3119,+-40.3269!4m2!1d-40.3269354!2d-20.3119305"
  159.                     os.system('cd C:\\Program Files (x86)\\Google\\Chrome\\Application && .\\chrome.exe '+url)
  160.                     main()
  161.                 elif speech == "procurar" or speech == "Google maps" or speech == "mapa" or speech == "maps" or speech == "procurar em Vitória" or speech == "procurar nas proximidades":
  162.                     print('Sexta-feira: ...')
  163.                     speech = recVoz(r)
  164.                     print('Você: ', speech)
  165.                     busca = speech.replace(" ", '+')
  166.                     url = 'https://www.google.com.br/maps/search/'+busca+'/@-20.2869951,-40.3284409,13z'
  167.                     os.system('cd C:\\Program Files (x86)\\Google\\Chrome\\Application && .\\chrome.exe "'+url+'" ')
  168.                     main()
  169.                 elif speech == "clima para hoje" or speech == "clima para Vitória" or speech == "clima hoje":
  170.                     url = "https://www.climatempo.com.br/previsao-do-tempo/15-dias/cidade/84/vitoria-es" # Use o link de sua cidade!
  171.                     page = rq.get(url=url, timeout=2)
  172.                     soup = bs(page.content, 'html.parser')
  173.                     content = soup.find(id="tempMin0")
  174.                     minima = content.get_text()
  175.                     content = soup.find(id="tempMax0")
  176.                     maxima = content.get_text()
  177.                     content = soup.find(id="content0")
  178.                     classe = content.find(class_="small-4 left rain-block")
  179.                     prob = classe.get_text()
  180.                     content = soup.find(id="content0")
  181.                     classe = content.find(class_="left font14 txt")
  182.                     descricao = classe.get_text()
  183.                     tempo = (u"Minima de "+minima+" e máxima de "+maxima)
  184.                     tts.Speak(tempo)
  185.                     print(tempo)
  186.                     chuva = (u"Probabilidade de "+prob)
  187.                     tts.Speak(chuva)
  188.                     desc = (u""+descricao)
  189.                     tts.Speak(desc)
  190.                     print(desc)
  191.                     main()
  192.                 elif speech == "clima para amanhã" or speech == "clima para amanhã em Vitória" or speech == "clima amanhã":
  193.                     url = "https://www.climatempo.com.br/previsao-do-tempo/15-dias/cidade/84/vitoria-es"
  194.                     page = rq.get(url=url, timeout=2)
  195.                     soup = bs(page.content, 'html.parser')
  196.                     content = soup.find(id="tempMin1")
  197.                     minima = content.get_text()
  198.                     content = soup.find(id="tempMax1")
  199.                     maxima = content.get_text()
  200.                     content = soup.find(id="content1")
  201.                     classe = content.find(class_="small-4 left rain-block")
  202.                     prob = classe.get_text()
  203.                     content = soup.find(id="content1")
  204.                     classe = content.find(class_="left font14 txt")
  205.                     descricao = classe.get_text()
  206.  
  207.                     tempo = (u"Minima de "+minima +
  208.                                             " e máxima de "+maxima)
  209.                     tts.Speak(tempo)
  210.                     print(tempo)
  211.                     chuva = (u"Probabilidade de "+prob)
  212.                     tts.Speak(chuva)
  213.                     desc = (u""+descricao)
  214.                     tts.Speak(desc)
  215.                     print(desc)
  216.                     main()
  217.                 elif speech == "curiosidades do dia" or speech == "curiosidades":
  218.                     url = 'https://pt.wikipedia.org/wiki/Wikipédia:Página_principal'
  219.                     page = rq.get(url=url)
  220.                     soup = bs(page.content, 'html.parser')
  221.                     conteudo = soup.find(id="mf-efemérides")
  222.                     texto = conteudo.get_text()
  223.                     print('Sexta-feira: ...')
  224.                     pesquisa = (u""+texto)
  225.                     tts.Speak(pesquisa)
  226.                     main()
  227.                 elif speech == "comparar preços" or speech == "pesquisar produto" or speech == "comparar preço" or speech == "pesquisar produtos":
  228.  
  229.                     pesquisa = (u"Qual o produto desejado?")
  230.                     tts.Speak(pesquisa)
  231.                     speech = recVoz(r)
  232.                     print('Você: ', speech)
  233.                     busca = speech.replace(" ", '+')
  234.                     url = "https://www.google.com.br/search?tbm=shop&q="+busca
  235.                     print("Segue lista com comparação de preços de "+speech+"")
  236.                     pesquisa = (u"Segue lista com comparação de preços de "+speech)
  237.                     tts.Speak(pesquisa)
  238.                     os.system('cd C:\\Program Files (x86)\\Google\\Chrome\\Application && .\\chrome.exe "'+url+'" ')
  239.                     main()
  240.                 elif speech == "tocar músicas" or speech == "reproduzir músicas":
  241.                     os.system('cd C:\\Program Files\\MPC-HC && .\\mpc-hc64.exe C:\\Users\\%user%\\Music\\*.mp3')
  242.                     main()             
  243.                 elif speech == "gerar senha":
  244.                     print("Senha: ", pass_generator())
  245.                     main()             
  246.                 elif speech == "deletar arquivos temporários" or speech == "deletar temporários" or speech == "apagar temporários":
  247.                     temp = (u"Confirme para aapgar os arquivos temporários")
  248.                     tts.Speak(temp)
  249.                     os.system('cd %TMP% && del *.* && cd C:\Windows\Temp && del *.* && pause')
  250.                     main()
  251.                 elif speech == "me conte uma piada" or speech == "Me conte uma piada" or speech == "piada":
  252.                     piadas()
  253.                     main()
  254.                 elif speech == "fechar" or speech == "sair" or speech == "tchau" or speech == "adios" or speech == "bye":
  255.                     time.sleep(1)
  256.                     print("Encerrando sessão...")
  257.                     sair = (u"Encerrando sessão")
  258.                     tts.Speak(sair)
  259.                     main.close()
  260.                 else:
  261.                     main()             
  262.         else:
  263.             print('Sem conexão com a internet. Tente mais tarde!\n')
  264.     except:
  265.             print('Erro de execução. Tente novamente!')
  266.             time.sleep(3)
  267.             global contador
  268.             contador = contador + 1
  269.             if contador == 10:
  270.                 exit()
  271.             else:
  272.                 main()
  273.  
  274. if __name__ == "__main__":
  275.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement