#!/usr/bin/python
# -*- coding: utf-8 -*-
# Temp-io
# v1.0.0
# Ten Wong
# awong1900
# TODO
# TODO
# python
import json
import urllib2
from datetime import datetime
# set temp-io device config, you can set multi
temp_list = [
{
"user_id": "qjRCYdbxNLZf335KxUW6TGNEbf03",
"temp_id": "9098af0dfb31f2e1a84cbdbb3c2450bd"
},
{
"user_id": "qjRCYdbxNLZf335KxUW6TGNEbf03",
"temp_id": "cc7bcfa0ebc97044068553831d5f92b4"
}
]
# set to si for metric, leave blank for imperial
units = 'si'
def get_temps(json_temps=None):
if json_temps is None:
return None
temps = []
for t in json_temps:
temp = json.load(urllib2.urlopen('https://api.temp-io.life/v1/users/{}/temps/{}'
.format(t['user_id'], t['temp_id'])))
temps.append(temp)
return temps
def get_unit():
if units == 'si':
unit = 'C'
else:
unit = 'F'
return unit
def get_temp_string(temp):
unit = get_unit()
if unit == 'C':
temp_string = '{}°C'.format(temp['temperature'])
else:
temp_string = '{}°F'.format(temp['temperature_f'])
return temp_string
def pretty_date(time=False):
"""
Get a datetime object or a int() Epoch timestamp and return a
pretty string like 'an hour ago', 'Yesterday', '3 months ago',
'just now', etc
"""
from datetime import datetime
now = datetime.utcnow()
if type(time) is int:
diff = now - datetime.fromtimestamp(time)
elif isinstance(time,datetime):
diff = now - time
elif not time:
diff = now - now
second_diff = diff.seconds
day_diff = diff.days
if day_diff < 0:
return ''
if day_diff == 0:
if second_diff < 10:
return "just now"
if second_diff < 60:
return str(second_diff) + " seconds ago"
if second_diff < 120:
return "a minute ago"
if second_diff < 3600:
return str(second_diff / 60) + " minutes ago"
if second_diff < 7200:
return "an hour ago"
if second_diff < 86400:
return str(second_diff / 3600) + " hours ago"
if day_diff == 1:
return "Yesterday"
if day_diff < 7:
return str(day_diff) + " days ago"
if day_diff < 31:
return str(day_diff / 7) + " weeks ago"
if day_diff < 365:
return str(day_diff / 30) + " months ago"
return str(day_diff / 365) + " years ago"
def main():
temps = get_temps(temp_list)
temp_string_list = [get_temp_string(temp) for temp in temps]
title = ' - '.join(temp_string_list)
print(title)
print("---")
str1 = ' - '.join([temp['name'] for temp in temps])
print("{} | size=16".format(str1))
str2 = ' - '.join([pretty_date(datetime.strptime(temp['temperature_updated_at'], '%Y-%m-%dT%H:%M:%SZ')) for temp in temps])
print(str2)
# print("---")
# print("About - Temp-io| size=16")
# print("A useful IOT device to obtain the current temperature. | size=14 href=https://develops.temp-io.life")
if __name__ == '__main__':
main()