83 lines
2.0 KiB
Python
Executable File
83 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
|
|
try:
|
|
import Image
|
|
import ImageDraw
|
|
HAVE_PIL = True
|
|
except:
|
|
try:
|
|
from PIL import Image
|
|
from PIL import ImageDraw
|
|
HAVE_PIL = True
|
|
except:
|
|
HAVE_PIL = False
|
|
|
|
import time
|
|
|
|
from rgbmatrix import Adafruit_RGBmatrix
|
|
|
|
import requests
|
|
import json
|
|
|
|
import subprocess
|
|
|
|
# subprocess.call('ls', '-l')
|
|
|
|
# Rows and chain length are both required parameters:
|
|
matrix = Adafruit_RGBmatrix(32, 3)
|
|
|
|
spaceAPI = [ "https://level2.lu/spaceapi/", "https://spaceapi.syn2cat.lu/status/json" ]
|
|
|
|
r = requests.get(spaceAPI[0])
|
|
|
|
obj = json.loads(r.text)
|
|
|
|
def main():
|
|
|
|
presence = obj["sensors"]["people_now_present"][0]["value"]
|
|
|
|
|
|
if obj["state"]["open"]:
|
|
print("And we are open!")
|
|
print("There are {} Hackers present NOW!".format(presence))
|
|
openSpace()
|
|
|
|
if obj["state"]["closed"]:
|
|
print("And we are closed!")
|
|
print("There were {} Hackers present! Good night, good fight!".format(presence))
|
|
closedSpace()
|
|
|
|
|
|
def openSpace():
|
|
matrix.Clear()
|
|
image = Image.open("images/32px-LightOn.svg.png")
|
|
image.load()
|
|
for n in range(32, -image.size[0], -1):
|
|
matrix.SetImage(image.im.id, n, 1)
|
|
time.sleep(0.025)
|
|
|
|
def closedSpace():
|
|
matrix.Clear()
|
|
image = Image.open("images/32px-LightOf.svg.png")
|
|
image.load()
|
|
for n in range(32, -image.size[0], -1):
|
|
matrix.SetImage(image.im.id, n, 1)
|
|
time.sleep(0.025)
|
|
|
|
def getTime(seconds):
|
|
sec = timedelta(seconds=int(seconds))
|
|
d = datetime(1,1,1) + sec
|
|
|
|
if d.day-1 > 0:
|
|
return("{} day(s), {} hour(s), {} minute(s) and {} seconds".format(d.day-1, d.hour, d.minute, d.second))
|
|
elif d.hour > 0:
|
|
return("{} hour(s), {} minute(s) and {} seconds".format(d.hour, d.minute, d.second))
|
|
elif d.minute > 0:
|
|
return("{} minute(s) and {} seconds".format(d.minute, d.second))
|
|
else:
|
|
return("{} seconds".format(d.second))
|
|
|
|
if __name__ == "__main__": main()
|