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
+49 -49
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):
@commands.command(pass_context=True) if not wData:
@asyncio.coroutine return None
def weer(self, ctx, location="Leiden", verbose="False"):
"""Vertelt je het weer.
Omdat je te lui bent om naar buiten te kijken.
Oant Moarn!
"""
if(location == ""):
location = "Leiden"
if(str(verbose).lower() == "false"):
v = False
else:
v = True
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 = "" message = ""
# Weather alert: # Weather alert:
alertCode, alertMessage = self.getWeerAlarm(wData["liveweer"][0]) alertCode, alertMessage = self.getWeerAlarm(wData)
if (v and alertCode != None): if (verbose and alertCode):
message += alertMessage + "\n\n" message += alertMessage + "\n\n"
elif (not v and alertCode != None): elif (not verbose and alertCode):
if (alertCode == "rood"): if (alertCode == "rood"):
message += alertMessage + "\n\n" message += alertMessage + "\n\n"
else: else:
message += ":warning: Er is een weeralarm van kracht. Code " + alertCode + ".\n\n" message += ":warning: Er is een weeralarm van kracht. Code " + alertCode + ".\n\n"
# Today: # Today:
message += self.getWeatherIconTranslation( wData["liveweer"][0]["image"] ) message += self.getWeatherIconTranslation( wData["image"] )
message += " Het is " + wData["liveweer"][0]["temp"] + " graden " message += " Het is " + wData["temp"] + " graden "
message += "en het weer is: " + wData["liveweer"][0]["samenv"] + ". " message += "en het weer is: " + wData["samenv"] + ". "
message += "De verwachting: " + wData["liveweer"][0]["verw"] message += "De verwachting: " + wData["verw"]
if (v): if (verbose):
# Only print tomorrow, the day after and the BBQ grade if verbose is on: # Only print tomorrow, the day after and the BBQ grade if verbose is on:
message += "\n\nMorgen: " + self.getWeatherIconTranslation( wData["liveweer"][0]["d1weer"] ) message += "\n\nMorgen: " + self.getWeatherIconTranslation( wData["d1weer"] )
message += " " + wData["liveweer"][0]["d1tmin"] + " tot " message += " " + wData["d1tmin"] + " tot "
message += wData["liveweer"][0]["d1tmax"] + " graden. " message += wData["d1tmax"] + " graden. "
if (wData["liveweer"][0]["d1neerslag"] == "0"): if (wData["d1neerslag"] == "0"):
message += "Geen neerslag. " message += "Geen neerslag. "
else: else:
message += "Kans op neerslag: " + wData["liveweer"][0]["d1neerslag"] + "%. " message += "Kans op neerslag: " + wData["d1neerslag"] + "%. "
if (int(wData["liveweer"][0]["d1windk"]) > 5): if (int(wData["d1windk"]) > 5):
message += "Windkracht " + wData["liveweer"][0]["d1windk"] + ". Blow it." message += "Windkracht " + wData["d1windk"] + ". Blow it."
message += "\n\nOvermorgen: "+ self.getWeatherIconTranslation( wData["liveweer"][0]["d2weer"] ) message += "\n\nOvermorgen: "+ self.getWeatherIconTranslation( wData["d2weer"] )
message += " " + wData["liveweer"][0]["d2tmin"] + " tot " message += " " + wData["d2tmin"] + " tot "
message += wData["liveweer"][0]["d2tmax"] + " graden. " message += wData["d2tmax"] + " graden. "
if (wData["liveweer"][0]["d2neerslag"] == "0"): if (wData["d2neerslag"] == "0"):
message += "Geen neerslag. " message += "Geen neerslag. "
else: else:
message += "Kans op neerslag: " + wData["liveweer"][0]["d2neerslag"] + "%. " message += "Kans op neerslag: " + wData["d2neerslag"] + "%. "
if (int(wData["liveweer"][0]["d2windk"]) > 5): if (int(wData["d2windk"]) > 5):
message += "Windkracht " + wData["liveweer"][0]["d2windk"] + ". " message += "Windkracht " + wData["d2windk"] + ". "
bbqGrade = self.getBbqGrade(wData["liveweer"][0]) bbqGrade = self.getBbqGrade(wData)
message += "\n\nHet BBQ cijfer voor vandaag is: " + '{0:g}'.format(round(bbqGrade, 1)) message += "\n\nHet BBQ cijfer voor vandaag is: " + '{0:g}'.format(round(bbqGrade, 1))
message += "\n\nOant Moarn!" 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)
@asyncio.coroutine
def weer(self, ctx, location="Leiden", verbose=None):
"""Vertelt je het weer.
Omdat je te lui bent om naar buiten te kijken.
Oant Moarn!
"""
wData = self.get_weer_json(location)
if wData:
message = self.get_weerbericht(wData, verbose)
if not wData or not message:
message = "Weer ophalen niet gelukt. Probeer het later nogmaals.."
yield from ctx.channel.send(message) 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, ""