add logging
parent
74641a57ee
commit
00bfc9226d
32
display.py
32
display.py
|
|
@ -1,20 +1,30 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
logging.basicConfig(level=logging.INFO,
|
||||||
|
format='%(asctime)s - %(levelname)s - %(message)s',
|
||||||
|
datefmt='%Y-%m-%d %H:%m:%S')
|
||||||
|
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
gi.require_version('Gtk', '3.0')
|
gi.require_version('Gtk', '3.0')
|
||||||
gi.require_version('GdkPixbuf', '2.0')
|
gi.require_version('GdkPixbuf', '2.0')
|
||||||
from gi.repository import Gtk,GdkPixbuf
|
from gi.repository import Gtk,GdkPixbuf, GLib
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
import argparse
|
import argparse
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
import signal
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
DEFAULT_BASE = "https://www.agp8x.org/temp/new/pchart/"
|
DEFAULT_BASE = "https://www.agp8x.org/temp/new/pchart/"
|
||||||
|
|
||||||
|
log = logging
|
||||||
|
|
||||||
def today():
|
def today():
|
||||||
return date.today().strftime("temp_%d.%m.%Y.png")
|
return date.today().strftime("temp_%d.%m.%Y.png")
|
||||||
|
|
||||||
|
|
@ -27,10 +37,11 @@ class Updater(threading.Thread):
|
||||||
def run(self):
|
def run(self):
|
||||||
while not self.exit.is_set():
|
while not self.exit.is_set():
|
||||||
try:
|
try:
|
||||||
|
log.info("run update")
|
||||||
self.target.update()
|
self.target.update()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e, e.args)
|
log.exception(e)
|
||||||
self.exit.wait(10)
|
self.exit.wait(300)
|
||||||
|
|
||||||
|
|
||||||
class Window(object):
|
class Window(object):
|
||||||
|
|
@ -41,13 +52,17 @@ class Window(object):
|
||||||
#self.window.set_resizable(False)
|
#self.window.set_resizable(False)
|
||||||
self.window.connect("destroy", self.destroy)
|
self.window.connect("destroy", self.destroy)
|
||||||
self.window.connect("key-press-event", self.on_key)
|
self.window.connect("key-press-event", self.on_key)
|
||||||
self.window.connect("button-press-event", self.on_click)
|
#self.window.connect("button-press-event", self.on_click)
|
||||||
self.window.fullscreen()
|
|
||||||
self.args = args
|
self.args = args
|
||||||
|
if self.args.fullscreen:
|
||||||
|
log.info("use fullscreen")
|
||||||
|
self.window.fullscreen()
|
||||||
self.image = Gtk.Image()
|
self.image = Gtk.Image()
|
||||||
self.window.add(self.image)
|
self.window.add(self.image)
|
||||||
self.image.show()
|
self.image.show()
|
||||||
self.window.show()
|
self.window.show()
|
||||||
|
GLib.unix_signal_add(GLib.PRIORITY_DEFAULT,
|
||||||
|
signal.SIGINT, self.destroy)
|
||||||
|
|
||||||
def destroy(self, data=None):
|
def destroy(self, data=None):
|
||||||
if self.updater:
|
if self.updater:
|
||||||
|
|
@ -58,16 +73,22 @@ class Window(object):
|
||||||
self.updater.start()
|
self.updater.start()
|
||||||
Gtk.main()
|
Gtk.main()
|
||||||
def on_click(self, widget, data=None):
|
def on_click(self, widget, data=None):
|
||||||
|
log.info("on_click called")
|
||||||
self.update()
|
self.update()
|
||||||
def on_key(self, event, data=None):
|
def on_key(self, event, data=None):
|
||||||
|
log.info("on_key called")
|
||||||
self.destroy()
|
self.destroy()
|
||||||
def update(self):
|
def update(self):
|
||||||
|
log.info("start update")
|
||||||
filename = today()
|
filename = today()
|
||||||
url = self.args.base_url + "/" + filename
|
url = self.args.base_url + "/" + filename
|
||||||
new_image = self.fetch_image(url)
|
new_image = self.fetch_image(url)
|
||||||
self.image.set_from_pixbuf(new_image)
|
self.image.set_from_pixbuf(new_image)
|
||||||
|
log.info("update finished")
|
||||||
def fetch_image(self, url):
|
def fetch_image(self, url):
|
||||||
|
log.info("start download")
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
|
log.info(f"result({url})={response.status_code}, {response.ok}")
|
||||||
with BytesIO(response.content) as buff:
|
with BytesIO(response.content) as buff:
|
||||||
loader = GdkPixbuf.PixbufLoader.new_with_type('png')
|
loader = GdkPixbuf.PixbufLoader.new_with_type('png')
|
||||||
loader.write(buff.getvalue())
|
loader.write(buff.getvalue())
|
||||||
|
|
@ -78,6 +99,7 @@ class Window(object):
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("base_url", nargs="?", default=DEFAULT_BASE)
|
parser.add_argument("base_url", nargs="?", default=DEFAULT_BASE)
|
||||||
|
parser.add_argument("-f", "--fullscreen", action="store_false", help="don't start in fullscreen")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
window = Window(args)
|
window = Window(args)
|
||||||
window.main()
|
window.main()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue