X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=stock_renderer.py;h=7b34455eb610283946eeb37a9db571449b9e3c22;hb=5e241dc47e497c547463cecc07946ea6882835a7;hp=f8491e6a9eb73b8ba06ea35ffd1eb96f5ca0b5c2;hpb=41262fc75551d35bcc9979011078b0e5b4e7b36a;p=kiosk.git diff --git a/stock_renderer.py b/stock_renderer.py index f8491e6..7b34455 100644 --- a/stock_renderer.py +++ b/stock_renderer.py @@ -10,6 +10,7 @@ import secrets import time import urllib.request, urllib.error, urllib.parse + class stock_quote_renderer(renderer.debuggable_abstaining_renderer): # format exchange:symbol def __init__(self, name_to_timeout_dict, symbols): @@ -26,25 +27,27 @@ class stock_quote_renderer(renderer.debuggable_abstaining_renderer): def periodic_render(self, key): now = datetime.datetime.now() - if (now.hour < (9 - 3) or - now.hour >= (17 - 3) or - datetime.datetime.today().weekday() > 4): + if ( + now.hour < (9 - 3) + or now.hour >= (17 - 3) + or datetime.datetime.today().weekday() > 4 + ): self.debug_print("The stock market is closed so not re-rendering") return True - if (self.thread is None or not self.thread.is_alive()): + if self.thread is None or not self.thread.is_alive(): self.debug_print("Spinning up a background thread...") - self.thread = Thread(target = self.thread_internal_render, args=()) + self.thread = Thread(target=self.thread_internal_render, args=()) self.thread.start() return True def thread_internal_render(self): symbols_finished = 0 - f = file_writer.file_writer('stock_3_86400.html') + f = file_writer.file_writer("stock_3_86400.html") f.write("

Stock Quotes


") f.write("") for symbol in self.symbols: -# print "---------- Working on %s\n" % symbol + # print "---------- Working on %s\n" % symbol # https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=MSFT&interval=5min&apikey= @@ -54,26 +57,29 @@ class stock_quote_renderer(renderer.debuggable_abstaining_renderer): cooked = "" while True: key = self.get_random_key() - url = self.prefix + "function=GLOBAL_QUOTE&symbol=%s&apikey=%s" % (symbol, key) + url = self.prefix + "function=GLOBAL_QUOTE&symbol=%s&apikey=%s" % ( + symbol, + key, + ) raw = urllib.request.urlopen(url).read() cooked = json.loads(raw) - if 'Global Quote' not in cooked: -# print "%s\n" % cooked - print("Failure %d, sleep %d sec...\n" % (attempts + 1, - 2 ** attempts)) + if "Global Quote" not in cooked: + # print "%s\n" % cooked + print( + "Failure %d, sleep %d sec...\n" % (attempts + 1, 2 ** attempts) + ) time.sleep(2 ** attempts) attempts += 1 - if attempts > 10: # we'll wait up to 512 seconds per symbol + if attempts > 10: # we'll wait up to 512 seconds per symbol break else: break # These fuckers... - if 'Global Quote' not in cooked: - print("Can't get data for symbol %s: %s\n" % ( - symbol, raw)) + if "Global Quote" not in cooked: + print("Can't get data for symbol %s: %s\n" % (symbol, raw)) continue - cooked = cooked['Global Quote'] + cooked = cooked["Global Quote"] # { # u'Global Quote': @@ -92,20 +98,20 @@ class stock_quote_renderer(renderer.debuggable_abstaining_renderer): # } price = "?????" - if '05. price' in cooked: - price = cooked['05. price'] + if "05. price" in cooked: + price = cooked["05. price"] price = price[:-2] percent_change = "?????" - if '10. change percent' in cooked: - percent_change = cooked['10. change percent'] - if not '-' in percent_change: + if "10. change percent" in cooked: + percent_change = cooked["10. change percent"] + if not "-" in percent_change: percent_change = "+" + percent_change change = "?????" cell_color = "#bbbbbb" - if '09. change' in cooked: - change = cooked['09. change'] + if "09. change" in cooked: + change = cooked["09. change"] if "-" in change: cell_color = "#b00000" else: @@ -113,12 +119,13 @@ class stock_quote_renderer(renderer.debuggable_abstaining_renderer): change = change[:-2] if symbols_finished % 4 == 0: - if (symbols_finished > 0): + if symbols_finished > 0: f.write("") f.write("") symbols_finished += 1 - f.write(""" + f.write( + """
""" + % (cell_color, symbol, price, percent_change, change) + ) f.write("
") f.close() return True -#x = stock_quote_renderer({}, ["MSFT", "GOOG", "GOOGL", "OPTAX", "VNQ"]) -#x.periodic_render(None) -#x.periodic_render(None) + +# x = stock_quote_renderer({}, ["MSFT", "GOOG", "GOOGL", "OPTAX", "VNQ"]) +# x.periodic_render(None) +# x.periodic_render(None)