Browse Source

Merge branch 'master' into 'master'

Weather subcommand added

See merge request ungleich-public/ungleich-cli!2
master
nico 3 years ago
parent
commit
8c02790666
  1. 1
      .gitignore
  2. 10
      README.md
  3. 1
      requirements.txt
  4. 2
      ungleich
  5. 33
      ungleich_weather.py

1
.gitignore vendored

@ -0,0 +1 @@
__pycache__/

10
README.md

@ -7,12 +7,22 @@ It is intended to be used by ungleich engineers and skilled customers.
* ensure you have python3
* git clone this repo
* cd into this repo
* run the following command
```
sudo pip3 install -r requirements.txt
```
## Usage general
```
ungleich --help
```
## Usage: Weather
```
ungleich weather
```
## Usage: DNS

1
requirements.txt

@ -0,0 +1 @@
git+https://github.com/apixu/apixu-python.git@master

2
ungleich

@ -5,6 +5,7 @@ import argparse
from ungleich_dns import ungleichDNS
from ungleich_ripe import ungleichRIPE
from ungleich_account import Account_Create
from ungleich_weather import ungleichWeather
VERSION = "0.0.3"
@ -16,6 +17,7 @@ class ungleichCLI(object):
dns = ungleichDNS(self.parser, self.parser_parents)
ripe = ungleichRIPE(self.parser, self.parser_parents)
ripe = Account_Create(self.parser, self.parser_parents)
ungleichWeather(self.parser, self.parser_parents)
def _init_parser(self):
self.parser = {}

33
ungleich_weather.py

@ -0,0 +1,33 @@
import argparse
import requests
import json
from apixu.client import ApixuClient
def get_loc():
response = requests.get('http://ip-api.com/json/')
data = json.loads(response.content)
return data['city'], data['countryCode']
class ungleichWeather(object):
def __init__(self, parser, parents):
self.parser = parser
self.parser['weather'] = self.parser['sub'].add_parser(
'weather',
help="Weather Enquiries",
parents=[parents])
self.parser['weather'].set_defaults(func=ungleichWeather.forecast_weather)
def forecast_weather(args):
_city, _country_code = get_loc()
client = ApixuClient("cc33a1e3237a4b78b3174104190206")
forecast = client.forecast(q=f'{ _city},{_country_code}', days=7)
print(f"{'Date':^12}|{'Min Temp':^10}|{'Max Temp':^10}|{'Condition':^15}")
print(f"{'*'*47:^47}")
for day in forecast['forecast']['forecastday']:
print(f"{day['date']:^12}|{day['day']['mintemp_c']:^10}|{day['day']['maxtemp_c']:^10}|{day['day']['condition']['text']:^15}")
Loading…
Cancel
Save