-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmorningRoutine.py
115 lines (100 loc) · 4.81 KB
/
morningRoutine.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import requests
import json
import time
import os
from os import remove
from urllib.request import urlopen
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from playsound import playsound
from gtts import gTTS
from aemet import Aemet
from datetime import datetime
#Obtein an ApiKey here: https://opendata.aemet.es/centrodedescargas/altaUsuario?
aemetKey="YOUR_API_KEY"
#https://www.ine.es/daco/daco42/codmun/codmunmapa.htm
provinceCode="11"
townCode="11014" #ProvinceCode+TownCode
def date():
date=datetime.now()
months = ("Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
day = date.day
month = months[date.month - 1]
year = date.year
date_format = "Hoy es {} de {} del {} \n".format(day, month, year)
return date_format
def moment():
now = datetime.now()
now_format=now.strftime('%I:%M:%S').split(":")
hour=now_format[0]
min=now_format[1]
if(str(hour)[0]=="0"):
hour=hour[1]
moment_format="Son las {} y {} \n".format(hour,min)
return moment_format
def aemetProvince(province):
url = "https://opendata.aemet.es/opendata/api/prediccion/provincia/hoy/{}".format(provinceCode)
querystring = {"api_key":aemetKey}
headers = {
'cache-control': "no-cache"
}
response = requests.request("GET", url, headers=headers, params=querystring)
jsonToPythonDicc = json.loads(response.text)
urlData=jsonToPythonDicc['datos']
r = urlopen(urlData)
relevantInformation = str(BeautifulSoup(r.read(), "html.parser"))
r.close()
parcialInit=relevantInformation.find(province)
parcialMedium=relevantInformation.find(province,parcialInit+1)
parcialFinal=relevantInformation.find("TEMPERATURAS")
informationSummary=relevantInformation[parcialMedium+len(province):parcialFinal]+'\n'
return informationSummary
def aemetTown(day): #Day 0 is today, 1 tomorrow ...
url = "https://opendata.aemet.es/opendata/api/prediccion/especifica/municipio/diaria/{}".format(townCode)
querystring = {"api_key":aemetKey}
headers = {
'cache-control': "no-cache"
}
response = requests.request("GET", url, headers=headers, params=querystring)
jsonToPythonDicc = json.loads(response.text)
dataUrl=jsonToPythonDicc['datos']
responseData = requests.request("GET", dataUrl)
jsonToPythonDiccData = json.loads(responseData.text)
daySelected=jsonToPythonDiccData[0]["prediccion"]["dia"][day]["fecha"]
maximumTemperature=jsonToPythonDiccData[0]["prediccion"]["dia"][day]["temperatura"]["maxima"]
minimumTemperature=jsonToPythonDiccData[0]["prediccion"]["dia"][day]["temperatura"]["minima"]
probabilityOfPrecipitation=jsonToPythonDiccData[0]["prediccion"]["dia"][day]["probPrecipitacion"][0]["value"]
maximumHumidity=jsonToPythonDiccData[0]["prediccion"]["dia"][day]["humedadRelativa"]["maxima"]
minimumHumidity=jsonToPythonDiccData[0]["prediccion"]["dia"][day]["humedadRelativa"]["minima"]
result="La temperatura máxima será de {} grados,siendo la mínima de {} grados, a su vez la probabilidad de precipitaciones es del {} por ciento.El ambiente posee una humedad entre {} y {} por ciento \n".format(maximumTemperature,minimumTemperature,probabilityOfPrecipitation,minimumHumidity,maximumHumidity)
return result
def sunData(lat,lng,variation):
latitude=str(lat)
longitude=str(lng)
url="https://api.sunrise-sunset.org/json?lat={}&lng={}&date=today".format(latitude,longitude)
response = requests.request("GET", url)
jsonToPythonDicc = json.loads(response.text)
sunrise=jsonToPythonDicc["results"]["sunrise"]
sunset=jsonToPythonDicc["results"]["sunset"]
sunrise=sunrise[:-2].split(":") #Without AM or PM
sunset=sunset[:-2].split(":")
sunriseHour=int(sunrise[0])+variation
sunriseMinutes=sunrise[1]
sunsetHour=int(sunset[0])+variation
sunsetMinutes=sunset[1]
result="Amanece a las {} y {} minutos y anochece a las {} y {} \n".format(sunriseHour,sunriseMinutes,sunsetHour,sunsetMinutes)
return result
def routineSummary(date,moment,aemetProvince,aemetTown,sunData):
summary=moment+date+sunData+aemetTown+aemetProvince
return summary
def speech(txt):
language = 'es-es'
spch = gTTS(text=txt, lang=language, slow=False)
spch.save("./Audios/heliosays.mp3") #PATH OF YOUR .MP3 FILE
playsound("./Audios/heliosays.mp3")
remove("./Audios/heliosays.mp3")
speech(routineSummary(date(),moment(),aemetProvince("CÁDIZ"),aemetTown(0),sunData(36.2768,-6.08844,2)))