scrolling images and gifs. error logging.
This commit is contained in:
Binary file not shown.
@@ -1,3 +1,3 @@
|
|||||||
symbol,name,base,current,24hr change
|
symbol,name,base,current,24hr change
|
||||||
BTC,bitcoin,usd,39062,1.451872309860798
|
BTC,bitcoin,usd,36931,3.0260586808252348
|
||||||
ETH,ethereum,gbp,1957.05,1.4454835579595058
|
ETH,ethereum,gbp,1816.03,6.4687249212788815
|
||||||
|
|
@@ -1 +1 @@
|
|||||||
27/05/2021 15:08:39
|
31/05/2021 07:21:51
|
||||||
|
|
40
csv/news.csv
40
csv/news.csv
@@ -1,21 +1,21 @@
|
|||||||
headline,source,date,time
|
headline,source,date,time
|
||||||
Competitor Fears Elon Musk's SpaceX Could "Monopolise" Space - NDTV,NDTV News,2021-05-27,18:31:03Z
|
Twitter is working on tweet reactions so it can be more like Facebook - TechRadar,TechRadar,2021-05-31,10:35:22Z
|
||||||
Meme stocks mount a comeback as AMC^ GameStop shareholders squeeze short sellers again - CBC.ca,CBC News,2021-05-27,18:22:41Z
|
Three-child policy: China lifts cap on births in major policy shift - The Straits Times,The Straits Times,2021-05-31,10:24:28Z
|
||||||
U.S. administers 290.7 mln doses of COVID-19 vaccines - CDC - Financial Post,Financial Post,2021-05-27,18:13:22Z
|
Saraki^ Ahmed to face prosecution over alleged mismanagement of Kwara properties - Vanguard,Vanguard,2021-05-31,10:23:24Z
|
||||||
Covid-19: Up to 75% of new UK cases could be Indian variant - Matt Hancock - BBC News,BBC News,2021-05-27,18:09:12Z
|
Baby squid and 'water bears' part of ISS cargo: What NASA has planned for these little critters in space - Times Now,Zoom,2021-05-31,10:22:56Z
|
||||||
Super Moon vs Blood Moon - India Today,India Today,2021-05-27,18:04:39Z
|
Prof Abdool Karim says Level 2 lockdown is 'right move' - IOL,IOL,2021-05-31,10:20:51Z
|
||||||
Vaccine target for majority of adults likely to be delayed – Varadkar - The Irish Times,The Irish Times,2021-05-27,18:00:00Z
|
LIVE UPDATES: Jazz vs Grizzlies - NBA Western Conference playoffs first round 2021 - Rappler,Rappler,2021-05-31,10:17:00Z
|
||||||
'It’s a Champions League final but it’s just a football game for me' - Mahrez relaxed for Man City's big night - Goal.com,Sporting News,2021-05-27,18:00:00Z
|
Signal No. 1 up in parts of Northern^ Eastern Samar due to Tropical Storm Dante - Rappler,Rappler,2021-05-31,10:10:00Z
|
||||||
UK aid cuts ‘directly hamper’ fight against HIV^ warn politicians and Aids groups - Financial Times,Financial Times,2021-05-27,17:58:01Z
|
Duterte certifies as urgent creation of OFW department^ taxing POGOs - Rappler,Rappler,2021-05-31,10:05:00Z
|
||||||
New York Knicks ban fan from Madison Square Garden for spitting on Atlanta Hawks' Trae Young - ESPN,ESPN,2021-05-27,17:46:50Z
|
ISS Canadarm2 robotic arm survives impact with orbital debris - SlashGear,SlashGear,2021-05-31,10:03:00Z
|
||||||
I couldn't sleep for 8-9 days while I was playing: Ashwin on why he had to leave IPL midway - Times of India,The Times of India,2021-05-27,17:39:00Z
|
Nigerian govt engages Facebook over WhatsApp privacy policy - Premium Times,Premium Times,2021-05-31,09:57:59Z
|
||||||
New studies claim COVID-19 immunity may last years - New York Post ,New York Post,2021-05-27,17:35:00Z
|
The magazine of personal technology - Gadget,Gadget.co.za,2021-05-31,09:54:46Z
|
||||||
COVID-19: Matt Hancock says 'we worked as hard as we could to protect care homes' after Dominic Cummings's criticism - Sky News,Sky.com,2021-05-27,17:34:18Z
|
WhatsApp backs down on plan to block users who don’t accept controversial new privacy terms... - The Irish Sun,The Irish Sun,2021-05-31,09:53:40Z
|
||||||
Mixed reaction from experts to new guidelines on dining out - The Irish Times,The Irish Times,2021-05-27,17:33:24Z
|
New Study Shows Brain Training Programmes Not Associated With Benefits of Cognition - Gadgets 360,NDTV News,2021-05-31,09:53:09Z
|
||||||
‘Gold-standard’ contact tracing swamped as Covid sites soar - Herald Sun,Herald Sun,2021-05-27,17:32:53Z
|
Sahara Reporters publisher Omoyele Sowore says policewoman shot him - Guardian,Guardian Nigeria,2021-05-31,09:48:00Z
|
||||||
Shami receives first dose of COVID-19 vaccine - DTNext,Dtnext.in,2021-05-27,17:29:36Z
|
People who want alternative COVID-19 vaccines can get them under special access route - CNA,CNA,2021-05-31,09:45:44Z
|
||||||
Some Canadians falsely assuming Pfizer COVID-19 vaccine more effective than Moderna - CP24 Toronto's Breaking News,CP24 Toronto's Breaking News,2021-05-27,17:19:00Z
|
Ayade Sacks Four Commissioners^ Five Other Appointees - Channels Television,Channels Television,2021-05-31,09:45:00Z
|
||||||
China's Zhurong Mars rover lays down wheel tracks on the red planet - CNET,CNET,2021-05-27,17:13:00Z
|
COVID vaccination guidelines eased for pregnant^ breastfeeding women^ cancer patients - Yahoo India News,Yahoo Entertainment,2021-05-31,09:42:15Z
|
||||||
Packers still not budging on Aaron Rodgers trade possibility - NBC Sports,NBCSports.com,2021-05-27,17:09:00Z
|
Magashule gets High Court dates to challenge ANC suspension - Eyewitness News,EWN,2021-05-31,09:40:54Z
|
||||||
How John Krasinski tortured Emily Blunt (again) for 'A Quiet Place Part II' by exploiting 'her greatest weakness' - Yahoo Entertainment,Yahoo Entertainment,2021-05-27,17:01:50Z
|
UP law professors to Duterte: Act in the best interest of Filipinos^ retract remarks on WPS - ABS-CBN News,Abs-cbn.com,2021-05-31,09:40:00Z
|
||||||
Dark matter mapped using light from 100 million galaxies - The Irish News,The Irish News,2021-05-27,17:01:41Z
|
Sunday was hottest day of year with more sunshine on the way - The Irish Times,The Irish Times,2021-05-31,09:39:04Z
|
||||||
|
Can't render this file because it contains an unexpected character in line 2 and column 43.
|
@@ -1,4 +1,4 @@
|
|||||||
name,current,opening
|
name,current,opening
|
||||||
MSFT,249.575,251.17
|
MSFT,249.68,250.995
|
||||||
NFLX,501.03,501.8
|
NFLX,502.81,504.4
|
||||||
GOOG,2431.38,2436.94
|
GOOG,2411.56,2421.96
|
||||||
|
|
BIN
display_image
BIN
display_image
Binary file not shown.
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.6 KiB |
1
log.txt
1
log.txt
@@ -0,0 +1 @@
|
|||||||
|
name 'sel' is not defined. file: stockTicker.py. line: 704. type: <class 'NameError'>
|
@@ -308,6 +308,7 @@ def matrix():
|
|||||||
return hello()
|
return hello()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
app.run(host='0.0.0.0', port=1024, debug=False) # the debuggger causes flickering
|
app.run(host='0.0.0.0', port=1024, debug=False) # the debuggger causes flickering
|
||||||
|
|
||||||
#sudo ./demo -D1 final.ppm -t 50 -m 25 --led-gpio-mapping=adafruit-hat --led-rows=32 --led-cols=256 --led-slowdown-gpio=4
|
#sudo ./demo -D1 final.ppm -t 50 -m 25 --led-gpio-mapping=adafruit-hat --led-rows=32 --led-cols=256 --led-slowdown-gpio=4
|
||||||
|
102
stockTicker.py
102
stockTicker.py
@@ -98,6 +98,16 @@ class StockTicker():
|
|||||||
|
|
||||||
self.setImage(image, offset_x = offset_x, offset_y = offset_y)
|
self.setImage(image, offset_x = offset_x, offset_y = offset_y)
|
||||||
|
|
||||||
|
# remove the ppixels behind the image, to stop trailing
|
||||||
|
|
||||||
|
|
||||||
|
for x in range(offset_x + img_width, 128):
|
||||||
|
for y in range(self.matrix.height):
|
||||||
|
|
||||||
|
|
||||||
|
self.matrix.SetPixel(x , y , 0,0,0)
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
msg = getInput()
|
msg = getInput()
|
||||||
if msg == 'K':
|
if msg == 'K':
|
||||||
@@ -305,32 +315,26 @@ class StockTicker():
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
def displayGIF(self, gif_file):
|
def displayGIF(self, gif):
|
||||||
with open('log.txt', "w") as log:
|
|
||||||
|
|
||||||
try:
|
|
||||||
im = Image.open(gif_file)
|
|
||||||
|
|
||||||
# To iterate through the entire gif
|
# To iterate through the entire gif
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
while 1:
|
while True:
|
||||||
print(im.tell())
|
print(gif.tell())
|
||||||
try:
|
try:
|
||||||
im.seek(i)
|
gif.seek(i)
|
||||||
except EOFError:
|
except EOFError:
|
||||||
print('finished')
|
print('finished')
|
||||||
i = 0
|
i = 0
|
||||||
im.seek(i)
|
gif.seek(i)
|
||||||
# do something to im
|
# do something to im
|
||||||
self.setImage(im.convert('RGB'))
|
self.setImage(gif.convert('RGB'))
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
i += 1
|
i += 1
|
||||||
try:
|
try:
|
||||||
msg = getInput()
|
msg = getInput()
|
||||||
|
|
||||||
if msg == 'K':
|
if msg == 'K':
|
||||||
im.close()
|
gif.close()
|
||||||
self.resetMatrix()
|
self.resetMatrix()
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -338,8 +342,47 @@ class StockTicker():
|
|||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
pass
|
pass
|
||||||
except Exception as e:
|
|
||||||
log.write(str(e))
|
def scrollGIF(self, gif, offset_x = 0, offset_y = 0):
|
||||||
|
# To iterate through the entire gif
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
img_width, img_height = gif.size
|
||||||
|
|
||||||
|
while offset_x > -img_width:
|
||||||
|
offset_x -= 1
|
||||||
|
|
||||||
|
try:
|
||||||
|
gif.seek(i)
|
||||||
|
except EOFError:
|
||||||
|
print('finished')
|
||||||
|
i = 0
|
||||||
|
gif.seek(i)
|
||||||
|
# do something to im
|
||||||
|
self.setImage(gif.convert('RGB'), offset_x = offset_x)
|
||||||
|
time.sleep(self.delay)
|
||||||
|
|
||||||
|
if offset_x % 20 == 0:
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
for x in range(offset_x + img_width, 128):
|
||||||
|
for y in range(self.matrix.height):
|
||||||
|
|
||||||
|
self.matrix.SetPixel(x , y , 0,0,0)
|
||||||
|
|
||||||
|
try:
|
||||||
|
msg = getInput()
|
||||||
|
|
||||||
|
if msg == 'K':
|
||||||
|
gif.close()
|
||||||
|
self.resetMatrix()
|
||||||
|
break
|
||||||
|
|
||||||
|
self.process_msg(msg)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
sys.stdout.flush()
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -604,11 +647,21 @@ class StockTicker():
|
|||||||
elif msg == 'I': # image
|
elif msg == 'I': # image
|
||||||
|
|
||||||
image = self.openImage(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_image'))
|
image = self.openImage(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_image'))
|
||||||
self.setImage( image)
|
|
||||||
|
#self.setImage( image)
|
||||||
|
while True:
|
||||||
|
kill = self.scrollImage(image, offset_x = 128)
|
||||||
|
|
||||||
|
if kill:
|
||||||
|
break
|
||||||
|
|
||||||
elif msg == 'G': # gif
|
elif msg == 'G': # gif
|
||||||
|
gif = Image.open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_gif'))
|
||||||
self.displayGIF(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_gif'))
|
#self.displayGIF(gif)
|
||||||
|
while True:
|
||||||
|
kill = self.scrollGIF(gif, offset_x = 128)
|
||||||
|
if kill:
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -618,12 +671,16 @@ class StockTicker():
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
#print(sys.stdin.readlines())
|
#print(sys.stdin.readlines())
|
||||||
|
with open('log.txt', "w") as log:
|
||||||
|
try:
|
||||||
stock_ticker = StockTicker()
|
stock_ticker = StockTicker()
|
||||||
|
#stock_ticker.process_msg('G')
|
||||||
|
#stock_ticker.scrollImageTransition([os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_image'), os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_image')], stocks = False)
|
||||||
#stock_ticker.readCSV()
|
#stock_ticker.readCSV()
|
||||||
#stock_ticker.displayUserText()
|
#stock_ticker.displayUserText()
|
||||||
#
|
#
|
||||||
|
|
||||||
stock_ticker.displayNews()
|
#stock_ticker.displayNews()
|
||||||
#stock_ticker.displayGIF('/home/pi/Desktop/stock_ticker/gifs/open.gif')
|
#stock_ticker.displayGIF('/home/pi/Desktop/stock_ticker/gifs/open.gif')
|
||||||
|
|
||||||
#stock_ticker.displayGIF('/home/pi/Desktop/stock_ticker/gifs/close.gif')
|
#stock_ticker.displayGIF('/home/pi/Desktop/stock_ticker/gifs/close.gif')
|
||||||
@@ -645,6 +702,13 @@ if __name__ == '__main__':
|
|||||||
while True:
|
while True:
|
||||||
msg = getInput()
|
msg = getInput()
|
||||||
stock_ticker.process_msg(msg)
|
stock_ticker.process_msg(msg)
|
||||||
|
except Exception as e:
|
||||||
|
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||||
|
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
|
||||||
|
log.write(str(e))
|
||||||
|
log.write('. file: ' + fname)
|
||||||
|
log.write('. line: ' + str(exc_tb.tb_lineno))
|
||||||
|
log.write('. type: ' + str(exc_type))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
8
test.py
8
test.py
@@ -14,6 +14,14 @@ import pexpect
|
|||||||
from pycoingecko import CoinGeckoAPI
|
from pycoingecko import CoinGeckoAPI
|
||||||
from newsapi import NewsApiClient
|
from newsapi import NewsApiClient
|
||||||
|
|
||||||
|
import sys, os
|
||||||
|
try:
|
||||||
|
raise NotImplementedError("No error")
|
||||||
|
except Exception as e:
|
||||||
|
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||||
|
fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1]
|
||||||
|
print(exc_type, fname, exc_tb.tb_lineno, exc_obj, exc_tb)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
newsapi = NewsApiClient(api_key='cf08652bd17647b89aaf469a1a8198a9')
|
newsapi = NewsApiClient(api_key='cf08652bd17647b89aaf469a1a8198a9')
|
||||||
|
Reference in New Issue
Block a user