41 lines
968 B
Python
Executable File
41 lines
968 B
Python
Executable File
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import json
|
|
import re
|
|
import sys
|
|
import requests
|
|
|
|
request = requests.get('http://www.ipma.pt/pt/index.html')
|
|
|
|
MATCH = re.search(r"var data = ({.*?)\;", request.text, re.DOTALL)
|
|
|
|
"""
|
|
text_file = open("bleh.json", "w")
|
|
text_file.write(MATCH.group(1))
|
|
text_file.close()
|
|
"""
|
|
|
|
data = json.loads(MATCH.group(1))
|
|
days = []
|
|
for d in data:
|
|
days.append(d)
|
|
days = sorted(days, reverse=True)
|
|
|
|
# List all available days on the site
|
|
# ./getvalues.py days
|
|
if len(sys.argv) == 2 and sys.argv[1] == "days":
|
|
print(days)
|
|
|
|
# Lists data for all the days for a specific weather station
|
|
# ./getvalues.py 773
|
|
if len(sys.argv) == 2 and sys.argv[1].isnumeric():
|
|
for d in days:
|
|
if data[d][sys.argv[1]] is not None:
|
|
print(d, data[d][sys.argv[1]])
|
|
|
|
# Prints the data for a specific day and a specific weather station
|
|
# ./getvalues.py 2019-03-29 773
|
|
if len(sys.argv) == 3:
|
|
print(data[sys.argv[1]][sys.argv[2]])
|