diff --git a/__pycache__/stockTicker.cpython-37.pyc b/__pycache__/stockTicker.cpython-37.pyc index e2520d1..2e3e039 100644 Binary files a/__pycache__/stockTicker.cpython-37.pyc and b/__pycache__/stockTicker.cpython-37.pyc differ diff --git a/api_caller.py b/api_caller.py index 07f8d8b..9d11ea7 100644 --- a/api_caller.py +++ b/api_caller.py @@ -1,41 +1,55 @@ import finnhub import time import csv +import pytz +from datetime import datetime APIkey = "c24qddqad3ickpckgg80" sandboxAPIkey = "sandbox_c24qddqad3ickpckgg8g" finnhubClient = finnhub.Client(api_key=APIkey) +NY_zone = pytz.timezone('America/New_York') +NY_time = datetime.now(NY_zone) + +opening = NY_time.replace(hour=9, minute=30, second=0, microsecond=0) +closing = NY_time.replace(hour=16, minute=0, second=0, microsecond=0) + + + + + def getStockPrices(): - apiCalledError = False - stock_info = [] - symbols = [] - f = open('csv/tickers.csv', 'r') - CSV = csv.reader(f) - - for row in CSV: - symbol = row[0] - symbols.append(symbol) - f.close() - try: - quotes = [finnhubClient.quote(symbol) for symbol in symbols] - current_prices = [quote['c'] for quote in quotes] - opening_prices = [quote['o'] for quote in quotes] + if opening < NY_time < closing: + apiCalledError = False + stock_info = [] - CSV = open('csv/tickers.csv', 'w+') - for i, symbol in enumerate(symbols): - symbol + ',' + str(current_prices[i]) + ',' + str(opening_prices[i]) + '\n' - CSV.write(symbol + ',' + str(current_prices[i]) + ',' + str(opening_prices[i]) + '\n') - CSV.close() - print('API called successfully') + symbols = [] + f = open('csv/tickers.csv', 'r') + CSV = csv.reader(f) + + for row in CSV: + symbol = row[0] + symbols.append(symbol) + f.close() + try: + quotes = [finnhubClient.quote(symbol) for symbol in symbols] + current_prices = [quote['c'] for quote in quotes] + opening_prices = [quote['o'] for quote in quotes] - - except Exception as e: - print("Could not fetch data - API CALLS REACHED? - Will display old image") - print(e) - apiCalledError = True - return stock_info, apiCalledError + CSV = open('csv/tickers.csv', 'w+') + for i, symbol in enumerate(symbols): + symbol + ',' + str(current_prices[i]) + ',' + str(opening_prices[i]) + '\n' + CSV.write(symbol + ',' + str(current_prices[i]) + ',' + str(opening_prices[i]) + '\n') + CSV.close() + print('API called successfully') + + + except Exception as e: + print("Could not fetch data - API CALLS REACHED? - Will display old image") + print(e) + apiCalledError = True + if __name__ == '__main__': diff --git a/csv/tickers.csv b/csv/tickers.csv index 72c26a9..74e42e9 100644 --- a/csv/tickers.csv +++ b/csv/tickers.csv @@ -1,20 +1,20 @@ -MSFT,248.15,249.06 -NFLX,502.34,504.99 -GOOG,2366.54,2368.42 -TSLA,676.818,681.06 -AAPL,129.675,129.2 -INTC,56.94,56.96 -TXN,182.07,181.01 -HPQ,34.315,34.24 -HOG,49.62,48.33 -LUV,61.46,60.77 -WMT,140.6,140.71 -BJ,45.18,45.17 -ETSY,187.8,190.99 -G,47.02,47.25 -GDDY,82.985,83.24 -GNRC,320.425,318.9 -PEP,143.65,143.715 +MSFT,246.695,249.06 +NFLX,499.625,504.99 +GOOG,2362.47,2368.42 +TSLA,670.29,681.06 +AAPL,128.6,129.2 +INTC,56.775,56.96 +TXN,181.845,181.01 +HPQ,34.565,34.24 +HOG,49.65,48.33 +LUV,61.36,60.77 +WMT,140.85,140.71 +BJ,45.465,45.17 +ETSY,182.205,190.99 +G,47.15,47.25 +GDDY,82.125,83.24 +GNRC,319.07,318.9 +PEP,144.35,143.715 STMYELP,0,0 -XRAY,67.68,68.92 -ZTS,172.4995,174.2 +XRAY,67.73,68.92 +ZTS,173,174.2 diff --git a/final.ppm b/final.ppm index df47240..6e26f04 100755 Binary files a/final.ppm and b/final.ppm differ diff --git a/stockTicker.py b/stockTicker.py index 7d0485c..0920866 100644 --- a/stockTicker.py +++ b/stockTicker.py @@ -152,16 +152,7 @@ class StockTicker(): elif current_img == 2: current_img = 1 offset_x = 0 - - #Get the logo from file that is the same as ticker name - def getLogo(self, Ticker): - logos_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos') - try: - Logo = Image.open(os.path.join(logos_path, Ticker + '.png')) - except: - print('Could not find logo for: ' + Ticker + ' using default') - Logo = Image.open(os.path.join(logos_path, 'default.png')) - return Logo + #Using change between min and day price give appropriate arrow #and set the overall change colour @@ -250,12 +241,24 @@ class StockTicker(): ticker = symbol #TEXT current = '%.2f' % float(info[0]) #TEXT - logo = self.getLogo(symbol) + + arrow, change = self.getArrow(change) change = '%.2f' % change midFrame = self.textToImage(ticker, current, change, arrow) #IMAGE THE TEXT - - stitchedStock = self.stitchImage([logo,midFrame]) + + + try: + logos_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos') + print(os.path.join(logos_path, ticker + '.png')) + logo = Image.open(os.path.join(logos_path, ticker + '.png')) + stitchedStock = self.stitchImage([logo,midFrame]) + except: + print('no logo for ' + ticker) + stitchedStock = midFrame + + + image_list.append(self.blank) image_list.append(stitchedStock) @@ -361,13 +364,13 @@ if __name__ == '__main__': stock_ticker.process_msg(brightness) stock_ticker.process_msg(speed) - print(stock_ticker.delay, stock_ticker.brightness) + #t = time.time() #api_caller = pexpect.spawn("sudo -E python3 api_caller.py") #print('time to call api', time.time()-t) - #stock_ticker.getFullStockImage() - #stock_ticker.displayMatrix() + stock_ticker.getFullStockImage() + stock_ticker.displayMatrix() while True: