Testing/CI #21

Merged
jp merged 40 commits from testing into master 2022-12-11 16:27:22 +01:00
Showing only changes of commit 1361d9c083 - Show all commits
+64 -64
View File
@@ -522,75 +522,77 @@ class Shitpost(commands.Cog):
yield from ctx.channel.send(returnText) yield from ctx.channel.send(returnText)
def get_weerbericht(self, wData, verbose=None):
if not wData:
return None
message = ""
# Weather alert:
alertCode, alertMessage = self.getWeerAlarm(wData)
if (verbose and alertCode):
message += alertMessage + "\n\n"
elif (not verbose and alertCode):
if (alertCode == "rood"):
message += alertMessage + "\n\n"
else:
message += ":warning: Er is een weeralarm van kracht. Code " + alertCode + ".\n\n"
# Today:
message += self.getWeatherIconTranslation( wData["image"] )
message += " Het is " + wData["temp"] + " graden "
message += "en het weer is: " + wData["samenv"] + ". "
message += "De verwachting: " + wData["verw"]
if (verbose):
# Only print tomorrow, the day after and the BBQ grade if verbose is on:
message += "\n\nMorgen: " + self.getWeatherIconTranslation( wData["d1weer"] )
message += " " + wData["d1tmin"] + " tot "
message += wData["d1tmax"] + " graden. "
if (wData["d1neerslag"] == "0"):
message += "Geen neerslag. "
else:
message += "Kans op neerslag: " + wData["d1neerslag"] + "%. "
if (int(wData["d1windk"]) > 5):
message += "Windkracht " + wData["d1windk"] + ". Blow it."
message += "\n\nOvermorgen: "+ self.getWeatherIconTranslation( wData["d2weer"] )
message += " " + wData["d2tmin"] + " tot "
message += wData["d2tmax"] + " graden. "
if (wData["d2neerslag"] == "0"):
message += "Geen neerslag. "
else:
message += "Kans op neerslag: " + wData["d2neerslag"] + "%. "
if (int(wData["d2windk"]) > 5):
message += "Windkracht " + wData["d2windk"] + ". "
bbqGrade = self.getBbqGrade(wData)
message += "\n\nHet BBQ cijfer voor vandaag is: " + '{0:g}'.format(round(bbqGrade, 1))
message += "\n\nOant Moarn!"
return message
def get_weer_json(self, location=None):
if not location:
location = "Leiden"
url = f"http://weerlive.nl/api/json-data-10min.php?key={os.getenv('STROOP_WEERLIVE')}&locatie={location}"
response = requests.get(url)
if response:
return json.loads(response.content.decode('utf-8'))["liveweer"][0]
return None
@commands.command(pass_context=True) @commands.command(pass_context=True)
@asyncio.coroutine @asyncio.coroutine
def weer(self, ctx, location="Leiden", verbose="False"): def weer(self, ctx, location="Leiden", verbose=None):
"""Vertelt je het weer. """Vertelt je het weer.
Omdat je te lui bent om naar buiten te kijken. Omdat je te lui bent om naar buiten te kijken.
Oant Moarn! Oant Moarn!
""" """
if(location == ""): wData = self.get_weer_json(location)
location = "Leiden" if wData:
if(str(verbose).lower() == "false"): message = self.get_weerbericht(wData, verbose)
v = False if not wData or not message:
else: message = "Weer ophalen niet gelukt. Probeer het later nogmaals.."
v = True yield from ctx.channel.send(message)
url = f"http://weerlive.nl/api/json-data-10min.php?key={os.getenv('STROOP_WEERLIVE')}&locatie={location}"
response = requests.get(url)
#Oant Moarn
if (response.ok):
wData = json.loads(response.content.decode('utf-8'))
message = ""
# Weather alert:
alertCode, alertMessage = self.getWeerAlarm(wData["liveweer"][0])
if (v and alertCode != None):
message += alertMessage + "\n\n"
elif (not v and alertCode != None):
if (alertCode == "rood"):
message += alertMessage + "\n\n"
else:
message += ":warning: Er is een weeralarm van kracht. Code " + alertCode + ".\n\n"
# Today:
message += self.getWeatherIconTranslation( wData["liveweer"][0]["image"] )
message += " Het is " + wData["liveweer"][0]["temp"] + " graden "
message += "en het weer is: " + wData["liveweer"][0]["samenv"] + ". "
message += "De verwachting: " + wData["liveweer"][0]["verw"]
if (v):
# Only print tomorrow, the day after and the BBQ grade if verbose is on:
message += "\n\nMorgen: " + self.getWeatherIconTranslation( wData["liveweer"][0]["d1weer"] )
message += " " + wData["liveweer"][0]["d1tmin"] + " tot "
message += wData["liveweer"][0]["d1tmax"] + " graden. "
if (wData["liveweer"][0]["d1neerslag"] == "0"):
message += "Geen neerslag. "
else:
message += "Kans op neerslag: " + wData["liveweer"][0]["d1neerslag"] + "%. "
if (int(wData["liveweer"][0]["d1windk"]) > 5):
message += "Windkracht " + wData["liveweer"][0]["d1windk"] + ". Blow it."
message += "\n\nOvermorgen: "+ self.getWeatherIconTranslation( wData["liveweer"][0]["d2weer"] )
message += " " + wData["liveweer"][0]["d2tmin"] + " tot "
message += wData["liveweer"][0]["d2tmax"] + " graden. "
if (wData["liveweer"][0]["d2neerslag"] == "0"):
message += "Geen neerslag. "
else:
message += "Kans op neerslag: " + wData["liveweer"][0]["d2neerslag"] + "%. "
if (int(wData["liveweer"][0]["d2windk"]) > 5):
message += "Windkracht " + wData["liveweer"][0]["d2windk"] + ". "
bbqGrade = self.getBbqGrade(wData["liveweer"][0])
message += "\n\nHet BBQ cijfer voor vandaag is: " + '{0:g}'.format(round(bbqGrade, 1))
message += "\n\nOant Moarn!"
yield from ctx.channel.send(message)
else:
print("API ERROR. :robot:")
#returns a nice weather icon. Sometimes the API uses non-documented icons, so we return something else #returns a nice weather icon. Sometimes the API uses non-documented icons, so we return something else
def getWeatherIconTranslation(self, iconKey): def getWeatherIconTranslation(self, iconKey):
@@ -613,10 +615,8 @@ class Shitpost(commands.Cog):
try: try:
return WEATHER_ICONS[iconKey] return WEATHER_ICONS[iconKey]
except KeyError: except KeyError:
print("WARN Unknown iconKey:", str(iconKey))
return ":park:" return ":park:"
#returns which the current weatheralert code and returns a message
def getWeerAlarm(self, weatherObj): def getWeerAlarm(self, weatherObj):
if (weatherObj["alarm"] != "1"): if (weatherObj["alarm"] != "1"):
return None, "" return None, ""