diff --git a/csv/commodities_settings.json b/csv/commodities_settings.json new file mode 100644 index 0000000..043aa5c --- /dev/null +++ b/csv/commodities_settings.json @@ -0,0 +1 @@ +{"feature": "Stocks", "speed": "fast", "speed2": "fast", "animation": "down", "percent": true, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"BRENTOIL": {"current": "123.053", "unit": "bbl", "24hr_change": "1.0150", "percent_change": "0.83"}, "WTIOIL": {"current": "121.588", "unit": "bbl", "24hr_change": "0.8902", "percent_change": "0.74"}, "XAU": {"current": "1821.205", "unit": "oz", "24hr_change": "4.0045", "percent_change": "0.22"}, "XAG": {"current": "21.1034", "unit": "oz", "24hr_change": "-0.0550", "percent_change": "-0.26"}, "XCU": {"current": "0.2633", "unit": "oz", "24hr_change": "-0.0006", "percent_change": "-0.22"}, "NG": {"current": "8.6595", "unit": "mmbtu", "24hr_change": "-0.0236", "percent_change": "-0.27"}, "WHEAT": {"current": "393.123", "unit": "ton", "24hr_change": "-1.2642", "percent_change": "-0.32"}, "COTTON": {"current": "1.4494", "unit": "lb", "24hr_change": "0.0004", "percent_change": "0.03"}, "RICE": {"current": "16.3849", "unit": "cwt", "24hr_change": "0.0093", "percent_change": "0.06"}, "SUGAR": {"current": "0.1866", "unit": "lb", "24hr_change": "-0.0007", "percent_change": "-0.40"}, "COCOA": {"current": "2374.074", "unit": "ton", "24hr_change": "2.5206", "percent_change": "0.11"}, "LUMBER": {"current": "527.842", "unit": "oz", "24hr_change": "0.2641", "percent_change": "0.05"}, "SOYBEAN": {"current": "17.1621", "unit": "bu", "24hr_change": "0.0270", "percent_change": "0.16"}}} \ No newline at end of file diff --git a/csv/last_updates.json b/csv/last_updates.json new file mode 100644 index 0000000..4f8d954 --- /dev/null +++ b/csv/last_updates.json @@ -0,0 +1 @@ +{"stocks": {"time": "14/06/2022 06:42:06", "force": false}, "crypto": {"time": "14/06/2022 06:58:18", "force": false}, "news": {"time": "14/06/2022 05:29:08", "force": false}, "weather": {"time": "14/06/2022 05:29:08", "force": false}, "forex": {"time": "14/06/2022 05:29:14", "force": false}, "sports_l": {"time": "14/06/2022 04:42:37", "force": false}, "sports_p": {"time": "14/06/2022 06:27:34", "force": false}, "sports_u": {"time": "14/06/2022 06:28:34", "force": false}, "sports_t": {"time": "14/06/2022 06:26:23", "force": false}, "commodities": {"time": "14/06/2022 06:51:07", "force": false}} \ No newline at end of file diff --git a/csv/sports/MLB/team_info.csv b/csv/sports/MLB/team_info.csv new file mode 100644 index 0000000..313cb67 --- /dev/null +++ b/csv/sports/MLB/team_info.csv @@ -0,0 +1,31 @@ +Full Team Name,Team ID,3 Letter ID,Team Color,Logo File name +Arizona Diamondbacks,135267,ARI,Red,diamondbacks.png +Atlanta Braves,135268,ATL,Red,braves.png +Baltimore Orioles,135251,BAL,Orange,orioles.png +Boston Red Sox,135252,BOS,Red,redsox.png +Chicago Cubs,135269,CHC,Blue,cubs.png +Chicago White Sox,135253,CWS,Gray,whitesox.png +Cincinnati Reds,135270,CIN,Red,reds.png +Cleveland Guardians,135254,CLE,Red,indians.png +Colorado Rockies,135271,COL,Purple,rockies.png +Detroit Tigers,135255,DET,Blue,tigers.png +Houston Astros,135256,HOU,Orange,astros.png +Kansas City Royals,135257,KC,Gold,royals.png +Los Angeles Angels,135258,LAA,Red,angels.png +Los Angeles Dodgers,135272,LAD,Blue,dodgers.png +Miami Marlins,135273,MIA,Light blue,marlins.png +Milwaukee Brewers,135274,MIL,Gold,brewers.png +Minnesota Twins,135259,MIN,Red,twins.png +New York Mets,135275,NYM,Orange,mets.png +New York Yankees,135260,NYY,Blue,yankees.png +Oakland Athletics,135261,OAK,Green,athletics.png +Philadelphia Phillies,135276,PHI,Red,phillies.png +Pittsburgh Pirates,135277,PIT,Gold,pirates.png +San Diego Padres,135278,SD,Gold,padres.png +San Francisco Giants,135279,SF,Orange,giants.png +Seattle Mariners,135262,SEA,Blue,mariners.png +St. Louis Cardinals,135280,STL,Red,cardinals.png +Tampa Bay Rays,135263,TB,Blue,rays.png +Texas Rangers,135264,TEX,Red,rangers.png +Toronto Blue Jays,135265,TOR,Blue,bluejays.png +Washington Nationals,135281,WSH,Red,nationals.png diff --git a/csv/sports/MLS/team_info.csv b/csv/sports/MLS/team_info.csv new file mode 100644 index 0000000..09b9411 --- /dev/null +++ b/csv/sports/MLS/team_info.csv @@ -0,0 +1,29 @@ +Full Team Name,Team ID,3 Letter ID,Team Color,Logo File name +Atlanta United,135851,ATL,Gold,Atlanta.png +Austin FC,140079,AUS,Green,Austin.png +CF Montréal,134150,MTL,Gray,Montreal.png +Charlotte FC,140078,CHA,Blue,Charlotte.png +Chicago Fire,134154,CHI,Orange,Chicago.png +Colorado Rapids,134794,COL,Red,Colorado.png +Columbus Crew,134152,CBS,Yellow,Columbus.png +DC United,134145,DC,Red,DC.png +FC Cincinnati,136688,CIN,Orange,Cincinnati.png +FC Dallas,134146,DAL,Blue,Dallas.png +Houston Dynamo,134144,HOU,Orange,Houston.png +Inter Miami,137699,MIA,Pink,Miami.png +L.A. Galaxy,134153,LA,Yellow,LA-Galaxy.png +Los Angeles FC,136050,LA,Gold,LAFC.png +Minnesota United,135852,MIN,Light Blue,Minnesota.png +Nashville SC,137700,NSH,Yellow,Nashville.png +New England Rev.,134159,NE,Red,New-England.png +New York City,134630,NYF,Light Blue,NYC.png +New York Red Bulls,134156,NYR,Red,New-York.png +Orlando City,135292,PHI,Purple,Orlando.png +Philadelphia Union,134142,PHI,Gold,Philadelphia.png +Portland Timbers,134155,POR,Green,Portland.png +Real Salt Lake,134158,RSL,Gold,Salt-Lake.png +San Jose Earthquakes,134157,SJ,Light Blue,San-Jose.png +Seattle Sounders FC,134149,SEA,Green,Seattle.png +Sporting Kansas City,134143,KC,Blue,Kansas-City.png +Toronto FC,134148,TOR,Red,Toronto.png +Vancouver Whitecaps,134147,VAN,Blue,Vancouver.png \ No newline at end of file diff --git a/csv/sports/NHL/team_info.csv b/csv/sports/NHL/team_info.csv index f485032..f62c90e 100644 --- a/csv/sports/NHL/team_info.csv +++ b/csv/sports/NHL/team_info.csv @@ -1,33 +1,33 @@ -Full Team Name,Team ID,3 Letter ID,Team Color,Logo File name,,Season -Arizona Coyotes,134847,ARI,Red,coyotes.png,,Off -Anaheim Ducks,134846,ANA,Gold,ducks.png,,Pre -Boston Bruins,134830,BOS,Yellow,bruins.png,,On -Colorado Avalanche,134855,COL,Red,avalanche.png,,Semi Finals -Chicago Blackhawks,134854,CHI,Orange,blackhawks.png,,Finals -Columbus Blue Jackets,134839,CBJ,Blue,blue-jackets.png,, -St. Louis Blues,134859,STL,Blue,blues.png,, -Montreal Canadiens,134834,MTL,Red,canadiens.png,, -Vancouver Canucks,134850,VAN,Blue,canucks.png,, -Washington Capitals,134845,WSH,Blue,capitals.png,, -New Jersey Devils,134840,NJD,Red,devils.png,, -Calgary Flames,134848,CGY,Orange,flames.png,, -Philadelphia Flyers,134843,PHI,White,flyers.png,, -Carolina Hurricanes,134838,CAR,Red,hurricanes.png,, -New York Islanders,134841,NYI,Orange,islanders.png,, -Winnipeg Jets,134851,WPG,Blue,jets.png,, -Los Angeles Kings,134852,LAK,Gray,kings.png,, -Vegas Golden Knights,135913,VGK,Gold,knights.png,, -Tampa Bay Lightning,134836,TBL,Blue,lightning.png,, -Toronto Maple Leafs,134837,TOR,Blue,maple-leafs.png,, -Edmonton Oilers,134849,EDM,Orange,oilers.png,, -Florida Panthers,134833,FLA,Red,panthers.png,, -Pittsburgh Penguins,134844,PIT,Yellow,penguins.png,, -Nashville Predators,134858,NSH,Yellow,predators.png,, -New York Rangers,134842,NYR,Blue,rangers.png,, -Detroit Red Wings,134832,DET,Red,red-wings.png,, -Buffalo Sabres,134831,BUF,Yellow,sabres.png,, -Ottawa Senators,134835,OTT,Gold,senators.png,, -San Jose Sharks,134853,SJS,Light blue,sharks.png,, -Dallas Stars,134856,DAL,Green,stars.png,, -Minnesota Wild,134857,MIN,Green,wild.png,, -Seattle Kraken,140082,SEA,Light blue,kraken.png,, \ No newline at end of file +Full Team Name,Team ID,3 Letter ID,Team Color,Logo File name +Arizona Coyotes,134847,ARI,Red,coyotes.png +Anaheim Ducks,134846,ANA,Gold,ducks.png +Boston Bruins,134830,BOS,Yellow,bruins.png +Colorado Avalanche,134855,COL,Red,avalanche.png +Chicago Blackhawks,134854,CHI,Orange,blackhawks.png +Columbus Blue Jackets,134839,CBJ,Blue,blue-jackets.png +St. Louis Blues,134859,STL,Blue,blues.png +Montreal Canadiens,134834,MTL,Red,canadiens.png +Vancouver Canucks,134850,VAN,Blue,canucks.png +Washington Capitals,134845,WSH,Blue,capitals.png +New Jersey Devils,134840,NJD,Red,devils.png +Calgary Flames,134848,CGY,Orange,flames.png +Philadelphia Flyers,134843,PHI,White,flyers.png +Carolina Hurricanes,134838,CAR,Red,hurricanes.png +New York Islanders,134841,NYI,Orange,islanders.png +Winnipeg Jets,134851,WPG,Blue,jets.png +Los Angeles Kings,134852,LAK,Gray,kings.png +Vegas Golden Knights,135913,VGK,Gold,knights.png +Tampa Bay Lightning,134836,TBL,Blue,lightning.png +Toronto Maple Leafs,134837,TOR,Blue,maple-leafs.png +Edmonton Oilers,134849,EDM,Orange,oilers.png +Florida Panthers,134833,FLA,Red,panthers.png +Pittsburgh Penguins,134844,PIT,Yellow,penguins.png +Nashville Predators,134858,NSH,Yellow,predators.png +New York Rangers,134842,NYR,Blue,rangers.png +Detroit Red Wings,134832,DET,Red,red-wings.png +Buffalo Sabres,134831,BUF,Yellow,sabres.png +Ottawa Senators,134835,OTT,Gold,senators.png +San Jose Sharks,134853,SJS,Light blue,sharks.png +Dallas Stars,134856,DAL,Green,stars.png +Minnesota Wild,134857,MIN,Green,wild.png +Seattle Kraken,140082,SEA,Light blue,kraken.png diff --git a/database_caller.py b/database_caller.py index 0ce053d..5bbea0d 100755 --- a/database_caller.py +++ b/database_caller.py @@ -94,7 +94,51 @@ def updateStocks(api_key, logf): logf.write('. type: ' + str(exc_type)) logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) logf.close() + +def updateCommodities(api_key, logf): + + try: + + f = open('csv/commodities_settings.json', 'r') + all_commodities_settings = json.load(f) + f.close() + commodity_info = all_commodities_settings['symbols'] + symbols = list(commodity_info.keys()) + + url = 'https://bm7p954xoh.execute-api.us-east-2.amazonaws.com/default/ScriptsAPI/commodities?symbols=' + + for symbol in symbols: + url += symbol + ',' + + url += '&apiKey=' + api_key + response = requests.get(url) + data = response.json() + + + commodity_info = {} + if len(data) > 0: + for symbol in symbols: + for commodity in data: + if commodity['symbol'] == symbol: + commodity_info[commodity['symbol']] = {'current': commodity['price'], 'unit': commodity['unit'], '24hr_change': commodity['price_over_24hr'], 'percent_change': commodity['percent_over_24hr']} + + all_commodities_settings['symbols'] = commodity_info + f = open('csv/commodities_settings.json', 'w+') + json.dump(all_commodities_settings, f) + f.close() + + except Exception as e: + + logf = open('log.txt', "a") + exc_type, exc_obj, exc_tb = sys.exc_info() + fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] + logf.write(str(e)) + logf.write('. file: ' + fname) + logf.write('. line: ' + str(exc_tb.tb_lineno)) + logf.write('. type: ' + str(exc_type)) + logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) + logf.close() def updateCrypto(api_key, logf): @@ -607,7 +651,7 @@ if __name__ == '__main__': - update_frequencies = {'stocks':2, 'crypto':5, 'forex':60, 'news':120, 'weather': 120, 'sports': 1440} #minutes + update_frequencies = {'stocks':2, 'crypto':5, 'forex':60, 'news':120, 'weather': 120, 'sports': 1440, 'commodities': 15} #minutes NY_zone = pytz.timezone('America/New_York') CET_zone = pytz.timezone('EST') @@ -650,7 +694,18 @@ if __name__ == '__main__': t = time.time() update_processes = [] - + try: + time.sleep(60) + f = open('csv/last_updates.json', 'r') + last_updates = json.load(f) + f.close() + last_updates['stocks']['force'] = True + #last_updates['weather']['force'] = True + f = open('csv/last_updates.json', 'w') + json.dump(last_updates, f) + f.close() + except: + pass @@ -667,7 +722,7 @@ if __name__ == '__main__': "news": {"time": "06/03/2022 04:07:09", "force": True}, "weather": {"time": "06/03/2022 04:08:20", "force": True}, "forex": {"time": "06/03/2022 03:54:02", "force": True}, "sports_l": {"time": "06/03/2022 04:10:09", "force": True}, "sports_p": {"time": "06/03/2022 04:10:09", "force": True}, - "sports_u": {"time": "06/03/2022 04:10:09", "force": True},"sports_t": {"time": "06/03/2022 04:10:09", "force": True}} + "sports_u": {"time": "06/03/2022 04:10:09", "force": True},"sports_t": {"time": "06/03/2022 04:10:09", "force": True}, "commodities": {"time": "06/03/2022 04:10:09", "force": True}} @@ -717,7 +772,25 @@ if __name__ == '__main__': update_process = Process(target = updateCrypto, args = (api_key,logf)) update_process.start() update_processes.append(update_process) - + + # commodities + commodities_time = datetime.strptime(last_updates['commodities']['time'], "%d/%m/%Y %H:%M:%S") + + + NY_time = datetime.now(NY_zone).replace(tzinfo=None) + diff = (NY_time - commodities_time).total_seconds()/60 #minutes + + + if last_updates['commodities']['force'] or diff >= update_frequencies['commodities']:# or msg == 'c': + commodities_time = NY_time.strftime("%d/%m/%Y %H:%M:%S") + #updateCrypto(api_key, logf) + + + last_updates['commodities']['time'] = commodities_time + last_updates['commodities']['force'] = False + update_process = Process(target = updateCommodities, args = (api_key,logf)) + update_process.start() + update_processes.append(update_process) # weather weather_time = datetime.strptime(last_updates['weather']['time'], "%d/%m/%Y %H:%M:%S") diff --git a/feature_titles/commodities.png b/feature_titles/commodities.png new file mode 100644 index 0000000..4f6735c Binary files /dev/null and b/feature_titles/commodities.png differ diff --git a/feature_titles/small_feature_titles/commodities.png b/feature_titles/small_feature_titles/commodities.png new file mode 100644 index 0000000..f0a6f8f Binary files /dev/null and b/feature_titles/small_feature_titles/commodities.png differ diff --git a/logos/commodities/ALU(oz).png b/logos/commodities/ALU(oz).png new file mode 100644 index 0000000..1501723 Binary files /dev/null and b/logos/commodities/ALU(oz).png differ diff --git a/logos/commodities/BRENTOIL(bbl).png b/logos/commodities/BRENTOIL(bbl).png new file mode 100644 index 0000000..6f8ffca Binary files /dev/null and b/logos/commodities/BRENTOIL(bbl).png differ diff --git a/logos/commodities/COCOA(ton).png b/logos/commodities/COCOA(ton).png new file mode 100644 index 0000000..1e0e12b Binary files /dev/null and b/logos/commodities/COCOA(ton).png differ diff --git a/logos/commodities/COFFEE(lb).png b/logos/commodities/COFFEE(lb).png new file mode 100644 index 0000000..ab1c795 Binary files /dev/null and b/logos/commodities/COFFEE(lb).png differ diff --git a/logos/commodities/CORN(bu).png b/logos/commodities/CORN(bu).png new file mode 100644 index 0000000..397f556 Binary files /dev/null and b/logos/commodities/CORN(bu).png differ diff --git a/logos/commodities/COTTON(lb).png b/logos/commodities/COTTON(lb).png new file mode 100644 index 0000000..eb5e2eb Binary files /dev/null and b/logos/commodities/COTTON(lb).png differ diff --git a/logos/commodities/CPO(10 ton).png b/logos/commodities/CPO(10 ton).png new file mode 100644 index 0000000..8c78267 Binary files /dev/null and b/logos/commodities/CPO(10 ton).png differ diff --git a/logos/commodities/ETHANOL(gal).png b/logos/commodities/ETHANOL(gal).png new file mode 100644 index 0000000..80de252 Binary files /dev/null and b/logos/commodities/ETHANOL(gal).png differ diff --git a/logos/commodities/IRD(oz).png b/logos/commodities/IRD(oz).png new file mode 100644 index 0000000..0a86be2 Binary files /dev/null and b/logos/commodities/IRD(oz).png differ diff --git a/logos/commodities/LCO(oz).png b/logos/commodities/LCO(oz).png new file mode 100644 index 0000000..5f3984b Binary files /dev/null and b/logos/commodities/LCO(oz).png differ diff --git a/logos/commodities/LUMBER(oz).png b/logos/commodities/LUMBER(oz).png new file mode 100644 index 0000000..0e4fbbd Binary files /dev/null and b/logos/commodities/LUMBER(oz).png differ diff --git a/logos/commodities/NG(mmbtu).png b/logos/commodities/NG(mmbtu).png new file mode 100644 index 0000000..169b62b Binary files /dev/null and b/logos/commodities/NG(mmbtu).png differ diff --git a/logos/commodities/NI(oz).png b/logos/commodities/NI(oz).png new file mode 100644 index 0000000..1501723 Binary files /dev/null and b/logos/commodities/NI(oz).png differ diff --git a/logos/commodities/RICE(cwt).png b/logos/commodities/RICE(cwt).png new file mode 100644 index 0000000..8154978 Binary files /dev/null and b/logos/commodities/RICE(cwt).png differ diff --git a/logos/commodities/ROBUSTA(ton).png b/logos/commodities/ROBUSTA(ton).png new file mode 100644 index 0000000..ab1c795 Binary files /dev/null and b/logos/commodities/ROBUSTA(ton).png differ diff --git a/logos/commodities/RUBBER(kg).png b/logos/commodities/RUBBER(kg).png new file mode 100644 index 0000000..abd6c65 Binary files /dev/null and b/logos/commodities/RUBBER(kg).png differ diff --git a/logos/commodities/RUTH(oz).png b/logos/commodities/RUTH(oz).png new file mode 100644 index 0000000..7489679 Binary files /dev/null and b/logos/commodities/RUTH(oz).png differ diff --git a/logos/commodities/SOYBEAN(bu).png b/logos/commodities/SOYBEAN(bu).png new file mode 100644 index 0000000..a2792d4 Binary files /dev/null and b/logos/commodities/SOYBEAN(bu).png differ diff --git a/logos/commodities/SUGAR(lb).png b/logos/commodities/SUGAR(lb).png new file mode 100644 index 0000000..eb666cc Binary files /dev/null and b/logos/commodities/SUGAR(lb).png differ diff --git a/logos/commodities/TIN(oz).png b/logos/commodities/TIN(oz).png new file mode 100644 index 0000000..97c5b0d Binary files /dev/null and b/logos/commodities/TIN(oz).png differ diff --git a/logos/commodities/WHEAT(ton).png b/logos/commodities/WHEAT(ton).png new file mode 100644 index 0000000..904fa11 Binary files /dev/null and b/logos/commodities/WHEAT(ton).png differ diff --git a/logos/commodities/WTIOIL(bbl).png b/logos/commodities/WTIOIL(bbl).png new file mode 100644 index 0000000..c5f3b27 Binary files /dev/null and b/logos/commodities/WTIOIL(bbl).png differ diff --git a/logos/commodities/XAG(oz).png b/logos/commodities/XAG(oz).png new file mode 100644 index 0000000..1501723 Binary files /dev/null and b/logos/commodities/XAG(oz).png differ diff --git a/logos/commodities/XAU(oz).png b/logos/commodities/XAU(oz).png new file mode 100644 index 0000000..0fdbb8a Binary files /dev/null and b/logos/commodities/XAU(oz).png differ diff --git a/logos/commodities/XCU(oz).png b/logos/commodities/XCU(oz).png new file mode 100644 index 0000000..67dfffa Binary files /dev/null and b/logos/commodities/XCU(oz).png differ diff --git a/logos/commodities/XDR(sdr).png b/logos/commodities/XDR(sdr).png new file mode 100644 index 0000000..64205a8 Binary files /dev/null and b/logos/commodities/XDR(sdr).png differ diff --git a/logos/commodities/XPD(oz).png b/logos/commodities/XPD(oz).png new file mode 100644 index 0000000..5d1a18c Binary files /dev/null and b/logos/commodities/XPD(oz).png differ diff --git a/logos/commodities/XPT(oz).png b/logos/commodities/XPT(oz).png new file mode 100644 index 0000000..62938f8 Binary files /dev/null and b/logos/commodities/XPT(oz).png differ diff --git a/logos/commodities/XRH(oz).png b/logos/commodities/XRH(oz).png new file mode 100644 index 0000000..09c2a27 Binary files /dev/null and b/logos/commodities/XRH(oz).png differ diff --git a/logos/commodities/ZNC(oz).png b/logos/commodities/ZNC(oz).png new file mode 100644 index 0000000..fe69d15 Binary files /dev/null and b/logos/commodities/ZNC(oz).png differ diff --git a/logos/sports/MLB/angels.png b/logos/sports/MLB/angels.png new file mode 100644 index 0000000..7980ca2 Binary files /dev/null and b/logos/sports/MLB/angels.png differ diff --git a/logos/sports/MLB/astros.png b/logos/sports/MLB/astros.png new file mode 100644 index 0000000..2aad1c3 Binary files /dev/null and b/logos/sports/MLB/astros.png differ diff --git a/logos/sports/MLB/athletics.png b/logos/sports/MLB/athletics.png new file mode 100644 index 0000000..1e7d4bb Binary files /dev/null and b/logos/sports/MLB/athletics.png differ diff --git a/logos/sports/MLB/bluejays.png b/logos/sports/MLB/bluejays.png new file mode 100644 index 0000000..4129c2c Binary files /dev/null and b/logos/sports/MLB/bluejays.png differ diff --git a/logos/sports/MLB/braves.png b/logos/sports/MLB/braves.png new file mode 100644 index 0000000..d9397ef Binary files /dev/null and b/logos/sports/MLB/braves.png differ diff --git a/logos/sports/MLB/brewers.png b/logos/sports/MLB/brewers.png new file mode 100644 index 0000000..c460c5b Binary files /dev/null and b/logos/sports/MLB/brewers.png differ diff --git a/logos/sports/MLB/cardinals.png b/logos/sports/MLB/cardinals.png new file mode 100644 index 0000000..b52d9c7 Binary files /dev/null and b/logos/sports/MLB/cardinals.png differ diff --git a/logos/sports/MLB/cubs.png b/logos/sports/MLB/cubs.png new file mode 100644 index 0000000..ab4809d Binary files /dev/null and b/logos/sports/MLB/cubs.png differ diff --git a/logos/sports/MLB/diamondbacks.png b/logos/sports/MLB/diamondbacks.png new file mode 100644 index 0000000..fe28970 Binary files /dev/null and b/logos/sports/MLB/diamondbacks.png differ diff --git a/logos/sports/MLB/dodgers.png b/logos/sports/MLB/dodgers.png new file mode 100644 index 0000000..e314e14 Binary files /dev/null and b/logos/sports/MLB/dodgers.png differ diff --git a/logos/sports/MLB/giants.png b/logos/sports/MLB/giants.png new file mode 100644 index 0000000..f89cbf1 Binary files /dev/null and b/logos/sports/MLB/giants.png differ diff --git a/logos/sports/MLB/indians.png b/logos/sports/MLB/indians.png new file mode 100644 index 0000000..25f634f Binary files /dev/null and b/logos/sports/MLB/indians.png differ diff --git a/logos/sports/MLB/mariners.png b/logos/sports/MLB/mariners.png new file mode 100644 index 0000000..abcfb32 Binary files /dev/null and b/logos/sports/MLB/mariners.png differ diff --git a/logos/sports/MLB/marlins.png b/logos/sports/MLB/marlins.png new file mode 100644 index 0000000..a959326 Binary files /dev/null and b/logos/sports/MLB/marlins.png differ diff --git a/logos/sports/MLB/mets.png b/logos/sports/MLB/mets.png new file mode 100644 index 0000000..4c69196 Binary files /dev/null and b/logos/sports/MLB/mets.png differ diff --git a/logos/sports/MLB/nationals.png b/logos/sports/MLB/nationals.png new file mode 100644 index 0000000..13bc03e Binary files /dev/null and b/logos/sports/MLB/nationals.png differ diff --git a/logos/sports/MLB/orioles.png b/logos/sports/MLB/orioles.png new file mode 100644 index 0000000..8b3c405 Binary files /dev/null and b/logos/sports/MLB/orioles.png differ diff --git a/logos/sports/MLB/padres.png b/logos/sports/MLB/padres.png new file mode 100644 index 0000000..3f11953 Binary files /dev/null and b/logos/sports/MLB/padres.png differ diff --git a/logos/sports/MLB/phillies.png b/logos/sports/MLB/phillies.png new file mode 100644 index 0000000..70c3131 Binary files /dev/null and b/logos/sports/MLB/phillies.png differ diff --git a/logos/sports/MLB/pirates.png b/logos/sports/MLB/pirates.png new file mode 100644 index 0000000..7985313 Binary files /dev/null and b/logos/sports/MLB/pirates.png differ diff --git a/logos/sports/MLB/rangers.png b/logos/sports/MLB/rangers.png new file mode 100644 index 0000000..4529108 Binary files /dev/null and b/logos/sports/MLB/rangers.png differ diff --git a/logos/sports/MLB/rays.png b/logos/sports/MLB/rays.png new file mode 100644 index 0000000..bbc404e Binary files /dev/null and b/logos/sports/MLB/rays.png differ diff --git a/logos/sports/MLB/reds.png b/logos/sports/MLB/reds.png new file mode 100644 index 0000000..e4824de Binary files /dev/null and b/logos/sports/MLB/reds.png differ diff --git a/logos/sports/MLB/redsox.png b/logos/sports/MLB/redsox.png new file mode 100644 index 0000000..e39b0b7 Binary files /dev/null and b/logos/sports/MLB/redsox.png differ diff --git a/logos/sports/MLB/rockies.png b/logos/sports/MLB/rockies.png new file mode 100644 index 0000000..105a5c9 Binary files /dev/null and b/logos/sports/MLB/rockies.png differ diff --git a/logos/sports/MLB/royals.png b/logos/sports/MLB/royals.png new file mode 100644 index 0000000..083317b Binary files /dev/null and b/logos/sports/MLB/royals.png differ diff --git a/logos/sports/MLB/tigers.png b/logos/sports/MLB/tigers.png new file mode 100644 index 0000000..096cb7d Binary files /dev/null and b/logos/sports/MLB/tigers.png differ diff --git a/logos/sports/MLB/twins.png b/logos/sports/MLB/twins.png new file mode 100644 index 0000000..ca44e13 Binary files /dev/null and b/logos/sports/MLB/twins.png differ diff --git a/logos/sports/MLB/whitesox.png b/logos/sports/MLB/whitesox.png new file mode 100644 index 0000000..8fbe45e Binary files /dev/null and b/logos/sports/MLB/whitesox.png differ diff --git a/logos/sports/MLB/yankees.png b/logos/sports/MLB/yankees.png new file mode 100644 index 0000000..93052b2 Binary files /dev/null and b/logos/sports/MLB/yankees.png differ diff --git a/logos/sports/MLS/Atlanta.png b/logos/sports/MLS/Atlanta.png new file mode 100644 index 0000000..bcdf443 Binary files /dev/null and b/logos/sports/MLS/Atlanta.png differ diff --git a/logos/sports/MLS/Austin.png b/logos/sports/MLS/Austin.png new file mode 100644 index 0000000..2af8350 Binary files /dev/null and b/logos/sports/MLS/Austin.png differ diff --git a/logos/sports/MLS/Charlotte.png b/logos/sports/MLS/Charlotte.png new file mode 100644 index 0000000..76247de Binary files /dev/null and b/logos/sports/MLS/Charlotte.png differ diff --git a/logos/sports/MLS/Chicago.png b/logos/sports/MLS/Chicago.png new file mode 100644 index 0000000..f75ce36 Binary files /dev/null and b/logos/sports/MLS/Chicago.png differ diff --git a/logos/sports/MLS/Cincinnati.png b/logos/sports/MLS/Cincinnati.png new file mode 100644 index 0000000..d559698 Binary files /dev/null and b/logos/sports/MLS/Cincinnati.png differ diff --git a/logos/sports/MLS/Colorado.png b/logos/sports/MLS/Colorado.png new file mode 100644 index 0000000..bc6199e Binary files /dev/null and b/logos/sports/MLS/Colorado.png differ diff --git a/logos/sports/MLS/Columbus.png b/logos/sports/MLS/Columbus.png new file mode 100644 index 0000000..c6b6c44 Binary files /dev/null and b/logos/sports/MLS/Columbus.png differ diff --git a/logos/sports/MLS/DC.png b/logos/sports/MLS/DC.png new file mode 100644 index 0000000..dbe33c5 Binary files /dev/null and b/logos/sports/MLS/DC.png differ diff --git a/logos/sports/MLS/Dallas.png b/logos/sports/MLS/Dallas.png new file mode 100644 index 0000000..e5b2d98 Binary files /dev/null and b/logos/sports/MLS/Dallas.png differ diff --git a/logos/sports/MLS/Houston.png b/logos/sports/MLS/Houston.png new file mode 100644 index 0000000..f625dab Binary files /dev/null and b/logos/sports/MLS/Houston.png differ diff --git a/logos/sports/MLS/Kansas-City.png b/logos/sports/MLS/Kansas-City.png new file mode 100644 index 0000000..9664548 Binary files /dev/null and b/logos/sports/MLS/Kansas-City.png differ diff --git a/logos/sports/MLS/LA-Galaxy.png b/logos/sports/MLS/LA-Galaxy.png new file mode 100644 index 0000000..ccd0f3c Binary files /dev/null and b/logos/sports/MLS/LA-Galaxy.png differ diff --git a/logos/sports/MLS/LAFC.png b/logos/sports/MLS/LAFC.png new file mode 100644 index 0000000..da01348 Binary files /dev/null and b/logos/sports/MLS/LAFC.png differ diff --git a/logos/sports/MLS/Miami.png b/logos/sports/MLS/Miami.png new file mode 100644 index 0000000..445c997 Binary files /dev/null and b/logos/sports/MLS/Miami.png differ diff --git a/logos/sports/MLS/Minnesota.png b/logos/sports/MLS/Minnesota.png new file mode 100644 index 0000000..f3f14be Binary files /dev/null and b/logos/sports/MLS/Minnesota.png differ diff --git a/logos/sports/MLS/Montreal.png b/logos/sports/MLS/Montreal.png new file mode 100644 index 0000000..34ec560 Binary files /dev/null and b/logos/sports/MLS/Montreal.png differ diff --git a/logos/sports/MLS/NYC.png b/logos/sports/MLS/NYC.png new file mode 100644 index 0000000..78d1d9b Binary files /dev/null and b/logos/sports/MLS/NYC.png differ diff --git a/logos/sports/MLS/Nashville.png b/logos/sports/MLS/Nashville.png new file mode 100644 index 0000000..d62ab76 Binary files /dev/null and b/logos/sports/MLS/Nashville.png differ diff --git a/logos/sports/MLS/New-England.png b/logos/sports/MLS/New-England.png new file mode 100644 index 0000000..fa74e60 Binary files /dev/null and b/logos/sports/MLS/New-England.png differ diff --git a/logos/sports/MLS/New-York.png b/logos/sports/MLS/New-York.png new file mode 100644 index 0000000..7bedab4 Binary files /dev/null and b/logos/sports/MLS/New-York.png differ diff --git a/logos/sports/MLS/Orlando.png b/logos/sports/MLS/Orlando.png new file mode 100644 index 0000000..fda6d0f Binary files /dev/null and b/logos/sports/MLS/Orlando.png differ diff --git a/logos/sports/MLS/Philadelphia.png b/logos/sports/MLS/Philadelphia.png new file mode 100644 index 0000000..a8139d8 Binary files /dev/null and b/logos/sports/MLS/Philadelphia.png differ diff --git a/logos/sports/MLS/Portland.png b/logos/sports/MLS/Portland.png new file mode 100644 index 0000000..ded97cb Binary files /dev/null and b/logos/sports/MLS/Portland.png differ diff --git a/logos/sports/MLS/Salt-Lake.png b/logos/sports/MLS/Salt-Lake.png new file mode 100644 index 0000000..b36f80a Binary files /dev/null and b/logos/sports/MLS/Salt-Lake.png differ diff --git a/logos/sports/MLS/San-Jose.png b/logos/sports/MLS/San-Jose.png new file mode 100644 index 0000000..b29b750 Binary files /dev/null and b/logos/sports/MLS/San-Jose.png differ diff --git a/logos/sports/MLS/Seattle.png b/logos/sports/MLS/Seattle.png new file mode 100644 index 0000000..cac83ca Binary files /dev/null and b/logos/sports/MLS/Seattle.png differ diff --git a/logos/sports/MLS/Toronto.png b/logos/sports/MLS/Toronto.png new file mode 100644 index 0000000..f2ebff5 Binary files /dev/null and b/logos/sports/MLS/Toronto.png differ diff --git a/logos/sports/MLS/Vancouver.png b/logos/sports/MLS/Vancouver.png new file mode 100644 index 0000000..bbda4e9 Binary files /dev/null and b/logos/sports/MLS/Vancouver.png differ diff --git a/logos/sports/league_logos/MLB.png b/logos/sports/league_logos/MLB.png new file mode 100644 index 0000000..9690439 Binary files /dev/null and b/logos/sports/league_logos/MLB.png differ diff --git a/logos/sports/league_logos/MLS.png b/logos/sports/league_logos/MLS.png new file mode 100644 index 0000000..5e186d2 Binary files /dev/null and b/logos/sports/league_logos/MLS.png differ diff --git a/logos/stocks/ABOS.png b/logos/stocks/ABOS.png new file mode 100644 index 0000000..83281f1 Binary files /dev/null and b/logos/stocks/ABOS.png differ diff --git a/logos/stocks/ABUS.png b/logos/stocks/ABUS.png new file mode 100644 index 0000000..5310024 Binary files /dev/null and b/logos/stocks/ABUS.png differ diff --git a/logos/stocks/ADNT.png b/logos/stocks/ADNT.png new file mode 100644 index 0000000..dcff5d1 Binary files /dev/null and b/logos/stocks/ADNT.png differ diff --git a/logos/stocks/ADS.png b/logos/stocks/ADS.png new file mode 100644 index 0000000..0188fd7 Binary files /dev/null and b/logos/stocks/ADS.png differ diff --git a/logos/stocks/ADTH.png b/logos/stocks/ADTH.png new file mode 100644 index 0000000..d763d16 Binary files /dev/null and b/logos/stocks/ADTH.png differ diff --git a/logos/stocks/AEYE.png b/logos/stocks/AEYE.png new file mode 100644 index 0000000..09e4da0 Binary files /dev/null and b/logos/stocks/AEYE.png differ diff --git a/logos/stocks/AGFY.png b/logos/stocks/AGFY.png new file mode 100644 index 0000000..e3476e0 Binary files /dev/null and b/logos/stocks/AGFY.png differ diff --git a/logos/stocks/AGTI.png b/logos/stocks/AGTI.png new file mode 100644 index 0000000..9360528 Binary files /dev/null and b/logos/stocks/AGTI.png differ diff --git a/logos/stocks/AGYS.png b/logos/stocks/AGYS.png new file mode 100644 index 0000000..12afe36 Binary files /dev/null and b/logos/stocks/AGYS.png differ diff --git a/logos/stocks/AHCO.png b/logos/stocks/AHCO.png new file mode 100644 index 0000000..cf1922c Binary files /dev/null and b/logos/stocks/AHCO.png differ diff --git a/logos/stocks/AINV.png b/logos/stocks/AINV.png new file mode 100644 index 0000000..00b16e9 Binary files /dev/null and b/logos/stocks/AINV.png differ diff --git a/logos/stocks/AIZ.png b/logos/stocks/AIZ.png new file mode 100644 index 0000000..061551b Binary files /dev/null and b/logos/stocks/AIZ.png differ diff --git a/logos/stocks/ALCO.png b/logos/stocks/ALCO.png new file mode 100644 index 0000000..032e726 Binary files /dev/null and b/logos/stocks/ALCO.png differ diff --git a/logos/stocks/ALLG.png b/logos/stocks/ALLG.png new file mode 100644 index 0000000..39c9ad8 Binary files /dev/null and b/logos/stocks/ALLG.png differ diff --git a/logos/stocks/ALLT.png b/logos/stocks/ALLT.png new file mode 100644 index 0000000..b889af5 Binary files /dev/null and b/logos/stocks/ALLT.png differ diff --git a/logos/stocks/ALTO.png b/logos/stocks/ALTO.png new file mode 100644 index 0000000..89139e1 Binary files /dev/null and b/logos/stocks/ALTO.png differ diff --git a/logos/stocks/AMCX.png b/logos/stocks/AMCX.png new file mode 100644 index 0000000..7b95deb Binary files /dev/null and b/logos/stocks/AMCX.png differ diff --git a/logos/stocks/AMED.png b/logos/stocks/AMED.png new file mode 100644 index 0000000..50bdf34 Binary files /dev/null and b/logos/stocks/AMED.png differ diff --git a/logos/stocks/AMRS.png b/logos/stocks/AMRS.png new file mode 100644 index 0000000..271e6fa Binary files /dev/null and b/logos/stocks/AMRS.png differ diff --git a/logos/stocks/AN.png b/logos/stocks/AN.png new file mode 100644 index 0000000..e292f51 Binary files /dev/null and b/logos/stocks/AN.png differ diff --git a/logos/stocks/ANGH.png b/logos/stocks/ANGH.png new file mode 100644 index 0000000..8af23f5 Binary files /dev/null and b/logos/stocks/ANGH.png differ diff --git a/logos/stocks/APPF.png b/logos/stocks/APPF.png new file mode 100644 index 0000000..dc374bd Binary files /dev/null and b/logos/stocks/APPF.png differ diff --git a/logos/stocks/ARES.png b/logos/stocks/ARES.png new file mode 100644 index 0000000..c3612a5 Binary files /dev/null and b/logos/stocks/ARES.png differ diff --git a/logos/stocks/ATER.png b/logos/stocks/ATER.png new file mode 100644 index 0000000..ebeea41 Binary files /dev/null and b/logos/stocks/ATER.png differ diff --git a/logos/stocks/ATIP.png b/logos/stocks/ATIP.png new file mode 100644 index 0000000..4d6c287 Binary files /dev/null and b/logos/stocks/ATIP.png differ diff --git a/logos/stocks/ATTO.png b/logos/stocks/ATTO.png new file mode 100644 index 0000000..1316f30 Binary files /dev/null and b/logos/stocks/ATTO.png differ diff --git a/logos/stocks/AXL.png b/logos/stocks/AXL.png new file mode 100644 index 0000000..70bf1ac Binary files /dev/null and b/logos/stocks/AXL.png differ diff --git a/logos/stocks/AXON.png b/logos/stocks/AXON.png new file mode 100644 index 0000000..093c232 Binary files /dev/null and b/logos/stocks/AXON.png differ diff --git a/logos/stocks/BFIN.png b/logos/stocks/BFIN.png new file mode 100644 index 0000000..4b16349 Binary files /dev/null and b/logos/stocks/BFIN.png differ diff --git a/logos/stocks/BGRY.png b/logos/stocks/BGRY.png index 70fc73d..6f4fd04 100644 Binary files a/logos/stocks/BGRY.png and b/logos/stocks/BGRY.png differ diff --git a/logos/stocks/BKCC.png b/logos/stocks/BKCC.png new file mode 100644 index 0000000..b9f4a1b Binary files /dev/null and b/logos/stocks/BKCC.png differ diff --git a/logos/stocks/BLCO.png b/logos/stocks/BLCO.png new file mode 100644 index 0000000..478bdbe Binary files /dev/null and b/logos/stocks/BLCO.png differ diff --git a/logos/stocks/BLDP.png b/logos/stocks/BLDP.png new file mode 100644 index 0000000..1a31dd9 Binary files /dev/null and b/logos/stocks/BLDP.png differ diff --git a/logos/stocks/BLND.png b/logos/stocks/BLND.png new file mode 100644 index 0000000..999db5e Binary files /dev/null and b/logos/stocks/BLND.png differ diff --git a/logos/stocks/BOC.png b/logos/stocks/BOC.png new file mode 100644 index 0000000..3172c0a Binary files /dev/null and b/logos/stocks/BOC.png differ diff --git a/logos/stocks/BTRU.png b/logos/stocks/BTRU.png new file mode 100644 index 0000000..b6a3394 Binary files /dev/null and b/logos/stocks/BTRU.png differ diff --git a/logos/stocks/CDAY.png b/logos/stocks/CDAY.png new file mode 100644 index 0000000..ed7942b Binary files /dev/null and b/logos/stocks/CDAY.png differ diff --git a/logos/stocks/CDK.png b/logos/stocks/CDK.png new file mode 100644 index 0000000..d0b4562 Binary files /dev/null and b/logos/stocks/CDK.png differ diff --git a/logos/stocks/CDRO.png b/logos/stocks/CDRO.png new file mode 100644 index 0000000..0a572ff Binary files /dev/null and b/logos/stocks/CDRO.png differ diff --git a/logos/stocks/CGNT.png b/logos/stocks/CGNT.png new file mode 100644 index 0000000..6609377 Binary files /dev/null and b/logos/stocks/CGNT.png differ diff --git a/logos/stocks/CLAR.png b/logos/stocks/CLAR.png new file mode 100644 index 0000000..1b8888c Binary files /dev/null and b/logos/stocks/CLAR.png differ diff --git a/logos/stocks/CNXC.png b/logos/stocks/CNXC.png new file mode 100644 index 0000000..d84bc66 Binary files /dev/null and b/logos/stocks/CNXC.png differ diff --git a/logos/stocks/CRTO.png b/logos/stocks/CRTO.png new file mode 100644 index 0000000..f880668 Binary files /dev/null and b/logos/stocks/CRTO.png differ diff --git a/logos/stocks/DRQ.png b/logos/stocks/DRQ.png index cdefedc..fc5d253 100644 Binary files a/logos/stocks/DRQ.png and b/logos/stocks/DRQ.png differ diff --git a/logos/stocks/DTC.png b/logos/stocks/DTC.png new file mode 100644 index 0000000..e51c238 Binary files /dev/null and b/logos/stocks/DTC.png differ diff --git a/logos/stocks/EV.png b/logos/stocks/EV.png new file mode 100644 index 0000000..131bae7 Binary files /dev/null and b/logos/stocks/EV.png differ diff --git a/logos/stocks/EXAI.png b/logos/stocks/EXAI.png new file mode 100644 index 0000000..d7f16f6 Binary files /dev/null and b/logos/stocks/EXAI.png differ diff --git a/logos/stocks/FN.png b/logos/stocks/FN.png new file mode 100644 index 0000000..994cc2a Binary files /dev/null and b/logos/stocks/FN.png differ diff --git a/logos/stocks/FORG.png b/logos/stocks/FORG.png new file mode 100644 index 0000000..ecff97f Binary files /dev/null and b/logos/stocks/FORG.png differ diff --git a/logos/stocks/FRGE.png b/logos/stocks/FRGE.png new file mode 100644 index 0000000..7f9aaa4 Binary files /dev/null and b/logos/stocks/FRGE.png differ diff --git a/logos/stocks/FRSH.png b/logos/stocks/FRSH.png new file mode 100644 index 0000000..67dd28b Binary files /dev/null and b/logos/stocks/FRSH.png differ diff --git a/logos/stocks/FSRD.png b/logos/stocks/FSRD.png new file mode 100644 index 0000000..f8e26d4 Binary files /dev/null and b/logos/stocks/FSRD.png differ diff --git a/logos/stocks/FUV.png b/logos/stocks/FUV.png new file mode 100644 index 0000000..ce76717 Binary files /dev/null and b/logos/stocks/FUV.png differ diff --git a/logos/stocks/GCMG.png b/logos/stocks/GCMG.png new file mode 100644 index 0000000..42fd2cb Binary files /dev/null and b/logos/stocks/GCMG.png differ diff --git a/logos/stocks/GDS.png b/logos/stocks/GDS.png new file mode 100644 index 0000000..742ea5d Binary files /dev/null and b/logos/stocks/GDS.png differ diff --git a/logos/stocks/GFS.png b/logos/stocks/GFS.png new file mode 100644 index 0000000..7090e3f Binary files /dev/null and b/logos/stocks/GFS.png differ diff --git a/logos/stocks/GGR.png b/logos/stocks/GGR.png new file mode 100644 index 0000000..95b75c0 Binary files /dev/null and b/logos/stocks/GGR.png differ diff --git a/logos/stocks/GMS.png b/logos/stocks/GMS.png new file mode 100644 index 0000000..e204390 Binary files /dev/null and b/logos/stocks/GMS.png differ diff --git a/logos/stocks/GOOGL.png b/logos/stocks/GOOGL.png new file mode 100644 index 0000000..5ca43d7 Binary files /dev/null and b/logos/stocks/GOOGL.png differ diff --git a/logos/stocks/GRAB.png b/logos/stocks/GRAB.png new file mode 100644 index 0000000..9de1d74 Binary files /dev/null and b/logos/stocks/GRAB.png differ diff --git a/logos/stocks/HCP.png b/logos/stocks/HCP.png new file mode 100644 index 0000000..60f2244 Binary files /dev/null and b/logos/stocks/HCP.png differ diff --git a/logos/stocks/HEPS.png b/logos/stocks/HEPS.png new file mode 100644 index 0000000..ade7be5 Binary files /dev/null and b/logos/stocks/HEPS.png differ diff --git a/logos/stocks/HGTY.png b/logos/stocks/HGTY.png index bfdd2f8..209349d 100644 Binary files a/logos/stocks/HGTY.png and b/logos/stocks/HGTY.png differ diff --git a/logos/stocks/HSTM.png b/logos/stocks/HSTM.png new file mode 100644 index 0000000..d3c1941 Binary files /dev/null and b/logos/stocks/HSTM.png differ diff --git a/logos/stocks/HUMA.png b/logos/stocks/HUMA.png new file mode 100644 index 0000000..5b93873 Binary files /dev/null and b/logos/stocks/HUMA.png differ diff --git a/logos/stocks/ICL.png b/logos/stocks/ICL.png new file mode 100644 index 0000000..c24d887 Binary files /dev/null and b/logos/stocks/ICL.png differ diff --git a/logos/stocks/ICLR.png b/logos/stocks/ICLR.png new file mode 100644 index 0000000..262ec9e Binary files /dev/null and b/logos/stocks/ICLR.png differ diff --git a/logos/stocks/IEA.png b/logos/stocks/IEA.png new file mode 100644 index 0000000..71f3f33 Binary files /dev/null and b/logos/stocks/IEA.png differ diff --git a/logos/stocks/IOT.png b/logos/stocks/IOT.png new file mode 100644 index 0000000..f85f699 Binary files /dev/null and b/logos/stocks/IOT.png differ diff --git a/logos/stocks/ISPO.png b/logos/stocks/ISPO.png new file mode 100644 index 0000000..2782d84 Binary files /dev/null and b/logos/stocks/ISPO.png differ diff --git a/logos/stocks/ISUN.png b/logos/stocks/ISUN.png new file mode 100644 index 0000000..b2f5901 Binary files /dev/null and b/logos/stocks/ISUN.png differ diff --git a/logos/stocks/KPLT.png b/logos/stocks/KPLT.png new file mode 100644 index 0000000..3d6654a Binary files /dev/null and b/logos/stocks/KPLT.png differ diff --git a/logos/stocks/KVHI.png b/logos/stocks/KVHI.png new file mode 100644 index 0000000..5aea58d Binary files /dev/null and b/logos/stocks/KVHI.png differ diff --git a/logos/stocks/LCFY.png b/logos/stocks/LCFY.png new file mode 100644 index 0000000..ead1fd5 Binary files /dev/null and b/logos/stocks/LCFY.png differ diff --git a/logos/stocks/LICY.png b/logos/stocks/LICY.png new file mode 100644 index 0000000..847352f Binary files /dev/null and b/logos/stocks/LICY.png differ diff --git a/logos/stocks/LMDX.png b/logos/stocks/LMDX.png new file mode 100644 index 0000000..75cdf74 Binary files /dev/null and b/logos/stocks/LMDX.png differ diff --git a/logos/stocks/LXFR.png b/logos/stocks/LXFR.png new file mode 100644 index 0000000..59a5135 Binary files /dev/null and b/logos/stocks/LXFR.png differ diff --git a/logos/stocks/MASS.png b/logos/stocks/MASS.png new file mode 100644 index 0000000..2b2d1e7 Binary files /dev/null and b/logos/stocks/MASS.png differ diff --git a/logos/stocks/META.png b/logos/stocks/META.png new file mode 100644 index 0000000..045d6f0 Binary files /dev/null and b/logos/stocks/META.png differ diff --git a/logos/stocks/MICS.png b/logos/stocks/MICS.png new file mode 100644 index 0000000..f4392c3 Binary files /dev/null and b/logos/stocks/MICS.png differ diff --git a/logos/stocks/MKFG.png b/logos/stocks/MKFG.png new file mode 100644 index 0000000..600594e Binary files /dev/null and b/logos/stocks/MKFG.png differ diff --git a/logos/stocks/MLKN.png b/logos/stocks/MLKN.png new file mode 100644 index 0000000..ae2696f Binary files /dev/null and b/logos/stocks/MLKN.png differ diff --git a/logos/stocks/MLTX.png b/logos/stocks/MLTX.png new file mode 100644 index 0000000..b35d93b Binary files /dev/null and b/logos/stocks/MLTX.png differ diff --git a/logos/stocks/MTW.png b/logos/stocks/MTW.png new file mode 100644 index 0000000..78e5d82 Binary files /dev/null and b/logos/stocks/MTW.png differ diff --git a/logos/stocks/NCR.png b/logos/stocks/NCR.png new file mode 100644 index 0000000..a4fb4da Binary files /dev/null and b/logos/stocks/NCR.png differ diff --git a/logos/stocks/NEWR.png b/logos/stocks/NEWR.png new file mode 100644 index 0000000..d61d593 Binary files /dev/null and b/logos/stocks/NEWR.png differ diff --git a/logos/stocks/NFG.png b/logos/stocks/NFG.png new file mode 100644 index 0000000..15906ce Binary files /dev/null and b/logos/stocks/NFG.png differ diff --git a/logos/stocks/NP.png b/logos/stocks/NP.png new file mode 100644 index 0000000..41e6e56 Binary files /dev/null and b/logos/stocks/NP.png differ diff --git a/logos/stocks/NXGL.png b/logos/stocks/NXGL.png index 8da7214..7795f15 100644 Binary files a/logos/stocks/NXGL.png and b/logos/stocks/NXGL.png differ diff --git a/logos/stocks/NYC.png b/logos/stocks/NYC.png new file mode 100644 index 0000000..11fe512 Binary files /dev/null and b/logos/stocks/NYC.png differ diff --git a/logos/stocks/OGN.png b/logos/stocks/OGN.png new file mode 100644 index 0000000..50817d6 Binary files /dev/null and b/logos/stocks/OGN.png differ diff --git a/logos/stocks/OMCL.png b/logos/stocks/OMCL.png new file mode 100644 index 0000000..8261e67 Binary files /dev/null and b/logos/stocks/OMCL.png differ diff --git a/logos/stocks/OTMO.png b/logos/stocks/OTMO.png new file mode 100644 index 0000000..1e98e82 Binary files /dev/null and b/logos/stocks/OTMO.png differ diff --git a/logos/stocks/PARA.png b/logos/stocks/PARA.png new file mode 100644 index 0000000..6bca5bc Binary files /dev/null and b/logos/stocks/PARA.png differ diff --git a/logos/stocks/PEV.png b/logos/stocks/PEV.png new file mode 100644 index 0000000..f47688b Binary files /dev/null and b/logos/stocks/PEV.png differ diff --git a/logos/stocks/PI.png b/logos/stocks/PI.png new file mode 100644 index 0000000..ecfd498 Binary files /dev/null and b/logos/stocks/PI.png differ diff --git a/logos/stocks/PINC.png b/logos/stocks/PINC.png new file mode 100644 index 0000000..12fff3a Binary files /dev/null and b/logos/stocks/PINC.png differ diff --git a/logos/stocks/PRE.png b/logos/stocks/PRE.png new file mode 100644 index 0000000..ea73201 Binary files /dev/null and b/logos/stocks/PRE.png differ diff --git a/logos/stocks/PTRA.png b/logos/stocks/PTRA.png new file mode 100644 index 0000000..186e4ec Binary files /dev/null and b/logos/stocks/PTRA.png differ diff --git a/logos/stocks/PWP.png b/logos/stocks/PWP.png new file mode 100644 index 0000000..cbc4de1 Binary files /dev/null and b/logos/stocks/PWP.png differ diff --git a/logos/stocks/PWSC.png b/logos/stocks/PWSC.png new file mode 100644 index 0000000..e32ed26 Binary files /dev/null and b/logos/stocks/PWSC.png differ diff --git a/logos/stocks/QLYS.png b/logos/stocks/QLYS.png new file mode 100644 index 0000000..37dbb80 Binary files /dev/null and b/logos/stocks/QLYS.png differ diff --git a/logos/stocks/RDW.png b/logos/stocks/RDW.png new file mode 100644 index 0000000..9bc1161 Binary files /dev/null and b/logos/stocks/RDW.png differ diff --git a/logos/stocks/RELY.png b/logos/stocks/RELY.png new file mode 100644 index 0000000..af52096 Binary files /dev/null and b/logos/stocks/RELY.png differ diff --git a/logos/stocks/REXR.png b/logos/stocks/REXR.png new file mode 100644 index 0000000..40e269d Binary files /dev/null and b/logos/stocks/REXR.png differ diff --git a/logos/stocks/RGTI.png b/logos/stocks/RGTI.png new file mode 100644 index 0000000..da921ad Binary files /dev/null and b/logos/stocks/RGTI.png differ diff --git a/logos/stocks/RVSN.png b/logos/stocks/RVSN.png new file mode 100644 index 0000000..4a386d1 Binary files /dev/null and b/logos/stocks/RVSN.png differ diff --git a/logos/stocks/S.png b/logos/stocks/S.png new file mode 100644 index 0000000..75b42f0 Binary files /dev/null and b/logos/stocks/S.png differ diff --git a/logos/stocks/SAI.png b/logos/stocks/SAI.png new file mode 100644 index 0000000..a8937d6 Binary files /dev/null and b/logos/stocks/SAI.png differ diff --git a/logos/stocks/SG.png b/logos/stocks/SG.png new file mode 100644 index 0000000..1e2b314 Binary files /dev/null and b/logos/stocks/SG.png differ diff --git a/logos/stocks/SHCR.png b/logos/stocks/SHCR.png new file mode 100644 index 0000000..6dadd3d Binary files /dev/null and b/logos/stocks/SHCR.png differ diff --git a/logos/stocks/SLGC.png b/logos/stocks/SLGC.png new file mode 100644 index 0000000..62ce1e7 Binary files /dev/null and b/logos/stocks/SLGC.png differ diff --git a/logos/stocks/SMFL.png b/logos/stocks/SMFL.png new file mode 100644 index 0000000..13475ef Binary files /dev/null and b/logos/stocks/SMFL.png differ diff --git a/logos/stocks/SNPO.png b/logos/stocks/SNPO.png new file mode 100644 index 0000000..ec12d95 Binary files /dev/null and b/logos/stocks/SNPO.png differ diff --git a/logos/stocks/SOBR.png b/logos/stocks/SOBR.png new file mode 100644 index 0000000..c8865b1 Binary files /dev/null and b/logos/stocks/SOBR.png differ diff --git a/logos/stocks/SOSH.png b/logos/stocks/SOSH.png new file mode 100644 index 0000000..73569df Binary files /dev/null and b/logos/stocks/SOSH.png differ diff --git a/logos/stocks/SOUN.png b/logos/stocks/SOUN.png new file mode 100644 index 0000000..585024f Binary files /dev/null and b/logos/stocks/SOUN.png differ diff --git a/logos/stocks/SRAD.png b/logos/stocks/SRAD.png new file mode 100644 index 0000000..f2a63b9 Binary files /dev/null and b/logos/stocks/SRAD.png differ diff --git a/logos/stocks/STRY.png b/logos/stocks/STRY.png new file mode 100644 index 0000000..f38d7bf Binary files /dev/null and b/logos/stocks/STRY.png differ diff --git a/logos/stocks/STSS.png b/logos/stocks/STSS.png new file mode 100644 index 0000000..63d3f98 Binary files /dev/null and b/logos/stocks/STSS.png differ diff --git a/logos/stocks/SUNL.png b/logos/stocks/SUNL.png new file mode 100644 index 0000000..ea3ec68 Binary files /dev/null and b/logos/stocks/SUNL.png differ diff --git a/logos/stocks/SVRE.png b/logos/stocks/SVRE.png new file mode 100644 index 0000000..389e931 Binary files /dev/null and b/logos/stocks/SVRE.png differ diff --git a/logos/stocks/SWVL.png b/logos/stocks/SWVL.png new file mode 100644 index 0000000..8b60b2a Binary files /dev/null and b/logos/stocks/SWVL.png differ diff --git a/logos/stocks/TMC.png b/logos/stocks/TMC.png new file mode 100644 index 0000000..ac17fe3 Binary files /dev/null and b/logos/stocks/TMC.png differ diff --git a/logos/stocks/TOST.png b/logos/stocks/TOST.png new file mode 100644 index 0000000..812b43f Binary files /dev/null and b/logos/stocks/TOST.png differ diff --git a/logos/stocks/TPG.png b/logos/stocks/TPG.png new file mode 100644 index 0000000..906770b Binary files /dev/null and b/logos/stocks/TPG.png differ diff --git a/logos/stocks/TPX.png b/logos/stocks/TPX.png new file mode 100644 index 0000000..e3638ba Binary files /dev/null and b/logos/stocks/TPX.png differ diff --git a/logos/stocks/TREE.png b/logos/stocks/TREE.png new file mode 100644 index 0000000..b6de15c Binary files /dev/null and b/logos/stocks/TREE.png differ diff --git a/logos/stocks/TRI.png b/logos/stocks/TRI.png new file mode 100644 index 0000000..5ea042c Binary files /dev/null and b/logos/stocks/TRI.png differ diff --git a/logos/stocks/TRTN.png b/logos/stocks/TRTN.png new file mode 100644 index 0000000..9d00a27 Binary files /dev/null and b/logos/stocks/TRTN.png differ diff --git a/logos/stocks/TRUP.png b/logos/stocks/TRUP.png new file mode 100644 index 0000000..5d51949 Binary files /dev/null and b/logos/stocks/TRUP.png differ diff --git a/logos/stocks/TV.png b/logos/stocks/TV.png new file mode 100644 index 0000000..0bf955d Binary files /dev/null and b/logos/stocks/TV.png differ diff --git a/logos/stocks/TWKS.png b/logos/stocks/TWKS.png new file mode 100644 index 0000000..35de5bb Binary files /dev/null and b/logos/stocks/TWKS.png differ diff --git a/logos/stocks/VET.png b/logos/stocks/VET.png new file mode 100644 index 0000000..dca970c Binary files /dev/null and b/logos/stocks/VET.png differ diff --git a/logos/stocks/VIOT.png b/logos/stocks/VIOT.png new file mode 100644 index 0000000..8f48f55 Binary files /dev/null and b/logos/stocks/VIOT.png differ diff --git a/logos/stocks/VIVK.png b/logos/stocks/VIVK.png new file mode 100644 index 0000000..d8f3944 Binary files /dev/null and b/logos/stocks/VIVK.png differ diff --git a/logos/stocks/WAL.png b/logos/stocks/WAL.png new file mode 100644 index 0000000..bddbbcd Binary files /dev/null and b/logos/stocks/WAL.png differ diff --git a/logos/stocks/WBD.png b/logos/stocks/WBD.png new file mode 100644 index 0000000..967bc71 Binary files /dev/null and b/logos/stocks/WBD.png differ diff --git a/logos/stocks/WOLF.png b/logos/stocks/WOLF.png new file mode 100644 index 0000000..8917c77 Binary files /dev/null and b/logos/stocks/WOLF.png differ diff --git a/logos/stocks/XAIR.png b/logos/stocks/XAIR.png new file mode 100644 index 0000000..4189427 Binary files /dev/null and b/logos/stocks/XAIR.png differ diff --git a/logos/stocks/XOS.png b/logos/stocks/XOS.png new file mode 100644 index 0000000..97407ff Binary files /dev/null and b/logos/stocks/XOS.png differ diff --git a/logos/tiny_news/9news.png b/logos/tiny_news/9news.png new file mode 100644 index 0000000..cfc52df Binary files /dev/null and b/logos/tiny_news/9news.png differ diff --git a/logos/tiny_news/9to5google.com.png b/logos/tiny_news/9to5google.com.png new file mode 100644 index 0000000..74356cd Binary files /dev/null and b/logos/tiny_news/9to5google.com.png differ diff --git a/logos/tiny_news/9to5mac.png b/logos/tiny_news/9to5mac.png new file mode 100644 index 0000000..74356cd Binary files /dev/null and b/logos/tiny_news/9to5mac.png differ diff --git a/logos/tiny_news/abc-news-(au).png b/logos/tiny_news/abc-news-(au).png new file mode 100644 index 0000000..c654e6b Binary files /dev/null and b/logos/tiny_news/abc-news-(au).png differ diff --git a/logos/tiny_news/abc-news.png b/logos/tiny_news/abc-news.png new file mode 100644 index 0000000..c314846 Binary files /dev/null and b/logos/tiny_news/abc-news.png differ diff --git a/logos/tiny_news/al-jazeera-english.png b/logos/tiny_news/al-jazeera-english.png new file mode 100644 index 0000000..757eab3 Binary files /dev/null and b/logos/tiny_news/al-jazeera-english.png differ diff --git a/logos/tiny_news/android-authority.png b/logos/tiny_news/android-authority.png new file mode 100644 index 0000000..7254bf9 Binary files /dev/null and b/logos/tiny_news/android-authority.png differ diff --git a/logos/tiny_news/ars-technica.png b/logos/tiny_news/ars-technica.png new file mode 100644 index 0000000..7b34297 Binary files /dev/null and b/logos/tiny_news/ars-technica.png differ diff --git a/logos/tiny_news/asiaone.png b/logos/tiny_news/asiaone.png new file mode 100644 index 0000000..3111f85 Binary files /dev/null and b/logos/tiny_news/asiaone.png differ diff --git a/logos/tiny_news/associated-press.png b/logos/tiny_news/associated-press.png new file mode 100644 index 0000000..9e22327 Binary files /dev/null and b/logos/tiny_news/associated-press.png differ diff --git a/logos/tiny_news/australian-financial-review.png b/logos/tiny_news/australian-financial-review.png new file mode 100644 index 0000000..9ed9a19 Binary files /dev/null and b/logos/tiny_news/australian-financial-review.png differ diff --git a/logos/tiny_news/axios.png b/logos/tiny_news/axios.png new file mode 100644 index 0000000..79037cd Binary files /dev/null and b/logos/tiny_news/axios.png differ diff --git a/logos/tiny_news/barron's.png b/logos/tiny_news/barron's.png new file mode 100644 index 0000000..083677f Binary files /dev/null and b/logos/tiny_news/barron's.png differ diff --git a/logos/tiny_news/bbc-news.png b/logos/tiny_news/bbc-news.png new file mode 100644 index 0000000..66ad1fa Binary files /dev/null and b/logos/tiny_news/bbc-news.png differ diff --git a/logos/tiny_news/bbc-sport.png b/logos/tiny_news/bbc-sport.png new file mode 100644 index 0000000..73b72a9 Binary files /dev/null and b/logos/tiny_news/bbc-sport.png differ diff --git a/logos/tiny_news/billboard.png b/logos/tiny_news/billboard.png new file mode 100644 index 0000000..9bac145 Binary files /dev/null and b/logos/tiny_news/billboard.png differ diff --git a/logos/tiny_news/bleacher-report.png b/logos/tiny_news/bleacher-report.png new file mode 100644 index 0000000..b0c5b1d Binary files /dev/null and b/logos/tiny_news/bleacher-report.png differ diff --git a/logos/tiny_news/bloomberg.png b/logos/tiny_news/bloomberg.png new file mode 100644 index 0000000..c4f5068 Binary files /dev/null and b/logos/tiny_news/bloomberg.png differ diff --git a/logos/tiny_news/boston-globe.png b/logos/tiny_news/boston-globe.png new file mode 100644 index 0000000..ea06cd0 Binary files /dev/null and b/logos/tiny_news/boston-globe.png differ diff --git a/logos/tiny_news/breitbart-news.png b/logos/tiny_news/breitbart-news.png new file mode 100644 index 0000000..0033384 Binary files /dev/null and b/logos/tiny_news/breitbart-news.png differ diff --git a/logos/tiny_news/business-insider-(uk).png b/logos/tiny_news/business-insider-(uk).png new file mode 100644 index 0000000..6579144 Binary files /dev/null and b/logos/tiny_news/business-insider-(uk).png differ diff --git a/logos/tiny_news/business-insider.png b/logos/tiny_news/business-insider.png new file mode 100644 index 0000000..6579144 Binary files /dev/null and b/logos/tiny_news/business-insider.png differ diff --git a/logos/tiny_news/business-times.png b/logos/tiny_news/business-times.png new file mode 100644 index 0000000..8b0de86 Binary files /dev/null and b/logos/tiny_news/business-times.png differ diff --git a/logos/tiny_news/buzzfeed.png b/logos/tiny_news/buzzfeed.png new file mode 100644 index 0000000..25afc08 Binary files /dev/null and b/logos/tiny_news/buzzfeed.png differ diff --git a/logos/tiny_news/cbc-news.png b/logos/tiny_news/cbc-news.png new file mode 100644 index 0000000..98c7daf Binary files /dev/null and b/logos/tiny_news/cbc-news.png differ diff --git a/logos/tiny_news/cbs-news.png b/logos/tiny_news/cbs-news.png new file mode 100644 index 0000000..07a456f Binary files /dev/null and b/logos/tiny_news/cbs-news.png differ diff --git a/logos/tiny_news/cbs-sports.png b/logos/tiny_news/cbs-sports.png new file mode 100644 index 0000000..07a456f Binary files /dev/null and b/logos/tiny_news/cbs-sports.png differ diff --git a/logos/tiny_news/cbslocal.com.png b/logos/tiny_news/cbslocal.com.png new file mode 100644 index 0000000..07a456f Binary files /dev/null and b/logos/tiny_news/cbslocal.com.png differ diff --git a/logos/tiny_news/cgtn.png b/logos/tiny_news/cgtn.png new file mode 100644 index 0000000..c8ca26a Binary files /dev/null and b/logos/tiny_news/cgtn.png differ diff --git a/logos/tiny_news/cna.png b/logos/tiny_news/cna.png new file mode 100644 index 0000000..014a849 Binary files /dev/null and b/logos/tiny_news/cna.png differ diff --git a/logos/tiny_news/cnbc.png b/logos/tiny_news/cnbc.png new file mode 100644 index 0000000..38b439a Binary files /dev/null and b/logos/tiny_news/cnbc.png differ diff --git a/logos/tiny_news/cnet.png b/logos/tiny_news/cnet.png new file mode 100644 index 0000000..f1738b2 Binary files /dev/null and b/logos/tiny_news/cnet.png differ diff --git a/logos/tiny_news/cnn.png b/logos/tiny_news/cnn.png new file mode 100644 index 0000000..adece2e Binary files /dev/null and b/logos/tiny_news/cnn.png differ diff --git a/logos/tiny_news/crypto-coins-news.png b/logos/tiny_news/crypto-coins-news.png new file mode 100644 index 0000000..3bdcfe5 Binary files /dev/null and b/logos/tiny_news/crypto-coins-news.png differ diff --git a/logos/tiny_news/ctvnews.ca.png b/logos/tiny_news/ctvnews.ca.png new file mode 100644 index 0000000..321e77d Binary files /dev/null and b/logos/tiny_news/ctvnews.ca.png differ diff --git a/logos/tiny_news/daily-beast.png b/logos/tiny_news/daily-beast.png new file mode 100644 index 0000000..9377d3c Binary files /dev/null and b/logos/tiny_news/daily-beast.png differ diff --git a/logos/tiny_news/daily-mail.png b/logos/tiny_news/daily-mail.png new file mode 100644 index 0000000..84b30c0 Binary files /dev/null and b/logos/tiny_news/daily-mail.png differ diff --git a/logos/tiny_news/default.png b/logos/tiny_news/default.png new file mode 100644 index 0000000..a909f6a Binary files /dev/null and b/logos/tiny_news/default.png differ diff --git a/logos/tiny_news/elle.com.png b/logos/tiny_news/elle.com.png new file mode 100644 index 0000000..092e6de Binary files /dev/null and b/logos/tiny_news/elle.com.png differ diff --git a/logos/tiny_news/engadget.png b/logos/tiny_news/engadget.png new file mode 100644 index 0000000..423790b Binary files /dev/null and b/logos/tiny_news/engadget.png differ diff --git a/logos/tiny_news/entertainment-weekly.png b/logos/tiny_news/entertainment-weekly.png new file mode 100644 index 0000000..5b38c41 Binary files /dev/null and b/logos/tiny_news/entertainment-weekly.png differ diff --git a/logos/tiny_news/espn.png b/logos/tiny_news/espn.png new file mode 100644 index 0000000..18cea7f Binary files /dev/null and b/logos/tiny_news/espn.png differ diff --git a/logos/tiny_news/evening-standard.png b/logos/tiny_news/evening-standard.png new file mode 100644 index 0000000..3f928fd Binary files /dev/null and b/logos/tiny_news/evening-standard.png differ diff --git a/logos/tiny_news/ewn.png b/logos/tiny_news/ewn.png new file mode 100644 index 0000000..8da8a4e Binary files /dev/null and b/logos/tiny_news/ewn.png differ diff --git a/logos/tiny_news/financial-post.png b/logos/tiny_news/financial-post.png new file mode 100644 index 0000000..46310d4 Binary files /dev/null and b/logos/tiny_news/financial-post.png differ diff --git a/logos/tiny_news/financial-times.png b/logos/tiny_news/financial-times.png new file mode 100644 index 0000000..8184dc7 Binary files /dev/null and b/logos/tiny_news/financial-times.png differ diff --git a/logos/tiny_news/forbes.png b/logos/tiny_news/forbes.png new file mode 100644 index 0000000..a1fc112 Binary files /dev/null and b/logos/tiny_news/forbes.png differ diff --git a/logos/tiny_news/fortune.png b/logos/tiny_news/fortune.png new file mode 100644 index 0000000..ff38550 Binary files /dev/null and b/logos/tiny_news/fortune.png differ diff --git a/logos/tiny_news/fourfourtwo.png b/logos/tiny_news/fourfourtwo.png new file mode 100644 index 0000000..3e62f97 Binary files /dev/null and b/logos/tiny_news/fourfourtwo.png differ diff --git a/logos/tiny_news/fox-4-news.png b/logos/tiny_news/fox-4-news.png new file mode 100644 index 0000000..924cff7 Binary files /dev/null and b/logos/tiny_news/fox-4-news.png differ diff --git a/logos/tiny_news/fox-business.png b/logos/tiny_news/fox-business.png new file mode 100644 index 0000000..c1c2f95 Binary files /dev/null and b/logos/tiny_news/fox-business.png differ diff --git a/logos/tiny_news/fox-news.png b/logos/tiny_news/fox-news.png new file mode 100644 index 0000000..a0fccc2 Binary files /dev/null and b/logos/tiny_news/fox-news.png differ diff --git a/logos/tiny_news/fox-sports.png b/logos/tiny_news/fox-sports.png new file mode 100644 index 0000000..3bf44ec Binary files /dev/null and b/logos/tiny_news/fox-sports.png differ diff --git a/logos/tiny_news/gamespot.png b/logos/tiny_news/gamespot.png new file mode 100644 index 0000000..466a34c Binary files /dev/null and b/logos/tiny_news/gamespot.png differ diff --git a/logos/tiny_news/gizmodo.com.png b/logos/tiny_news/gizmodo.com.png new file mode 100644 index 0000000..8107c08 Binary files /dev/null and b/logos/tiny_news/gizmodo.com.png differ diff --git a/logos/tiny_news/global-news.png b/logos/tiny_news/global-news.png new file mode 100644 index 0000000..26dd5b8 Binary files /dev/null and b/logos/tiny_news/global-news.png differ diff --git a/logos/tiny_news/gma-news.png b/logos/tiny_news/gma-news.png new file mode 100644 index 0000000..7494043 Binary files /dev/null and b/logos/tiny_news/gma-news.png differ diff --git a/logos/tiny_news/google-news.png b/logos/tiny_news/google-news.png new file mode 100644 index 0000000..d513be3 Binary files /dev/null and b/logos/tiny_news/google-news.png differ diff --git a/logos/tiny_news/hacker-news.png b/logos/tiny_news/hacker-news.png new file mode 100644 index 0000000..4d5b50f Binary files /dev/null and b/logos/tiny_news/hacker-news.png differ diff --git a/logos/tiny_news/health.com.png b/logos/tiny_news/health.com.png new file mode 100644 index 0000000..38a14ac Binary files /dev/null and b/logos/tiny_news/health.com.png differ diff --git a/logos/tiny_news/hollywood-reporter.png b/logos/tiny_news/hollywood-reporter.png new file mode 100644 index 0000000..da06289 Binary files /dev/null and b/logos/tiny_news/hollywood-reporter.png differ diff --git a/logos/tiny_news/huffpost.png b/logos/tiny_news/huffpost.png new file mode 100644 index 0000000..0c28aa1 Binary files /dev/null and b/logos/tiny_news/huffpost.png differ diff --git a/logos/tiny_news/ign.png b/logos/tiny_news/ign.png new file mode 100644 index 0000000..e6082f9 Binary files /dev/null and b/logos/tiny_news/ign.png differ diff --git a/logos/tiny_news/independent.png b/logos/tiny_news/independent.png new file mode 100644 index 0000000..fc3f5c6 Binary files /dev/null and b/logos/tiny_news/independent.png differ diff --git a/logos/tiny_news/inews.png b/logos/tiny_news/inews.png new file mode 100644 index 0000000..21d49ef Binary files /dev/null and b/logos/tiny_news/inews.png differ diff --git a/logos/tiny_news/investing.com.png b/logos/tiny_news/investing.com.png new file mode 100644 index 0000000..24364f8 Binary files /dev/null and b/logos/tiny_news/investing.com.png differ diff --git a/logos/tiny_news/investor's-business-daily.png b/logos/tiny_news/investor's-business-daily.png new file mode 100644 index 0000000..678d2b0 Binary files /dev/null and b/logos/tiny_news/investor's-business-daily.png differ diff --git a/logos/tiny_news/kotaku.png b/logos/tiny_news/kotaku.png new file mode 100644 index 0000000..c5f01c4 Binary files /dev/null and b/logos/tiny_news/kotaku.png differ diff --git a/logos/tiny_news/la-times.png b/logos/tiny_news/la-times.png new file mode 100644 index 0000000..a1412d7 Binary files /dev/null and b/logos/tiny_news/la-times.png differ diff --git a/logos/tiny_news/live-science.png b/logos/tiny_news/live-science.png new file mode 100644 index 0000000..625070e Binary files /dev/null and b/logos/tiny_news/live-science.png differ diff --git a/logos/tiny_news/macrumors.png b/logos/tiny_news/macrumors.png new file mode 100644 index 0000000..0e62d01 Binary files /dev/null and b/logos/tiny_news/macrumors.png differ diff --git a/logos/tiny_news/manchester-evening-news.png b/logos/tiny_news/manchester-evening-news.png new file mode 100644 index 0000000..34fad4f Binary files /dev/null and b/logos/tiny_news/manchester-evening-news.png differ diff --git a/logos/tiny_news/marketwatch.png b/logos/tiny_news/marketwatch.png new file mode 100644 index 0000000..122f3a1 Binary files /dev/null and b/logos/tiny_news/marketwatch.png differ diff --git a/logos/tiny_news/mashable.png b/logos/tiny_news/mashable.png new file mode 100644 index 0000000..a9a9bd1 Binary files /dev/null and b/logos/tiny_news/mashable.png differ diff --git a/logos/tiny_news/medical-news-today.png b/logos/tiny_news/medical-news-today.png new file mode 100644 index 0000000..5ddd9b1 Binary files /dev/null and b/logos/tiny_news/medical-news-today.png differ diff --git a/logos/tiny_news/medium.png b/logos/tiny_news/medium.png new file mode 100644 index 0000000..037e436 Binary files /dev/null and b/logos/tiny_news/medium.png differ diff --git a/logos/tiny_news/metro.co.uk.png b/logos/tiny_news/metro.co.uk.png new file mode 100644 index 0000000..98b25b2 Binary files /dev/null and b/logos/tiny_news/metro.co.uk.png differ diff --git a/logos/tiny_news/mirror-online.png b/logos/tiny_news/mirror-online.png new file mode 100644 index 0000000..c3fe27b Binary files /dev/null and b/logos/tiny_news/mirror-online.png differ diff --git a/logos/tiny_news/motley-fool.png b/logos/tiny_news/motley-fool.png new file mode 100644 index 0000000..2b49e9f Binary files /dev/null and b/logos/tiny_news/motley-fool.png differ diff --git a/logos/tiny_news/msnbc.png b/logos/tiny_news/msnbc.png new file mode 100644 index 0000000..38b439a Binary files /dev/null and b/logos/tiny_news/msnbc.png differ diff --git a/logos/tiny_news/mtv-news-(uk).png b/logos/tiny_news/mtv-news-(uk).png new file mode 100644 index 0000000..db0d035 Binary files /dev/null and b/logos/tiny_news/mtv-news-(uk).png differ diff --git a/logos/tiny_news/mtv-news.png b/logos/tiny_news/mtv-news.png new file mode 100644 index 0000000..db0d035 Binary files /dev/null and b/logos/tiny_news/mtv-news.png differ diff --git a/logos/tiny_news/nasa.png b/logos/tiny_news/nasa.png new file mode 100644 index 0000000..871a1eb Binary files /dev/null and b/logos/tiny_news/nasa.png differ diff --git a/logos/tiny_news/national-geographic.png b/logos/tiny_news/national-geographic.png new file mode 100644 index 0000000..1017c7d Binary files /dev/null and b/logos/tiny_news/national-geographic.png differ diff --git a/logos/tiny_news/national-review.png b/logos/tiny_news/national-review.png new file mode 100644 index 0000000..6f0ba3b Binary files /dev/null and b/logos/tiny_news/national-review.png differ diff --git a/logos/tiny_news/nbc-news.png b/logos/tiny_news/nbc-news.png new file mode 100644 index 0000000..38b439a Binary files /dev/null and b/logos/tiny_news/nbc-news.png differ diff --git a/logos/tiny_news/new-scientist.png b/logos/tiny_news/new-scientist.png new file mode 100644 index 0000000..35b1019 Binary files /dev/null and b/logos/tiny_news/new-scientist.png differ diff --git a/logos/tiny_news/new-york-magazine.png b/logos/tiny_news/new-york-magazine.png new file mode 100644 index 0000000..1f7f7e2 Binary files /dev/null and b/logos/tiny_news/new-york-magazine.png differ diff --git a/logos/tiny_news/new-york-post.png b/logos/tiny_news/new-york-post.png new file mode 100644 index 0000000..5b9ed16 Binary files /dev/null and b/logos/tiny_news/new-york-post.png differ diff --git a/logos/tiny_news/new-york-times.png b/logos/tiny_news/new-york-times.png new file mode 100644 index 0000000..c219eea Binary files /dev/null and b/logos/tiny_news/new-york-times.png differ diff --git a/logos/tiny_news/new-zealand-herald.png b/logos/tiny_news/new-zealand-herald.png new file mode 100644 index 0000000..621aa0f Binary files /dev/null and b/logos/tiny_news/new-zealand-herald.png differ diff --git a/logos/tiny_news/news.com.au.png b/logos/tiny_news/news.com.au.png new file mode 100644 index 0000000..772b0e1 Binary files /dev/null and b/logos/tiny_news/news.com.au.png differ diff --git a/logos/tiny_news/news18.png b/logos/tiny_news/news18.png new file mode 100644 index 0000000..2ae2eed Binary files /dev/null and b/logos/tiny_news/news18.png differ diff --git a/logos/tiny_news/news24.png b/logos/tiny_news/news24.png new file mode 100644 index 0000000..e39445d Binary files /dev/null and b/logos/tiny_news/news24.png differ diff --git a/logos/tiny_news/newsweek.png b/logos/tiny_news/newsweek.png new file mode 100644 index 0000000..4c5fbd5 Binary files /dev/null and b/logos/tiny_news/newsweek.png differ diff --git a/logos/tiny_news/nfl-news.png b/logos/tiny_news/nfl-news.png new file mode 100644 index 0000000..6c368b1 Binary files /dev/null and b/logos/tiny_news/nfl-news.png differ diff --git a/logos/tiny_news/nhl-news.png b/logos/tiny_news/nhl-news.png new file mode 100644 index 0000000..c27fb61 Binary files /dev/null and b/logos/tiny_news/nhl-news.png differ diff --git a/logos/tiny_news/npr.png b/logos/tiny_news/npr.png new file mode 100644 index 0000000..60927b8 Binary files /dev/null and b/logos/tiny_news/npr.png differ diff --git a/logos/tiny_news/page-six.png b/logos/tiny_news/page-six.png new file mode 100644 index 0000000..abb86b6 Binary files /dev/null and b/logos/tiny_news/page-six.png differ diff --git a/logos/tiny_news/pcmag.com.png b/logos/tiny_news/pcmag.com.png new file mode 100644 index 0000000..52f9863 Binary files /dev/null and b/logos/tiny_news/pcmag.com.png differ diff --git a/logos/tiny_news/phys.org.png b/logos/tiny_news/phys.org.png new file mode 100644 index 0000000..d90e7eb Binary files /dev/null and b/logos/tiny_news/phys.org.png differ diff --git a/logos/tiny_news/politico.png b/logos/tiny_news/politico.png new file mode 100644 index 0000000..a81bcf6 Binary files /dev/null and b/logos/tiny_news/politico.png differ diff --git a/logos/tiny_news/polygon.png b/logos/tiny_news/polygon.png new file mode 100644 index 0000000..18c1fda Binary files /dev/null and b/logos/tiny_news/polygon.png differ diff --git a/logos/tiny_news/recode.png b/logos/tiny_news/recode.png new file mode 100644 index 0000000..5bf034f Binary files /dev/null and b/logos/tiny_news/recode.png differ diff --git a/logos/tiny_news/reddit:r:all.png b/logos/tiny_news/reddit:r:all.png new file mode 100644 index 0000000..0dbc7a6 Binary files /dev/null and b/logos/tiny_news/reddit:r:all.png differ diff --git a/logos/tiny_news/reuters.png b/logos/tiny_news/reuters.png new file mode 100644 index 0000000..018a855 Binary files /dev/null and b/logos/tiny_news/reuters.png differ diff --git a/logos/tiny_news/rolling-stone.png b/logos/tiny_news/rolling-stone.png new file mode 100644 index 0000000..9b1c2f3 Binary files /dev/null and b/logos/tiny_news/rolling-stone.png differ diff --git a/logos/tiny_news/rte.png b/logos/tiny_news/rte.png new file mode 100644 index 0000000..5c9b2ab Binary files /dev/null and b/logos/tiny_news/rte.png differ diff --git a/logos/tiny_news/san-francisco-chronicle.png b/logos/tiny_news/san-francisco-chronicle.png new file mode 100644 index 0000000..875478b Binary files /dev/null and b/logos/tiny_news/san-francisco-chronicle.png differ diff --git a/logos/tiny_news/scitechdaily.png b/logos/tiny_news/scitechdaily.png new file mode 100644 index 0000000..32bab1a Binary files /dev/null and b/logos/tiny_news/scitechdaily.png differ diff --git a/logos/tiny_news/seeking-alpha.png b/logos/tiny_news/seeking-alpha.png new file mode 100644 index 0000000..6198461 Binary files /dev/null and b/logos/tiny_news/seeking-alpha.png differ diff --git a/logos/tiny_news/sfgate.png b/logos/tiny_news/sfgate.png new file mode 100644 index 0000000..f358b36 Binary files /dev/null and b/logos/tiny_news/sfgate.png differ diff --git a/logos/tiny_news/sky-sports.png b/logos/tiny_news/sky-sports.png new file mode 100644 index 0000000..96a4e2e Binary files /dev/null and b/logos/tiny_news/sky-sports.png differ diff --git a/logos/tiny_news/sky.com.png b/logos/tiny_news/sky.com.png new file mode 100644 index 0000000..d4b3c9e Binary files /dev/null and b/logos/tiny_news/sky.com.png differ diff --git a/logos/tiny_news/sports-illustrated.png b/logos/tiny_news/sports-illustrated.png new file mode 100644 index 0000000..4c01b44 Binary files /dev/null and b/logos/tiny_news/sports-illustrated.png differ diff --git a/logos/tiny_news/stuff.co.nz.png b/logos/tiny_news/stuff.co.nz.png new file mode 100644 index 0000000..3707314 Binary files /dev/null and b/logos/tiny_news/stuff.co.nz.png differ diff --git a/logos/tiny_news/talksport.png b/logos/tiny_news/talksport.png new file mode 100644 index 0000000..0372046 Binary files /dev/null and b/logos/tiny_news/talksport.png differ diff --git a/logos/tiny_news/techcrunch.png b/logos/tiny_news/techcrunch.png new file mode 100644 index 0000000..2279e87 Binary files /dev/null and b/logos/tiny_news/techcrunch.png differ diff --git a/logos/tiny_news/techradar.png b/logos/tiny_news/techradar.png new file mode 100644 index 0000000..4c1870f Binary files /dev/null and b/logos/tiny_news/techradar.png differ diff --git a/logos/tiny_news/telegraph.co.uk.png b/logos/tiny_news/telegraph.co.uk.png new file mode 100644 index 0000000..f7d1157 Binary files /dev/null and b/logos/tiny_news/telegraph.co.uk.png differ diff --git a/logos/tiny_news/the-a.v.-club.png b/logos/tiny_news/the-a.v.-club.png new file mode 100644 index 0000000..1b9c57c Binary files /dev/null and b/logos/tiny_news/the-a.v.-club.png differ diff --git a/logos/tiny_news/the-american-conservative.png b/logos/tiny_news/the-american-conservative.png new file mode 100644 index 0000000..ce5ccfe Binary files /dev/null and b/logos/tiny_news/the-american-conservative.png differ diff --git a/logos/tiny_news/the-economist.png b/logos/tiny_news/the-economist.png new file mode 100644 index 0000000..cce052e Binary files /dev/null and b/logos/tiny_news/the-economist.png differ diff --git a/logos/tiny_news/the-globe-and-mail.png b/logos/tiny_news/the-globe-and-mail.png new file mode 100644 index 0000000..5b9f0ff Binary files /dev/null and b/logos/tiny_news/the-globe-and-mail.png differ diff --git a/logos/tiny_news/the-guardian.png b/logos/tiny_news/the-guardian.png new file mode 100644 index 0000000..bd076e6 Binary files /dev/null and b/logos/tiny_news/the-guardian.png differ diff --git a/logos/tiny_news/the-hill.png b/logos/tiny_news/the-hill.png new file mode 100644 index 0000000..18aec7b Binary files /dev/null and b/logos/tiny_news/the-hill.png differ diff --git a/logos/tiny_news/the-huffington-post.png b/logos/tiny_news/the-huffington-post.png new file mode 100644 index 0000000..54db846 Binary files /dev/null and b/logos/tiny_news/the-huffington-post.png differ diff --git a/logos/tiny_news/the-irish-times.png b/logos/tiny_news/the-irish-times.png new file mode 100644 index 0000000..f1fe940 Binary files /dev/null and b/logos/tiny_news/the-irish-times.png differ diff --git a/logos/tiny_news/the-jerusalem-post.png b/logos/tiny_news/the-jerusalem-post.png new file mode 100644 index 0000000..dc1f842 Binary files /dev/null and b/logos/tiny_news/the-jerusalem-post.png differ diff --git a/logos/tiny_news/the-lad-bible.png b/logos/tiny_news/the-lad-bible.png new file mode 100644 index 0000000..9392e74 Binary files /dev/null and b/logos/tiny_news/the-lad-bible.png differ diff --git a/logos/tiny_news/the-new-yorker.png b/logos/tiny_news/the-new-yorker.png new file mode 100644 index 0000000..fd02ca3 Binary files /dev/null and b/logos/tiny_news/the-new-yorker.png differ diff --git a/logos/tiny_news/the-next-web.png b/logos/tiny_news/the-next-web.png new file mode 100644 index 0000000..a4555c5 Binary files /dev/null and b/logos/tiny_news/the-next-web.png differ diff --git a/logos/tiny_news/the-sport-bible.png b/logos/tiny_news/the-sport-bible.png new file mode 100644 index 0000000..15ba306 Binary files /dev/null and b/logos/tiny_news/the-sport-bible.png differ diff --git a/logos/tiny_news/the-straits-times.png b/logos/tiny_news/the-straits-times.png new file mode 100644 index 0000000..1b1b1d7 Binary files /dev/null and b/logos/tiny_news/the-straits-times.png differ diff --git a/logos/tiny_news/the-sun.com.png b/logos/tiny_news/the-sun.com.png new file mode 100644 index 0000000..66ea054 Binary files /dev/null and b/logos/tiny_news/the-sun.com.png differ diff --git a/logos/tiny_news/the-sun.png b/logos/tiny_news/the-sun.png new file mode 100644 index 0000000..66ea054 Binary files /dev/null and b/logos/tiny_news/the-sun.png differ diff --git a/logos/tiny_news/the-sydney-morning-herald.png b/logos/tiny_news/the-sydney-morning-herald.png new file mode 100644 index 0000000..c4d4ec3 Binary files /dev/null and b/logos/tiny_news/the-sydney-morning-herald.png differ diff --git a/logos/tiny_news/the-times-of-india.png b/logos/tiny_news/the-times-of-india.png new file mode 100644 index 0000000..bc0ce1b Binary files /dev/null and b/logos/tiny_news/the-times-of-india.png differ diff --git a/logos/tiny_news/the-times.png b/logos/tiny_news/the-times.png new file mode 100644 index 0000000..7bdbac9 Binary files /dev/null and b/logos/tiny_news/the-times.png differ diff --git a/logos/tiny_news/the-verge.png b/logos/tiny_news/the-verge.png new file mode 100644 index 0000000..5aad040 Binary files /dev/null and b/logos/tiny_news/the-verge.png differ diff --git a/logos/tiny_news/the-wall-street-journal.png b/logos/tiny_news/the-wall-street-journal.png new file mode 100644 index 0000000..89c3ce3 Binary files /dev/null and b/logos/tiny_news/the-wall-street-journal.png differ diff --git a/logos/tiny_news/the-washington-post.png b/logos/tiny_news/the-washington-post.png new file mode 100644 index 0000000..c075f6c Binary files /dev/null and b/logos/tiny_news/the-washington-post.png differ diff --git a/logos/tiny_news/the-washington-times.png b/logos/tiny_news/the-washington-times.png new file mode 100644 index 0000000..ab20555 Binary files /dev/null and b/logos/tiny_news/the-washington-times.png differ diff --git a/logos/tiny_news/time.png b/logos/tiny_news/time.png new file mode 100644 index 0000000..1c4e30c Binary files /dev/null and b/logos/tiny_news/time.png differ diff --git a/logos/tiny_news/timeslive.png b/logos/tiny_news/timeslive.png new file mode 100644 index 0000000..afa527c Binary files /dev/null and b/logos/tiny_news/timeslive.png differ diff --git a/logos/tiny_news/tmz.png b/logos/tiny_news/tmz.png new file mode 100644 index 0000000..b5d8493 Binary files /dev/null and b/logos/tiny_news/tmz.png differ diff --git a/logos/tiny_news/toronto-star.png b/logos/tiny_news/toronto-star.png new file mode 100644 index 0000000..45b881a Binary files /dev/null and b/logos/tiny_news/toronto-star.png differ diff --git a/logos/tiny_news/usa-today.png b/logos/tiny_news/usa-today.png new file mode 100644 index 0000000..00459f9 Binary files /dev/null and b/logos/tiny_news/usa-today.png differ diff --git a/logos/tiny_news/vanity-fair.png b/logos/tiny_news/vanity-fair.png new file mode 100644 index 0000000..dfb0396 Binary files /dev/null and b/logos/tiny_news/vanity-fair.png differ diff --git a/logos/tiny_news/vice-news.png b/logos/tiny_news/vice-news.png new file mode 100644 index 0000000..6688dbe Binary files /dev/null and b/logos/tiny_news/vice-news.png differ diff --git a/logos/tiny_news/vox.png b/logos/tiny_news/vox.png new file mode 100644 index 0000000..5bf034f Binary files /dev/null and b/logos/tiny_news/vox.png differ diff --git a/logos/tiny_news/wales-online.png b/logos/tiny_news/wales-online.png new file mode 100644 index 0000000..1f2d770 Binary files /dev/null and b/logos/tiny_news/wales-online.png differ diff --git a/logos/tiny_news/wired.png b/logos/tiny_news/wired.png new file mode 100644 index 0000000..05c1de2 Binary files /dev/null and b/logos/tiny_news/wired.png differ diff --git a/logos/tiny_news/wjxt-news4jax.png b/logos/tiny_news/wjxt-news4jax.png new file mode 100644 index 0000000..25923cb Binary files /dev/null and b/logos/tiny_news/wjxt-news4jax.png differ diff --git a/logos/tiny_news/world-health-organization.png b/logos/tiny_news/world-health-organization.png new file mode 100644 index 0000000..7e0990b Binary files /dev/null and b/logos/tiny_news/world-health-organization.png differ diff --git a/logos/tiny_news/yahoo-entertainment.png b/logos/tiny_news/yahoo-entertainment.png new file mode 100644 index 0000000..66f726a Binary files /dev/null and b/logos/tiny_news/yahoo-entertainment.png differ diff --git a/logos/tiny_news/yahoo.png b/logos/tiny_news/yahoo.png new file mode 100644 index 0000000..66f726a Binary files /dev/null and b/logos/tiny_news/yahoo.png differ diff --git a/logos/tiny_stocks/ABOS.png b/logos/tiny_stocks/ABOS.png new file mode 100644 index 0000000..b0482f2 Binary files /dev/null and b/logos/tiny_stocks/ABOS.png differ diff --git a/logos/tiny_stocks/ADTH.png b/logos/tiny_stocks/ADTH.png new file mode 100644 index 0000000..eda3c7c Binary files /dev/null and b/logos/tiny_stocks/ADTH.png differ diff --git a/logos/tiny_stocks/AHCO.png b/logos/tiny_stocks/AHCO.png new file mode 100644 index 0000000..3770b76 Binary files /dev/null and b/logos/tiny_stocks/AHCO.png differ diff --git a/logos/tiny_stocks/AIZ.png b/logos/tiny_stocks/AIZ.png new file mode 100644 index 0000000..2262050 Binary files /dev/null and b/logos/tiny_stocks/AIZ.png differ diff --git a/logos/tiny_stocks/ALCO.png b/logos/tiny_stocks/ALCO.png new file mode 100644 index 0000000..2c3c26f Binary files /dev/null and b/logos/tiny_stocks/ALCO.png differ diff --git a/logos/tiny_stocks/ALLG.png b/logos/tiny_stocks/ALLG.png new file mode 100644 index 0000000..1e382c0 Binary files /dev/null and b/logos/tiny_stocks/ALLG.png differ diff --git a/logos/tiny_stocks/ALLT.png b/logos/tiny_stocks/ALLT.png new file mode 100644 index 0000000..fa556be Binary files /dev/null and b/logos/tiny_stocks/ALLT.png differ diff --git a/logos/tiny_stocks/ALTO.png b/logos/tiny_stocks/ALTO.png new file mode 100644 index 0000000..682e1b7 Binary files /dev/null and b/logos/tiny_stocks/ALTO.png differ diff --git a/logos/tiny_stocks/AMCX.png b/logos/tiny_stocks/AMCX.png new file mode 100644 index 0000000..95ebb58 Binary files /dev/null and b/logos/tiny_stocks/AMCX.png differ diff --git a/logos/tiny_stocks/AMED.png b/logos/tiny_stocks/AMED.png new file mode 100644 index 0000000..58f914d Binary files /dev/null and b/logos/tiny_stocks/AMED.png differ diff --git a/logos/tiny_stocks/ANGH.png b/logos/tiny_stocks/ANGH.png new file mode 100644 index 0000000..3e8db33 Binary files /dev/null and b/logos/tiny_stocks/ANGH.png differ diff --git a/logos/tiny_stocks/APPF.png b/logos/tiny_stocks/APPF.png new file mode 100644 index 0000000..001f731 Binary files /dev/null and b/logos/tiny_stocks/APPF.png differ diff --git a/logos/tiny_stocks/ATER.png b/logos/tiny_stocks/ATER.png new file mode 100644 index 0000000..e3052ba Binary files /dev/null and b/logos/tiny_stocks/ATER.png differ diff --git a/logos/tiny_stocks/ATIP.png b/logos/tiny_stocks/ATIP.png new file mode 100644 index 0000000..1280484 Binary files /dev/null and b/logos/tiny_stocks/ATIP.png differ diff --git a/logos/tiny_stocks/ATTO.png b/logos/tiny_stocks/ATTO.png new file mode 100644 index 0000000..f249f66 Binary files /dev/null and b/logos/tiny_stocks/ATTO.png differ diff --git a/logos/tiny_stocks/AXON.png b/logos/tiny_stocks/AXON.png new file mode 100644 index 0000000..5647122 Binary files /dev/null and b/logos/tiny_stocks/AXON.png differ diff --git a/logos/tiny_stocks/BFIN.png b/logos/tiny_stocks/BFIN.png new file mode 100644 index 0000000..672c56f Binary files /dev/null and b/logos/tiny_stocks/BFIN.png differ diff --git a/logos/tiny_stocks/BGRY.png b/logos/tiny_stocks/BGRY.png new file mode 100644 index 0000000..5e42e9f Binary files /dev/null and b/logos/tiny_stocks/BGRY.png differ diff --git a/logos/tiny_stocks/BLCO.png b/logos/tiny_stocks/BLCO.png new file mode 100644 index 0000000..aafd74c Binary files /dev/null and b/logos/tiny_stocks/BLCO.png differ diff --git a/logos/tiny_stocks/BLND.png b/logos/tiny_stocks/BLND.png new file mode 100644 index 0000000..466cfb7 Binary files /dev/null and b/logos/tiny_stocks/BLND.png differ diff --git a/logos/tiny_stocks/BTRU.png b/logos/tiny_stocks/BTRU.png new file mode 100644 index 0000000..37391e2 Binary files /dev/null and b/logos/tiny_stocks/BTRU.png differ diff --git a/logos/tiny_stocks/CDAY.png b/logos/tiny_stocks/CDAY.png new file mode 100644 index 0000000..de4c58d Binary files /dev/null and b/logos/tiny_stocks/CDAY.png differ diff --git a/logos/tiny_stocks/CDK.png b/logos/tiny_stocks/CDK.png new file mode 100644 index 0000000..d6b5d62 Binary files /dev/null and b/logos/tiny_stocks/CDK.png differ diff --git a/logos/tiny_stocks/CDRO.png b/logos/tiny_stocks/CDRO.png new file mode 100644 index 0000000..546ade1 Binary files /dev/null and b/logos/tiny_stocks/CDRO.png differ diff --git a/logos/tiny_stocks/CGNT.png b/logos/tiny_stocks/CGNT.png new file mode 100644 index 0000000..180e9ab Binary files /dev/null and b/logos/tiny_stocks/CGNT.png differ diff --git a/logos/tiny_stocks/CLAR.png b/logos/tiny_stocks/CLAR.png new file mode 100644 index 0000000..99b6003 Binary files /dev/null and b/logos/tiny_stocks/CLAR.png differ diff --git a/logos/tiny_stocks/CNXC.png b/logos/tiny_stocks/CNXC.png new file mode 100644 index 0000000..cb1c04d Binary files /dev/null and b/logos/tiny_stocks/CNXC.png differ diff --git a/logos/tiny_stocks/CRTO.png b/logos/tiny_stocks/CRTO.png new file mode 100644 index 0000000..680b971 Binary files /dev/null and b/logos/tiny_stocks/CRTO.png differ diff --git a/logos/tiny_stocks/DRQ.png b/logos/tiny_stocks/DRQ.png new file mode 100644 index 0000000..7ba3417 Binary files /dev/null and b/logos/tiny_stocks/DRQ.png differ diff --git a/logos/tiny_stocks/DTC.png b/logos/tiny_stocks/DTC.png new file mode 100644 index 0000000..ec090c9 Binary files /dev/null and b/logos/tiny_stocks/DTC.png differ diff --git a/logos/tiny_stocks/EXAI.png b/logos/tiny_stocks/EXAI.png new file mode 100644 index 0000000..7884574 Binary files /dev/null and b/logos/tiny_stocks/EXAI.png differ diff --git a/logos/tiny_stocks/FORG.png b/logos/tiny_stocks/FORG.png new file mode 100644 index 0000000..d54f331 Binary files /dev/null and b/logos/tiny_stocks/FORG.png differ diff --git a/logos/tiny_stocks/FRGE.png b/logos/tiny_stocks/FRGE.png new file mode 100644 index 0000000..7d420c8 Binary files /dev/null and b/logos/tiny_stocks/FRGE.png differ diff --git a/logos/tiny_stocks/FRSH.png b/logos/tiny_stocks/FRSH.png new file mode 100644 index 0000000..55cc9f1 Binary files /dev/null and b/logos/tiny_stocks/FRSH.png differ diff --git a/logos/tiny_stocks/FSRD.png b/logos/tiny_stocks/FSRD.png new file mode 100644 index 0000000..a4230f3 Binary files /dev/null and b/logos/tiny_stocks/FSRD.png differ diff --git a/logos/tiny_stocks/GDS.png b/logos/tiny_stocks/GDS.png new file mode 100644 index 0000000..492ea8d Binary files /dev/null and b/logos/tiny_stocks/GDS.png differ diff --git a/logos/tiny_stocks/GFS.png b/logos/tiny_stocks/GFS.png new file mode 100644 index 0000000..56d38aa Binary files /dev/null and b/logos/tiny_stocks/GFS.png differ diff --git a/logos/tiny_stocks/GGR.png b/logos/tiny_stocks/GGR.png new file mode 100644 index 0000000..a7e8c94 Binary files /dev/null and b/logos/tiny_stocks/GGR.png differ diff --git a/logos/tiny_stocks/GMS.png b/logos/tiny_stocks/GMS.png new file mode 100644 index 0000000..96bc853 Binary files /dev/null and b/logos/tiny_stocks/GMS.png differ diff --git a/logos/tiny_stocks/GRAB.png b/logos/tiny_stocks/GRAB.png new file mode 100644 index 0000000..e0e1b7e Binary files /dev/null and b/logos/tiny_stocks/GRAB.png differ diff --git a/logos/tiny_stocks/HCP.png b/logos/tiny_stocks/HCP.png new file mode 100644 index 0000000..0346499 Binary files /dev/null and b/logos/tiny_stocks/HCP.png differ diff --git a/logos/tiny_stocks/HEPS.png b/logos/tiny_stocks/HEPS.png new file mode 100644 index 0000000..f5d56d6 Binary files /dev/null and b/logos/tiny_stocks/HEPS.png differ diff --git a/logos/tiny_stocks/HGTY.png b/logos/tiny_stocks/HGTY.png new file mode 100644 index 0000000..cf1d148 Binary files /dev/null and b/logos/tiny_stocks/HGTY.png differ diff --git a/logos/tiny_stocks/HSTM.png b/logos/tiny_stocks/HSTM.png new file mode 100644 index 0000000..42cc8ee Binary files /dev/null and b/logos/tiny_stocks/HSTM.png differ diff --git a/logos/tiny_stocks/HUMA.png b/logos/tiny_stocks/HUMA.png new file mode 100644 index 0000000..8e8e4a7 Binary files /dev/null and b/logos/tiny_stocks/HUMA.png differ diff --git a/logos/tiny_stocks/ICL.png b/logos/tiny_stocks/ICL.png new file mode 100644 index 0000000..c3cd5a8 Binary files /dev/null and b/logos/tiny_stocks/ICL.png differ diff --git a/logos/tiny_stocks/ICLR.png b/logos/tiny_stocks/ICLR.png new file mode 100644 index 0000000..f16792a Binary files /dev/null and b/logos/tiny_stocks/ICLR.png differ diff --git a/logos/tiny_stocks/IEA.png b/logos/tiny_stocks/IEA.png new file mode 100644 index 0000000..5975482 Binary files /dev/null and b/logos/tiny_stocks/IEA.png differ diff --git a/logos/tiny_stocks/IOT.png b/logos/tiny_stocks/IOT.png new file mode 100644 index 0000000..16239d0 Binary files /dev/null and b/logos/tiny_stocks/IOT.png differ diff --git a/logos/tiny_stocks/ISPO.png b/logos/tiny_stocks/ISPO.png new file mode 100644 index 0000000..b334146 Binary files /dev/null and b/logos/tiny_stocks/ISPO.png differ diff --git a/logos/tiny_stocks/KPLT.png b/logos/tiny_stocks/KPLT.png new file mode 100644 index 0000000..b587a4f Binary files /dev/null and b/logos/tiny_stocks/KPLT.png differ diff --git a/logos/tiny_stocks/KVHI.png b/logos/tiny_stocks/KVHI.png new file mode 100644 index 0000000..538d6c1 Binary files /dev/null and b/logos/tiny_stocks/KVHI.png differ diff --git a/logos/tiny_stocks/LCFY.png b/logos/tiny_stocks/LCFY.png new file mode 100644 index 0000000..75e5b8d Binary files /dev/null and b/logos/tiny_stocks/LCFY.png differ diff --git a/logos/tiny_stocks/LICY.png b/logos/tiny_stocks/LICY.png new file mode 100644 index 0000000..8577fe8 Binary files /dev/null and b/logos/tiny_stocks/LICY.png differ diff --git a/logos/tiny_stocks/LMDX.png b/logos/tiny_stocks/LMDX.png new file mode 100644 index 0000000..c78b592 Binary files /dev/null and b/logos/tiny_stocks/LMDX.png differ diff --git a/logos/tiny_stocks/MASS.png b/logos/tiny_stocks/MASS.png new file mode 100644 index 0000000..8accd00 Binary files /dev/null and b/logos/tiny_stocks/MASS.png differ diff --git a/logos/tiny_stocks/META.png b/logos/tiny_stocks/META.png new file mode 100644 index 0000000..2e02c8a Binary files /dev/null and b/logos/tiny_stocks/META.png differ diff --git a/logos/tiny_stocks/MICS.png b/logos/tiny_stocks/MICS.png new file mode 100644 index 0000000..2e92c95 Binary files /dev/null and b/logos/tiny_stocks/MICS.png differ diff --git a/logos/tiny_stocks/MKFG.png b/logos/tiny_stocks/MKFG.png new file mode 100644 index 0000000..32d9e6c Binary files /dev/null and b/logos/tiny_stocks/MKFG.png differ diff --git a/logos/tiny_stocks/MLKN.png b/logos/tiny_stocks/MLKN.png new file mode 100644 index 0000000..ee426fc Binary files /dev/null and b/logos/tiny_stocks/MLKN.png differ diff --git a/logos/tiny_stocks/MLTX.png b/logos/tiny_stocks/MLTX.png new file mode 100644 index 0000000..eebe780 Binary files /dev/null and b/logos/tiny_stocks/MLTX.png differ diff --git a/logos/tiny_stocks/MTW.png b/logos/tiny_stocks/MTW.png new file mode 100644 index 0000000..c789e61 Binary files /dev/null and b/logos/tiny_stocks/MTW.png differ diff --git a/logos/tiny_stocks/NCR.png b/logos/tiny_stocks/NCR.png new file mode 100644 index 0000000..5a7cfc5 Binary files /dev/null and b/logos/tiny_stocks/NCR.png differ diff --git a/logos/tiny_stocks/NEWR.png b/logos/tiny_stocks/NEWR.png new file mode 100644 index 0000000..fce4887 Binary files /dev/null and b/logos/tiny_stocks/NEWR.png differ diff --git a/logos/tiny_stocks/NFG.png b/logos/tiny_stocks/NFG.png new file mode 100644 index 0000000..3f2c507 Binary files /dev/null and b/logos/tiny_stocks/NFG.png differ diff --git a/logos/tiny_stocks/NXGL.png b/logos/tiny_stocks/NXGL.png new file mode 100644 index 0000000..6f12f5f Binary files /dev/null and b/logos/tiny_stocks/NXGL.png differ diff --git a/logos/tiny_stocks/OGN.png b/logos/tiny_stocks/OGN.png new file mode 100644 index 0000000..eb12c10 Binary files /dev/null and b/logos/tiny_stocks/OGN.png differ diff --git a/logos/tiny_stocks/OMCL.png b/logos/tiny_stocks/OMCL.png new file mode 100644 index 0000000..9ee35e9 Binary files /dev/null and b/logos/tiny_stocks/OMCL.png differ diff --git a/logos/tiny_stocks/OTMO.png b/logos/tiny_stocks/OTMO.png new file mode 100644 index 0000000..2782b45 Binary files /dev/null and b/logos/tiny_stocks/OTMO.png differ diff --git a/logos/tiny_stocks/PARA.png b/logos/tiny_stocks/PARA.png new file mode 100644 index 0000000..bb0fdb9 Binary files /dev/null and b/logos/tiny_stocks/PARA.png differ diff --git a/logos/tiny_stocks/PI.png b/logos/tiny_stocks/PI.png new file mode 100644 index 0000000..84d6de0 Binary files /dev/null and b/logos/tiny_stocks/PI.png differ diff --git a/logos/tiny_stocks/PINC.png b/logos/tiny_stocks/PINC.png new file mode 100644 index 0000000..48ddd22 Binary files /dev/null and b/logos/tiny_stocks/PINC.png differ diff --git a/logos/tiny_stocks/PRE.png b/logos/tiny_stocks/PRE.png new file mode 100644 index 0000000..9df7603 Binary files /dev/null and b/logos/tiny_stocks/PRE.png differ diff --git a/logos/tiny_stocks/PTRA.png b/logos/tiny_stocks/PTRA.png new file mode 100644 index 0000000..db8fa82 Binary files /dev/null and b/logos/tiny_stocks/PTRA.png differ diff --git a/logos/tiny_stocks/PWP.png b/logos/tiny_stocks/PWP.png new file mode 100644 index 0000000..e5728b6 Binary files /dev/null and b/logos/tiny_stocks/PWP.png differ diff --git a/logos/tiny_stocks/PWSC.png b/logos/tiny_stocks/PWSC.png new file mode 100644 index 0000000..0d55656 Binary files /dev/null and b/logos/tiny_stocks/PWSC.png differ diff --git a/logos/tiny_stocks/QLYS.png b/logos/tiny_stocks/QLYS.png new file mode 100644 index 0000000..531dfc1 Binary files /dev/null and b/logos/tiny_stocks/QLYS.png differ diff --git a/logos/tiny_stocks/RDW.png b/logos/tiny_stocks/RDW.png new file mode 100644 index 0000000..fc94e46 Binary files /dev/null and b/logos/tiny_stocks/RDW.png differ diff --git a/logos/tiny_stocks/RELY.png b/logos/tiny_stocks/RELY.png new file mode 100644 index 0000000..32785cd Binary files /dev/null and b/logos/tiny_stocks/RELY.png differ diff --git a/logos/tiny_stocks/REXR.png b/logos/tiny_stocks/REXR.png new file mode 100644 index 0000000..2e7f4e7 Binary files /dev/null and b/logos/tiny_stocks/REXR.png differ diff --git a/logos/tiny_stocks/RGTI.png b/logos/tiny_stocks/RGTI.png new file mode 100644 index 0000000..1a71510 Binary files /dev/null and b/logos/tiny_stocks/RGTI.png differ diff --git a/logos/tiny_stocks/RVSN.png b/logos/tiny_stocks/RVSN.png new file mode 100644 index 0000000..de70a10 Binary files /dev/null and b/logos/tiny_stocks/RVSN.png differ diff --git a/logos/tiny_stocks/S.png b/logos/tiny_stocks/S.png new file mode 100644 index 0000000..261b210 Binary files /dev/null and b/logos/tiny_stocks/S.png differ diff --git a/logos/tiny_stocks/SAI.png b/logos/tiny_stocks/SAI.png new file mode 100644 index 0000000..dbf6300 Binary files /dev/null and b/logos/tiny_stocks/SAI.png differ diff --git a/logos/tiny_stocks/SG.png b/logos/tiny_stocks/SG.png new file mode 100644 index 0000000..ff20f87 Binary files /dev/null and b/logos/tiny_stocks/SG.png differ diff --git a/logos/tiny_stocks/SHCR.png b/logos/tiny_stocks/SHCR.png new file mode 100644 index 0000000..7ffb8e5 Binary files /dev/null and b/logos/tiny_stocks/SHCR.png differ diff --git a/logos/tiny_stocks/SLGC.png b/logos/tiny_stocks/SLGC.png new file mode 100644 index 0000000..01fd48a Binary files /dev/null and b/logos/tiny_stocks/SLGC.png differ diff --git a/logos/tiny_stocks/SMFL.png b/logos/tiny_stocks/SMFL.png new file mode 100644 index 0000000..e281bc6 Binary files /dev/null and b/logos/tiny_stocks/SMFL.png differ diff --git a/logos/tiny_stocks/SNPO.png b/logos/tiny_stocks/SNPO.png new file mode 100644 index 0000000..7a32006 Binary files /dev/null and b/logos/tiny_stocks/SNPO.png differ diff --git a/logos/tiny_stocks/SOBR.png b/logos/tiny_stocks/SOBR.png new file mode 100644 index 0000000..f689691 Binary files /dev/null and b/logos/tiny_stocks/SOBR.png differ diff --git a/logos/tiny_stocks/SOSH.png b/logos/tiny_stocks/SOSH.png new file mode 100644 index 0000000..eb6a1f7 Binary files /dev/null and b/logos/tiny_stocks/SOSH.png differ diff --git a/logos/tiny_stocks/SOUN.png b/logos/tiny_stocks/SOUN.png new file mode 100644 index 0000000..bad2b49 Binary files /dev/null and b/logos/tiny_stocks/SOUN.png differ diff --git a/logos/tiny_stocks/SRAD.png b/logos/tiny_stocks/SRAD.png new file mode 100644 index 0000000..baee6ef Binary files /dev/null and b/logos/tiny_stocks/SRAD.png differ diff --git a/logos/tiny_stocks/STRY.png b/logos/tiny_stocks/STRY.png new file mode 100644 index 0000000..a8b9e98 Binary files /dev/null and b/logos/tiny_stocks/STRY.png differ diff --git a/logos/tiny_stocks/STSS.png b/logos/tiny_stocks/STSS.png new file mode 100644 index 0000000..3636551 Binary files /dev/null and b/logos/tiny_stocks/STSS.png differ diff --git a/logos/tiny_stocks/SUNL.png b/logos/tiny_stocks/SUNL.png new file mode 100644 index 0000000..f61b3d0 Binary files /dev/null and b/logos/tiny_stocks/SUNL.png differ diff --git a/logos/tiny_stocks/SVRE.png b/logos/tiny_stocks/SVRE.png new file mode 100644 index 0000000..4aa601b Binary files /dev/null and b/logos/tiny_stocks/SVRE.png differ diff --git a/logos/tiny_stocks/SWVL.png b/logos/tiny_stocks/SWVL.png new file mode 100644 index 0000000..5a7d078 Binary files /dev/null and b/logos/tiny_stocks/SWVL.png differ diff --git a/logos/tiny_stocks/TMC.png b/logos/tiny_stocks/TMC.png new file mode 100644 index 0000000..b3b048f Binary files /dev/null and b/logos/tiny_stocks/TMC.png differ diff --git a/logos/tiny_stocks/TOST.png b/logos/tiny_stocks/TOST.png new file mode 100644 index 0000000..575dfe2 Binary files /dev/null and b/logos/tiny_stocks/TOST.png differ diff --git a/logos/tiny_stocks/TPG.png b/logos/tiny_stocks/TPG.png new file mode 100644 index 0000000..233b810 Binary files /dev/null and b/logos/tiny_stocks/TPG.png differ diff --git a/logos/tiny_stocks/TPX.png b/logos/tiny_stocks/TPX.png new file mode 100644 index 0000000..50f3d35 Binary files /dev/null and b/logos/tiny_stocks/TPX.png differ diff --git a/logos/tiny_stocks/TREE.png b/logos/tiny_stocks/TREE.png new file mode 100644 index 0000000..4f186e2 Binary files /dev/null and b/logos/tiny_stocks/TREE.png differ diff --git a/logos/tiny_stocks/TRI.png b/logos/tiny_stocks/TRI.png new file mode 100644 index 0000000..c28d4d3 Binary files /dev/null and b/logos/tiny_stocks/TRI.png differ diff --git a/logos/tiny_stocks/TRTN.png b/logos/tiny_stocks/TRTN.png new file mode 100644 index 0000000..e197105 Binary files /dev/null and b/logos/tiny_stocks/TRTN.png differ diff --git a/logos/tiny_stocks/TRUP.png b/logos/tiny_stocks/TRUP.png new file mode 100644 index 0000000..5c6c339 Binary files /dev/null and b/logos/tiny_stocks/TRUP.png differ diff --git a/logos/tiny_stocks/TV.png b/logos/tiny_stocks/TV.png new file mode 100644 index 0000000..a93bc9f Binary files /dev/null and b/logos/tiny_stocks/TV.png differ diff --git a/logos/tiny_stocks/TWKS.png b/logos/tiny_stocks/TWKS.png new file mode 100644 index 0000000..812c7f1 Binary files /dev/null and b/logos/tiny_stocks/TWKS.png differ diff --git a/logos/tiny_stocks/VIOT.png b/logos/tiny_stocks/VIOT.png new file mode 100644 index 0000000..4677a61 Binary files /dev/null and b/logos/tiny_stocks/VIOT.png differ diff --git a/logos/tiny_stocks/VIVK.png b/logos/tiny_stocks/VIVK.png new file mode 100644 index 0000000..44aafb1 Binary files /dev/null and b/logos/tiny_stocks/VIVK.png differ diff --git a/logos/tiny_stocks/WAL.png b/logos/tiny_stocks/WAL.png new file mode 100644 index 0000000..21fb109 Binary files /dev/null and b/logos/tiny_stocks/WAL.png differ diff --git a/logos/tiny_stocks/WBD.png b/logos/tiny_stocks/WBD.png new file mode 100644 index 0000000..f83698f Binary files /dev/null and b/logos/tiny_stocks/WBD.png differ diff --git a/logos/tiny_stocks/WOLF.png b/logos/tiny_stocks/WOLF.png new file mode 100644 index 0000000..4c4a0fe Binary files /dev/null and b/logos/tiny_stocks/WOLF.png differ diff --git a/logos/tiny_stocks/XAIR.png b/logos/tiny_stocks/XAIR.png new file mode 100644 index 0000000..746ed92 Binary files /dev/null and b/logos/tiny_stocks/XAIR.png differ diff --git a/logos/tiny_stocks/XOS.png b/logos/tiny_stocks/XOS.png new file mode 100644 index 0000000..93c2ee4 Binary files /dev/null and b/logos/tiny_stocks/XOS.png differ diff --git a/server.py b/server.py index d7cd009..17e3239 100755 --- a/server.py +++ b/server.py @@ -60,7 +60,7 @@ LOGO_FOLDER = 'logos/' CSV_FOLDER = 'csv/new/' ALLOWED_EXTENSIONS = {'csv', 'png'} -ticker = pexpect.spawn("sudo -E python3 stockTicker.py") +ticker = pexpect.spawn("sudo -E python3 -W ignore stockTicker.py") time.sleep(2) # give the ticker time to initialise @@ -107,7 +107,7 @@ app = Flask(__name__) def index(): global command all_features = ['Current Weather','Daily Forecast','News', 'Sports (Upcoming Games)','Sports (Past Games)','Sports (Live Games)', - 'Sports (Team Stats)','Custom Images', 'Custom GIFs', 'Custom Messages', 'Stocks', 'Crypto', 'Forex'] + 'Sports (Team Stats)','Custom Images', 'Custom GIFs', 'Custom Messages', 'Stocks', 'Crypto', 'Forex', 'Commodities'] global professional @@ -144,6 +144,10 @@ def index(): stocks_settings = json.load(f) f.close() + f = open('csv/commodities_settings.json', 'r') + commodities_settings = json.load(f) + f.close() + f= open('csv/crypto_settings.json', 'r') crypto_settings = json.load(f) f.close() @@ -207,6 +211,11 @@ def index(): wifi_SSID = wifiline[5][6:].replace('"','') except: wifi_SSID = '' + + try: + wifi_PSK = wifiline[6][5:].replace('"','') + except: + wifi_PSK = '' templateData = { @@ -214,6 +223,7 @@ def index(): 'currently_displaying': currently_displaying, 'not_displaying': not_displaying, 'stocks_settings': stocks_settings, + 'commodities_settings': commodities_settings, 'crypto_settings': crypto_settings, 'forex_settings': forex_settings, 'current_weather': current_weather, @@ -229,7 +239,8 @@ def index(): 'professional':professional, 'general_settings':general_settings, 'api_keys':api_keys, - 'wifi_SSID':wifi_SSID + 'wifi_SSID':wifi_SSID, + 'wifi_PSK':wifi_PSK } @@ -241,11 +252,11 @@ def save_displaying(input_settings): global professional - all_settings = ['Stocks', 'Crypto', 'Forex', 'Current Weather', 'Daily Forecast', 'News', 'Sports (Upcoming Games)', 'Sports (Past Games)', + all_settings = ['Stocks', 'Crypto', 'Forex', 'Commodities', 'Current Weather', 'Daily Forecast', 'News', 'Sports (Upcoming Games)', 'Sports (Past Games)', 'Sports (Live Games)', 'Sports (Team Stats)', 'Custom Images', 'Custom GIFs', 'Custom Messages'] professional = len(input_settings) == 2 if professional: - all_settings = ['Stocks', 'Crypto', 'Forex', 'Current Weather', 'News'] + all_settings = ['Stocks', 'Crypto', 'Forex', 'Commodities', 'Current Weather', 'News'] positions = [] @@ -277,13 +288,13 @@ def start(): global ticker_stopped if displaying_screensaver: screensaver_p.close() - ticker = pexpect.spawn("sudo -E python3 stockTicker.py") + ticker = pexpect.spawn("sudo -E python3 -W ignore stockTicker.py") #api_caller = pexpect.spawn("sudo -E taskset -c 3 python3 api_caller.py") #api_caller = pexpect.spawn("sudo -E taskset -c 3 python3 database_caller.py") displaying_screensaver = False if ticker_stopped: - ticker = pexpect.spawn("sudo -E python3 stockTicker.py") + ticker = pexpect.spawn("sudo -E python3 -W ignore stockTicker.py") ticker_stopped = False #api_caller.sendline('A') @@ -320,7 +331,7 @@ def stop(): if displaying_screensaver: screensaver_p.close() - ticker = pexpect.spawn("sudo -E python3 stockTicker.py") + #ticker = pexpect.spawn("sudo -E python3 -W ignore stockTicker.py") #api_caller = pexpect.spawn("sudo -E taskset -c 3 python3 api_caller.py") #api_caller = pexpect.spawn("sudo -E taskset -c 3 python3 database_caller.py") displaying_screensaver = False @@ -357,6 +368,7 @@ def restart(): def reset(): os.system("sudo ./setup_config_files.sh") + os.system("sudo reboot now") return index() @app.route("/save", methods = ['PUT', 'POST', 'GET']) @@ -377,7 +389,7 @@ def save(): input_settings= input_settings['feature_settings'] feature = input_settings['feature'] - if feature in ['Stocks', 'Crypto', 'Forex']: + if feature in ['Stocks', 'Crypto', 'Forex', 'Commodities']: save_trade_settings(input_settings) elif feature in ['Current Weather', 'Daily Forecast']: save_weather_settings(input_settings) diff --git a/setup_config_files.sh b/setup_config_files.sh index b9e8b00..dc6ed53 100755 --- a/setup_config_files.sh +++ b/setup_config_files.sh @@ -10,27 +10,27 @@ mkdir user_uploads mkdir csv cd csv rm *.json -touch crypto_settings.json last_updates.json system_info.json last_updates.json +touch crypto_settings.json last_updates.json system_info.json touch league_tables.json mkdir sports -touch current_weather.json stocks_settings.json daily_weather.json live_games.json +touch current_weather.json stocks_settings.json daily_weather.json live_games.json commodities_settings.json touch display_settings.json message_settings.json upcoming_games.json forex_settings.json touch GIF_settings.json news_settings.json image_settings.json past_games.json general_settings.json -filenames="crypto_settings.json last_updates.json league_tables.json current_weather.json stocks_settings.json daily_weather.json live_games.json display_settings.json message_settings.json upcoming_games.json forex_settings.json GIF_settings.json news_settings.json image_settings.json past_games.json" +filenames="crypto_settings.json last_updates.json league_tables.json current_weather.json stocks_settings.json daily_weather.json live_games.json commodities_settings.json display_settings.json message_settings.json upcoming_games.json forex_settings.json GIF_settings.json news_settings.json image_settings.json past_games.json" echo '{"update_available": false, "first_boot": true}' >> system_info.json echo [\"Standard\", [[\"Stocks\", \"Crypto\", \"Forex\"]]] >> display_settings.json -echo '{"stocks": {"time": "07/03/2022 12:33:06", "force": true}, "crypto": {"time": "07/03/2022 12:28:51", "force": true}, "news": {"time": "07/03/2022 12:28:51", "force": true}, "weather": {"time": "07/03/2022 12:28:51", "force": true}, "forex": {"time": "07/03/2022 12:28:51", "force": true}, "sports_l": {"time": "07/03/2022 12:32:46", "force": true}, "sports_p": {"time": "07/03/2022 12:32:26", "force": true}, "sports_u": {"time": "07/03/2022 12:31:55", "force": true}, "sports_t": {"time": "07/03/2022 12:32:56", "force": true}}' >> last_updates.json +echo '{"stocks": {"time": "07/03/2022 12:33:06", "force": true}, "crypto": {"time": "07/03/2022 12:28:51", "force": true}, "news": {"time": "07/03/2022 12:28:51", "force": true}, "weather": {"time": "07/03/2022 12:28:51", "force": true}, "forex": {"time": "07/03/2022 12:28:51", "force": true}, "sports_l": {"time": "07/03/2022 12:32:46", "force": true}, "sports_p": {"time": "07/03/2022 12:32:26", "force": true}, "sports_u": {"time": "07/03/2022 12:31:55", "force": true}, "sports_t": {"time": "07/03/2022 12:32:56", "force": true}, "commodities": {"time": "07/03/2022 12:32:56", "force": true}}' >> last_updates.json echo '{"feature": "Stocks", "speed": "medium","speed2": "medium", "animation": "down", "percent": false, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"ETH,USD": {"current": "2629.32", "24hr_change": "-27.6432", "percent_change": "-1.04"}, "BTC,USD": {"current": "38161.00", "24hr_change": "-50.8386", "percent_change": "-0.13"}, "BNB,USD": {"current": "372.57", "24hr_change": "0.4140", "percent_change": "0.11"}, "ADA,BTC": {"current": "0.0000", "24hr_change": "-0.0000", "percent_change": "-3.74"}}}' >> crypto_settings.json - +echo '{"feature": "Stocks", "speed": "fast", "speed2": "fast", "animation": "down", "percent": true, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"BRENTOIL": {"current": "123.053", "unit": "bbl", "24hr_change": "1.0150", "percent_change": "0.83"}, "WTIOIL": {"current": "121.588", "unit": "bbl", "24hr_change": "0.8902", "percent_change": "0.74"}, "XAU": {"current": "1821.205", "unit": "oz", "24hr_change": "4.0045", "percent_change": "0.22"}, "XAG": {"current": "21.1034", "unit": "oz", "24hr_change": "-0.0550", "percent_change": "-0.26"}, "XCU": {"current": "0.2633", "unit": "oz", "24hr_change": "-0.0006", "percent_change": "-0.22"}, "NG": {"current": "8.6595", "unit": "mmbtu", "24hr_change": "-0.0236", "percent_change": "-0.27"}, "WHEAT": {"current": "393.123", "unit": "ton", "24hr_change": "-1.2642", "percent_change": "-0.32"}, "COTTON": {"current": "1.4494", "unit": "lb", "24hr_change": "0.0004", "percent_change": "0.03"}, "RICE": {"current": "16.3849", "unit": "cwt", "24hr_change": "0.0093", "percent_change": "0.06"}, "SUGAR": {"current": "0.1866", "unit": "lb", "24hr_change": "-0.0007", "percent_change": "-0.40"}, "COCOA": {"current": "2374.074", "unit": "ton", "24hr_change": "2.5206", "percent_change": "0.11"}, "LUMBER": {"current": "527.842", "unit": "oz", "24hr_change": "0.2641", "percent_change": "0.05"}, "SOYBEAN": {"current": "17.1621", "unit": "bu", "24hr_change": "0.0270", "percent_change": "0.16"}}}' >> commodities_settings.json echo '{"feature": "Sports (Team Stats)", "speed": "medium", "speed2": "medium","animation": "down", "title": true, "leagues": {}}' >> league_tables.json -echo {\"feature\": \"Current Weather\", \"speed\": \"medium\", \"speed2\": \"medium\", \"animation\": \"down\", \"temp\": \"celsius\", \"wind_speed\": \"miles/hour\", \"colour\": \"white\", \"city_colour\": \"yellow\", \"title\": true, \"locations\": {}, \"current_weather\": true} >> current_weather.json +echo {\"feature\": \"Current Weather\", \"speed\": \"medium\", \"animation\": \"down\", \"temp\": \"celsius\", \"wind_speed\": \"miles/sec\", \"colour\": \"white\", \"city_colour\": \"yellow\", \"title\": true, \"locations\": {}, \"current_weather\": true} >> current_weather.json echo '{"feature": "Stocks", "speed": "medium", "speed2": "medium", "animation": "down", "percent": false, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"AAPL": {"current": "164.02", "change": "-1.59", "percent_change": "-0.97"}, "MSFT": {"current": "288.29", "change": "-1.32", "percent_change": "-0.46"}, "GOOG": {"current": "2586.74", "change": "-34.01", "percent_change": "-1.31"}, "NFLX": {"current": "380.52", "change": "-7.59", "percent_change": "-1.99"}}}' >> stocks_settings.json -echo {\"feature\": \"Current Weather\", \"speed\": \"medium\", \"speed2\": \"medium\", \"animation\": \"down\", \"temp\": \"celsius\", \"wind_speed\": \"miles/hour\", \"colour\": \"white\", \"city_colour\": \"yellow\", \"title\": true, \"locations\": {}, \"current_weather\": true} >> daily_weather.json +echo {\"feature\": \"Current Weather\", \"speed\": \"medium\", \"animation\": \"down\", \"temp\": \"celsius\", \"wind_speed\": \"miles/sec\", \"colour\": \"white\", \"city_colour\": \"yellow\", \"title\": true, \"locations\": {}, \"current_weather\": true} >> daily_weather.json echo '{"feature": "Sports (Live Games)", "speed": "medium", "speed2": "medium", "animation": "down", "title": true, "leagues": {}}' >> live_games.json echo '{"feature": "Custom Messages", "speed": "Medium", "speed2": "medium", "animation": "Down", "title": false, "messages": [{"name": "welcome", "text": "Welcome to Fintic!", "text_colour": "White", "size": "Large", "background_colour": "Black"}, {"name": "get_started", "text": "To get started, connect your device to the \"Fintic Hotspot\" and access \"fintic.local:1024\" on your web browser. You can connect your ticker to Wi-Fi there.", "text_colour": "White", "size": "Small", "background_colour": "Black"}]}' >> message_settings.json echo '{"feature": "Sports (Upcoming Games)", "speed": "medium", "speed2": "medium", "animation": "down", "title": true, "leagues": {"NFL": [{"date": "2021-11-22", "time": "01:20:00", "round": "11", "home_team": "Los Angeles Chargers", "home_score": "41", "away_team": "Pittsburgh Steelers", "away_score": "37"}, {"date": "2021-11-23", "time": "01:15:00", "round": "11", "home_team": "Tampa Bay Buccaneers", "home_score": "0", "away_team": "New York Giants", "away_score": "0"}, {"date": "2021-11-25", "time": "17:30:00", "round": "12", "home_team": "Detroit Lions", "home_score": null, "away_team": "Chicago Bears", "away_score": null}, {"date": "2021-11-25", "time": "21:30:00", "round": "12", "home_team": "Dallas Cowboys", "home_score": null, "away_team": "Las Vegas Raiders", "away_score": null}, {"date": "2021-11-26", "time": "01:20:00", "round": "12", "home_team": "New Orleans Saints", "home_score": null, "away_team": "Buffalo Bills", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Cincinnati Bengals", "home_score": null, "away_team": "Pittsburgh Steelers", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Houston Texans", "home_score": null, "away_team": "New York Jets", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Indianapolis Colts", "home_score": null, "away_team": "Tampa Bay Buccaneers", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Jacksonville Jaguars", "home_score": null, "away_team": "Atlanta Falcons", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Miami Dolphins", "home_score": null, "away_team": "Carolina Panthers", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "New England Patriots", "home_score": null, "away_team": "Tennessee Titans", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "New York Giants", "home_score": null, "away_team": "Philadelphia Eagles", "away_score": null}, {"date": "2021-11-28", "time": "21:05:00", "round": "12", "home_team": "Denver Broncos", "home_score": null, "away_team": "Los Angeles Chargers", "away_score": null}, {"date": "2021-11-28", "time": "21:25:00", "round": "12", "home_team": "Green Bay Packers", "home_score": null, "away_team": "Los Angeles Rams", "away_score": null}, {"date": "2021-11-28", "time": "21:25:00", "round": "12", "home_team": "San Francisco 49ers", "home_score": null, "away_team": "Minnesota Vikings", "away_score": null}], "NBA": [{"date": "2021-11-22", "time": "01:20:00", "round": "11", "home_team": "Los Angeles Chargers", "home_score": "41", "away_team": "Pittsburgh Steelers", "away_score": "37"}, {"date": "2021-11-23", "time": "01:15:00", "round": "11", "home_team": "Tampa Bay Buccaneers", "home_score": "0", "away_team": "New York Giants", "away_score": "0"}, {"date": "2021-11-25", "time": "17:30:00", "round": "12", "home_team": "Detroit Lions", "home_score": null, "away_team": "Chicago Bears", "away_score": null}, {"date": "2021-11-25", "time": "21:30:00", "round": "12", "home_team": "Dallas Cowboys", "home_score": null, "away_team": "Las Vegas Raiders", "away_score": null}, {"date": "2021-11-26", "time": "01:20:00", "round": "12", "home_team": "New Orleans Saints", "home_score": null, "away_team": "Buffalo Bills", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Cincinnati Bengals", "home_score": null, "away_team": "Pittsburgh Steelers", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Houston Texans", "home_score": null, "away_team": "New York Jets", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Indianapolis Colts", "home_score": null, "away_team": "Tampa Bay Buccaneers", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Jacksonville Jaguars", "home_score": null, "away_team": "Atlanta Falcons", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "Miami Dolphins", "home_score": null, "away_team": "Carolina Panthers", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "New England Patriots", "home_score": null, "away_team": "Tennessee Titans", "away_score": null}, {"date": "2021-11-28", "time": "18:00:00", "round": "12", "home_team": "New York Giants", "home_score": null, "away_team": "Philadelphia Eagles", "away_score": null}, {"date": "2021-11-28", "time": "21:05:00", "round": "12", "home_team": "Denver Broncos", "home_score": null, "away_team": "Los Angeles Chargers", "away_score": null}, {"date": "2021-11-28", "time": "21:25:00", "round": "12", "home_team": "Green Bay Packers", "home_score": null, "away_team": "Los Angeles Rams", "away_score": null}, {"date": "2021-11-28", "time": "21:25:00", "round": "12", "home_team": "San Francisco 49ers", "home_score": null, "away_team": "Minnesota Vikings", "away_score": null}]}}' >> upcoming_games.json @@ -74,6 +74,8 @@ touch 'daily_weather.ppm' touch 'display_gif.gif' touch 'display_gif.ppm' touch 'display_image.ppm' +touch 'Commodities.ppm' +touch 'Commodities Prof.ppm' chmod 777 * diff --git a/static/app.js b/static/app.js index 8b29c77..819aa07 100755 --- a/static/app.js +++ b/static/app.js @@ -44,6 +44,7 @@ var teamStatsFeatures = document.querySelectorAll("#team-stats-features li"); var imagesFeatures = document.querySelectorAll("#images-features li"); var gifsFeatures = document.querySelectorAll("#gifs-features li"); var messagesFeatures = document.querySelectorAll("#messages-features li"); +var commoditiesFeatures = document.querySelectorAll("#commodities-features li"); var allFeaturesList = [ stocksFeatures, @@ -59,6 +60,7 @@ var allFeaturesList = [ imagesFeatures, gifsFeatures, messagesFeatures, + commoditiesFeatures, ]; // features remove buttons @@ -81,6 +83,7 @@ var teamStatsRemoveBtn = document.getElementById("team-stats-remove-btn"); var imagesRemoveBtn = document.getElementById("images-remove-btn"); var gifsRemoveBtn = document.getElementById("gifs-remove-btn"); var messagesRemoveBtn = document.getElementById("messages-remove-btn"); +var commoditiesRemoveBtn = document.getElementById("commodities-remove-btn"); var allFeaturesRemoveBtns = [ stocksRemoveBtn, @@ -96,6 +99,7 @@ var allFeaturesRemoveBtns = [ imagesRemoveBtn, gifsRemoveBtn, messagesRemoveBtn, + commoditiesRemoveBtn, ]; // features increase buttons var stocksincreaseBtn = document.getElementById("stocks-increase-btn"); @@ -117,6 +121,7 @@ var teamStatsincreaseBtn = document.getElementById("team-stats-increase-btn"); var imagesincreaseBtn = document.getElementById("images-increase-btn"); var gifsincreaseBtn = document.getElementById("gifs-increase-btn"); var messagesincreaseBtn = document.getElementById("messages-increase-btn"); +var commoditiesincreaseBtn = document.getElementById("commodities-increase-btn"); var allFeaturesIncreaseBtns = [ stocksincreaseBtn, @@ -132,6 +137,7 @@ var allFeaturesIncreaseBtns = [ imagesincreaseBtn, gifsincreaseBtn, messagesincreaseBtn, + commoditiesincreaseBtn, ]; // features decrease buttons @@ -154,6 +160,7 @@ var teamStatsDecreaseBtn = document.getElementById("team-stats-decrease-btn"); var imagesDecreaseBtn = document.getElementById("images-decrease-btn"); var gifsDecreaseBtn = document.getElementById("gifs-decrease-btn"); var messagesDecreaseBtn = document.getElementById("messages-decrease-btn"); +var commoditiesDecreaseBtn = document.getElementById("commodities-decrease-btn"); var allFeaturesDecreaseBtns = [ stocksDecreaseBtn, @@ -169,6 +176,7 @@ var allFeaturesDecreaseBtns = [ imagesDecreaseBtn, gifsDecreaseBtn, messagesDecreaseBtn, + commoditiesDecreaseBtn, ]; const changeVarValue = () => { @@ -191,6 +199,7 @@ const changeVarValue = () => { imagesFeatures = document.querySelectorAll("#images-features li"); gifsFeatures = document.querySelectorAll("#gifs-features li"); messagesFeatures = document.querySelectorAll("#messages-features li"); + commoditiesFeatures = document.querySelectorAll("#commodities-features li"); allFeaturesList = [ stocksFeatures, @@ -206,6 +215,7 @@ const changeVarValue = () => { imagesFeatures, gifsFeatures, messagesFeatures, + commoditiesFeatures, ]; }; @@ -574,6 +584,7 @@ var teamStats = document.getElementById("team-stats-features"); var images = document.getElementById("images-features"); var gifs = document.getElementById("gifs-features"); var messages = document.getElementById("messages-features"); +var commodities = document.getElementById("commodities-features"); var allFeatures = [ stocks, @@ -589,6 +600,7 @@ var allFeatures = [ images, gifs, messages, + commodities, ]; // features select box @@ -611,6 +623,7 @@ var allFeaturesSelectBox = [ null, null, null, + null, ]; // features select add buttons @@ -633,6 +646,7 @@ var allFeaturesSelectAddBtn = [ null, null, null, + null, ]; allFeaturesSelectAddBtn.map((value, index) => { @@ -665,6 +679,7 @@ var allFeaturesFile = [ imagesFile, gifsFile, null, + null, ]; // features file add button var imagesFileAddBtn = document.getElementById("inputTextBtn11"); @@ -684,6 +699,7 @@ var allFeaturesFileAddBtn = [ imagesFileAddBtn, gifsFileAddBtn, null, + null, ]; // features input text @@ -693,6 +709,7 @@ var forexText = document.getElementById("inputText5"); var currentWeatherText = document.getElementById("inputText6"); var dailyForecastText = document.getElementById("inputText7"); var messagesText = document.getElementById("inputText13"); +var commoditiesText = document.getElementById("inputText20"); var allFeaturesText = [ stocksText, @@ -708,6 +725,7 @@ var allFeaturesText = [ null, null, messagesText, + commoditiesText, ]; // features text add button @@ -717,6 +735,7 @@ var forexTextAddBtn = document.getElementById("inputTextBtn5"); var currentWeatherTextAddBtn = document.getElementById("inputTextBtn6"); var dailyForecastTextAddBtn = document.getElementById("inputTextBtn7"); var messagesTextAddBtn = document.getElementById("inputTextBtn13"); +var commoditiesTextAddBtn = document.getElementById("inputTextBtn20"); var allFeaturesTextAddBtn = [ stocksTextAddBtn, @@ -732,6 +751,7 @@ var allFeaturesTextAddBtn = [ null, null, messagesTextAddBtn, + commoditiesTextAddBtn, ]; @@ -749,15 +769,19 @@ var allFeaturesLimit = [ 20, 20, 20, + 30, ]; +var createLi = false; + +// function addingItems() { allFeaturesTextAddBtn.map((value, index) => { if (value !== null) { value.addEventListener("click", () => { - if (value == messagesTextAddBtn) { + if ((value == messagesTextAddBtn) && (createLi === true)) { // custom message let messageName = document.getElementById("inputText13").value; let scrollSpeed1 = document.getElementById("inputScrollSpeed13").value; @@ -801,6 +825,7 @@ allFeaturesTextAddBtn.map((value, index) => { // getCustomMsg // ? localStorage.setItem("customMsg", JSON.stringify(newValues)) // : localStorage.setItem("customMsg", JSON.stringify([values])); + var tag = document.createElement("li"); var msg = "You've reached the maximum limit of items to add for this feature"; @@ -814,8 +839,9 @@ allFeaturesTextAddBtn.map((value, index) => { allFeatures[index].appendChild(tag); changeVarValue(); addEventOnFeaturesList(); - } - } + createLi = false; + + }} } else { var msg = "You've reached the maximum limit of items to add for this feature"; @@ -825,14 +851,17 @@ allFeaturesTextAddBtn.map((value, index) => { } else{ + + if (createLi === true) { var tag = document.createElement("li"); tag.innerHTML = allFeaturesText[index].value; allFeatures[index].appendChild(tag); changeVarValue(); addEventOnFeaturesList(); + createLi = false; } } - }); + }}); } }); @@ -995,6 +1024,7 @@ function getFeatureSettings() { "Custom Images", "Custom GIFs", "Custom Messages", + "Commodities", ]; let pageNum = features.indexOf(feature) + 1; let pageSelector = "Page" + pageNum.toString(); @@ -1045,6 +1075,9 @@ function getFeatureSettings() { case 13: s = getMessageSettings(page); break; + case 14: + s = getTradingSettings(page); + break; } settings = { ...settings, ...s }; // merge both sets of settings @@ -1166,6 +1199,7 @@ function saveWeatherAPIKey(){ "Custom Images", "Custom GIFs", "Custom Messages", + "Commodities", ]; let pageNum = features.indexOf(feature) + 1; let pageSelector = "Page" + pageNum.toString(); @@ -1423,7 +1457,7 @@ let bottomRowText = document.querySelector("#bottom-row-text"); displayFormatBtn.addEventListener("click", () => { selectedDisplayText.innerText = displayFormatDropDown.value; localStorage.setItem("displayFormat", displayFormatDropDown.value); - if (selectedDisplayText.innerText === "Professional two rows") { + if (selectedDisplayText.innerText === "Professional Two Rows") { topRowText.style.display = "inline"; bottomRowText.style.display = "inline"; secondRow.style.display = "flex"; @@ -1440,9 +1474,26 @@ displayFormatBtn.addEventListener("click", () => { } }); + +// after clicking reset user settings, change back to standard scrolling + +let resetSettingsBtn = document.querySelector("#reset-btn") + +resetSettingsBtn.addEventListener("click", () => { + selectedDisplayText.innerText = "Standard Scrolling"; + localStorage.setItem("displayFormat", "Standard Scrolling"); + topRowText.style.display = "none"; + bottomRowText.style.display = "none"; + secondRow.style.display = "none"; + inputScrollSpeedRow.forEach((value) => { + value.parentElement.parentElement.style.display = "none"; + }); +}); + + // if selected display text = Professional two rows -if (selectedDisplayText.innerText === "Professional two rows") { +if (selectedDisplayText.innerText === "Professional Two Rows") { topRowText.style.display = "inline"; } @@ -1502,7 +1553,7 @@ inputAnimationBtn.addEventListener("click", () => { // scroll speed row two let inputScrollSpeedRow = []; -for (let i = 1; i <= 13; i++) { +for (let i = 1; i <= 14; i++) { inputScrollSpeedRow.push( document.getElementById( i === 1 ? "inputScrollSpeedRow" : `inputScrollSpeedRow${i}` @@ -1533,7 +1584,7 @@ window.onload = () => { // getInputAnimation && (inputAnimation.value = getInputAnimation); - if (selectedDisplayText.innerText === "Professional two rows") { + if (selectedDisplayText.innerText === "Professional Two Rows") { topRowText.style.display = "inline"; bottomRowText.style.display = "inline"; secondRow.style.display = "flex"; @@ -1580,3 +1631,502 @@ window.onload = () => { changeVarValue(); addEventOnFeaturesList(); }; + + +// Update button CSS effects if update available vs if already up to date + +var btnText = document.getElementById("update-btn").innerText +var divClass = document.getElementById("outer-div") + +if(btnText == "Up to date"){ + divClass.classList.remove("main-div2"); + divClass.classList.add("main-div3"); +}else{ + divClass.classList.remove("main-div3"); + divClass.classList.add("main-div2"); + +} + + +function togglePass() { + var x = document.getElementById("wifi-pass-input"); + if (x.type === "password") { + x.type = "text"; + } else { + x.type = "password"; + } +} + + +// Show messages when updating ticker / joining wifi network + +function showDiv() { + document.getElementById('update-message').style.display = "block"; + + setTimeout(function showDiv(){ + document.getElementById('update-message').style.display = "none"; +}, 30000); +} + + +function showDivTwo() { + document.getElementById('wifi-message').style.display = "block"; + + setTimeout(function showDivTwo(){ + document.getElementById('wifi-message').style.display = "none"; +}, 30000); +} + + +// Display message asking for restart of ticker when new API key added for weather + +function showWeatherP() { + if(document.getElementById("api-key1").value==="") { + + document.getElementById('weather-api-p').style.display = "none"; + } + + else if (document.getElementById("api-key1").value==="Weather API Key") { + document.getElementById('weather-api-p').style.display = "none"; + + } + + else { + document.getElementById('weather-api-p').style.display = "block" + } + + } + + +// Disable adding cities when no API key detected + + + if(document.getElementById("api-key1").value==="") { + document.getElementById('inputTextBtn6').disabled = true; + } + + else if (document.getElementById("api-key1").value==="Weather API Key") { + document.getElementById('inputTextBtn6').disabled = true; + } + + else { + document.getElementById('inputTextBtn6').disabled = false; + } + + + + + if(document.getElementById("api-key").value==="") { + document.getElementById('inputTextBtn7').disabled = true; + } + + else if (document.getElementById("api-key").value==="Weather API Key") { + document.getElementById('inputTextBtn7').disabled = true; + } + + else { + document.getElementById('inputTextBtn7').disabled = false; + } + + +// Stocks validation + +function stockValidate() { + +var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|,<>\/?~]/; + + let x = document.getElementById("inputText3").value; + let text; + if (x.toUpperCase() != x) { + document.getElementById('demo').style.display = "block"; + text = "Stock symbol must be uppercase"; + document.getElementById("inputText3").value = ''; + // createLi = false; + + } + else if (x === '') { + document.getElementById('demo').style.display = "block"; + text = "No blanks" + // createLi = false; + + } + + else if (x.includes(' ')) { + text = "No spaces"; + document.getElementById('demo').style.display = "block"; + document.getElementById("inputText3").value = ''; + // createLi = false; + } + + else if (x.length > 5) { + document.getElementById('demo').style.display = "block"; + text = "No more than 5 characters"; + document.getElementById("inputText3").value = ''; + // createLi = false; + } + + else if (/\d/.test(x)) { + document.getElementById('demo').style.display = "block"; + text = "No numbers allowed"; + document.getElementById("inputText3").value = ''; + // createLi = false; + } + // CAREFUL TO DELETE THE BACKEND LIST ITEMS, JUST DELETING THE VALUE LIKE THIS ISN"T 100% ACCURATE + + else if (specialChars.test(x)) { + document.getElementById('demo').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText3").value = ''; + // createLi = false; + } + + else { + text = "Input OK"; + document.getElementById('demo').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + // addingItems(); + setTimeout( + function() { + document.getElementById('inputText3').value=""; + }, 100); + } + document.getElementById("demo").innerHTML = text; + } + + +// Crypto validation + +function cryptoValidate() { + +var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/; + + let x = document.getElementById("inputText4").value; + let baseCurrency = x.split(",")[1]; + + // console.log(baseCurrency) + + let text; + if (x.toUpperCase() != x) { + document.getElementById('demo2').style.display = "block"; + text = "Crypto and base must be uppercase"; + document.getElementById("inputText4").value = ''; + // createLi = false; + } + else if (x === '') { + document.getElementById('demo2').style.display = "block"; + text = "No blanks" + // createLi = false; + } + + else if (x.includes(' ')) { + text = "No spaces"; + document.getElementById('demo2').style.display = "block"; + document.getElementById("inputText4").value = ''; + // createLi = false; + } + + else if (specialChars.test(x)) { + document.getElementById('demo2').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText4").value = ''; + // createLi = false; + } + + else if (!x.includes(',')) { + document.getElementById('demo2').style.display = "block"; + document.getElementById("inputText4").value = ''; + text = "Missing ',' (e.g. BTC,USD)" + // createLi = false; + } + + else if (!["USD","AUD","BTC","CAD","CHF","EUR","GBP","ETH","JPY","NZD"].includes(baseCurrency)) { + document.getElementById('demo2').style.display = "block"; + document.getElementById("inputText4").value = ''; + text = "Invalid base currency" + + } + + else { + text = "Input OK"; + document.getElementById('demo2').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + setTimeout( + function() { + document.getElementById('inputText4').value=""; + }, 100); + } + document.getElementById("demo2").innerHTML = text; + } + + +// Forex validation + +function forexValidate() { + +var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/; + + let x = document.getElementById("inputText5").value; + let quoteCurrency = x.split(",")[1]; + let baseCurrency = x.split(",")[0]; + + // console.log("base"+baseCurrency); + // console.log("quote"+quoteCurrency); + + let text; + if (x.toUpperCase() != x) { + document.getElementById('demo3').style.display = "block"; + text = "Base and quote must be uppercase"; + document.getElementById("inputText5").value = ''; + // createLi = false; + } + else if (x === '') { + document.getElementById('demo3').style.display = "block"; + text = "No blanks" + } + + else if (x.includes(' ')) { + text = "No spaces"; + document.getElementById('demo3').style.display = "block"; + document.getElementById("inputText5").value = ''; + } + + else if (/\d/.test(x)) { + document.getElementById('demo3').style.display = "block"; + text = "No numbers allowed"; + document.getElementById("inputText5").value = ''; + } + // CAREFUL TO DELETE THE BACKEND LIST ITEMS, JUST DELETING THE VALUE LIKE THIS ISN"T 100% ACCURATE + + else if (specialChars.test(x)) { + document.getElementById('demo3').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText5").value = ''; + } + + else if (!x.includes(',')) { + document.getElementById('demo3').style.display = "block"; + document.getElementById("inputText5").value = ''; + text = "Missing ',' (e.g. EUR,USD)" + } + + else if (x.length > 7) { + document.getElementById('demo3').style.display = "block"; + text = "No more than 7 characters"; + document.getElementById("inputText5").value = ''; + } + + else if (!["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","HKD","NZD","SEK","KRW","SGD","NOK","MXN","INR","RUB","ZAR","TRY","BRL", + "TWD","DKK","PLN","THB","IDR","HUF","ILS","CLP","PHP","AED","CZK","COP","SAR","MYR","RON","CLP","ARS","VND","QAR","KWD"].includes(baseCurrency)) { + document.getElementById('demo3').style.display = "block"; + document.getElementById("inputText5").value = ''; + text = "Invalid base currency" + + } + + else if (!["AED","AFN","ALL","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BMD","BND","BOB","BRL","BSD", "BTN", "BWP", "BYN", + "BZD", "CAD", "CDF", "CHF", "CLP", "CNY", "COP", "CRC", "CUC", "CUP", "CVE", "CZK", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", + "FJD", "FKP", "FOK", "GBP", "GEL", "GGP", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "ILS", "IMP", + "INR", "IQD", "IRR", "ISK", "JMD", "JOD", "JPY","KES","KGS","KHR","KID","KMF","KRW","KWD", "KYD","KZT","LAK","LBP","LKR","LRD","LSL", "LYD", + "MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN", + "PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SYP","SZL", + "THB","TJS","TMT","TND","TOP","TRY","TTD","TVD","TWD","TZS","UAH","UGX","USD","UYU","UZS","VES","VND","VUV","WST","YER","ZAR"].includes(quoteCurrency)) { + document.getElementById('demo3').style.display = "block"; + document.getElementById("inputText5").value = ''; + text = "Invalid quote currency" + + } + + else { + text = "Input OK"; + document.getElementById('demo3').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + // addingItems(); + setTimeout( + function() { + document.getElementById('inputText5').value=""; + }, 100); + } + document.getElementById("demo3").innerHTML = text; + } + + +// Custom messages validation + +function customMsgValidate() { + + let x = document.getElementById("inputText13").value; + let y = document.getElementById("inputText14").value; + let text; + if ((x === '') && (y !== '')) { + createLi = false; + document.getElementById('demo4').style.display = "block"; + text = "No blanks" + document.getElementById("inputText14").value = ''; + document.getElementById('demo5').style.display = "none"; + } + + else if ((y === '') && (x !== '')){ + createLi = false; + document.getElementById('demo5').style.display = "block"; + document.getElementById("inputText13").value = ''; + document.getElementById('demo4').style.display = "none"; + text = "No blanks" + } + + else if ((y === '') && (x === '')){ + createLi = false; + document.getElementById('demo5').style.display = "block"; + // document.getElementById("inputText13").value = ''; + document.getElementById('demo4').style.display = "block"; + text = "No blanks" + } + + else if ((x !== '') && (y !== '')) { + text = "Input OK"; + document.getElementById('demo4').style.display = "none"; + document.getElementById('demo5').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + // addingItems(); + setTimeout( + function() { + document.getElementById('inputText13').value=""; + document.getElementById('inputText14').value=""; + }, 100); + } + document.getElementById("demo4").innerHTML = text; + document.getElementById("demo5").innerHTML = text; + } + + + +// current weather validation + +function currentWeatherValidate() { + var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/; + let x = document.getElementById("inputText6").value; + let text; + if (specialChars.test(x)) { + document.getElementById('demo6').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText6").value = ''; + } + else if (x === '') { + document.getElementById('demo6').style.display = "block"; + text = "No blanks" + } + else if (/\d/.test(x)) { + document.getElementById('demo6').style.display = "block"; + text = "No numbers allowed"; + document.getElementById("inputText6").value = ''; + } + + else { + text = "Input OK"; + document.getElementById('demo6').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + // addingItems(); + setTimeout( + function() { + document.getElementById('inputText6').value=""; + }, 100); + } + document.getElementById("demo6").innerHTML = text; + } + + +// Daily forecast validation + +function dailyWeatherValidate() { + var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/; + let x = document.getElementById("inputText7").value; + let text; + if (specialChars.test(x)) { + document.getElementById('demo7').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText7").value = ''; + } + else if (x === '') { + document.getElementById('demo7').style.display = "block"; + text = "No blanks" + } + else if (/\d/.test(x)) { + document.getElementById('demo7').style.display = "block"; + text = "No numbers allowed"; + document.getElementById("inputText7").value = ''; + } + + else { + text = "Input OK"; + document.getElementById('demo7').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + // addingItems(); + setTimeout( + function() { + document.getElementById('inputText7').value=""; + }, 100); + } + document.getElementById("demo7").innerHTML = text; + } + + +// Commodities validation + +function commoditiesValidate() { + +var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/; + + let x = document.getElementById("inputText20").value; + + let text; + if (x.toUpperCase() != x) { + document.getElementById('demo8').style.display = "block"; + text = "Commodity symbol must be uppercase"; + document.getElementById("inputText20").value = ''; + // createLi = false; + } + else if (x === '') { + document.getElementById('demo8').style.display = "block"; + text = "No blanks" + // createLi = false; + } + + else if (x.includes(' ')) { + text = "No spaces"; + document.getElementById('demo8').style.display = "block"; + document.getElementById("inputText20").value = ''; + // createLi = false; + } + + else if (specialChars.test(x)) { + document.getElementById('demo8').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText20").value = ''; + // createLi = false; + } + + else if (!["ALU","BRENTOIL","LCO","COFFEE","XCU","CORN","COTTON","XAU","IRD","NI","XPD","XPT","XRH","RICE","RUTH","XAG","SOYBEAN", + "XDR","SUGAR","TIN","WHEAT","WTIOIL","ZNC","ETHANOL","CPO","NG","COCOA","ROBUSTA","LUMBER","RUBBER"].includes(x)) { + document.getElementById('demo8').style.display = "block"; + document.getElementById("inputText20").value = ''; + text = "Invalid commodity symbol" + + } + + else { + text = "Input OK"; + document.getElementById('demo8').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + setTimeout( + function() { + document.getElementById('inputText20').value=""; + }, 100); + } + document.getElementById("demo8").innerHTML = text; + } diff --git a/static/style.css b/static/style.css index c8c954c..61151a6 100755 --- a/static/style.css +++ b/static/style.css @@ -2,6 +2,7 @@ margin: 0; padding: 0; box-sizing: border-box; + font-family: Tahoma, sans-serif; } html body { max-width: 100%; @@ -11,7 +12,7 @@ html { scroll-behavior: smooth; } body { - background-color: black; + background-color: #00050D; color:white } @@ -26,17 +27,20 @@ header { } .logo { - width: 200px; - height: 70px; + width: 196px; + height: 54px; } .update-btn { - background-color: gray; + background-color: black; + border-color: white; color: white; transition: 0.25s; } .hostname-text { - font-style: italic; + font-size:14px; + margin-top:4%; color: greenyellow; + align-content: center; } @@ -73,7 +77,9 @@ header { color: white; } .set-btn { - background-color: gray; + background-color: none; + border-color:white; + border-radius:8px; color: white; transition: 0.25s; } @@ -85,10 +91,10 @@ header { .fa-minus:hover, .update-btn:hover, .save-btn:hover { - background-color: #8ca1a5; + background-color: gray; color: white; } -.set-btn:active:active, +.set-btn:active, .fa-chevron-right:active, .fa-chevron-left:active, .fa-chevron-up:active, @@ -96,27 +102,108 @@ header { .fa-minus:active, .update-btn:active, .save-btn:active { - background-color: #6c4a4a; - color: white; + background-color: black; + color: grey; } + +.set-btn:focus, +.fa-chevron-right:focus, +.fa-chevron-left:focus, +.fa-chevron-up:focus, +.fa-chevron-down:focus, +.fa-minus:focus, +.update-btn:focus, +.save-btn:focus { + box-shadow:none; +} + .row-2 { - border-bottom: 2px solid white; + border-bottom: 1px solid white; padding-bottom: 30px; } +.form-select { + border-color: dimgrey; + background-color: #262525; + box-shadow: none; + color:white; +} + +.form-select:hover{ + border-color: dimgrey; + background-color: #434343; + box-shadow: none; + color:white; + cursor: pointer; +} + +.form-select:focus{ + border-color: dimgrey; + -webkit-box-shadow: none; + box-shadow: none; + +} + +.form-select:active{ + border-color: dimgray; + background-color: #262525; + box-shadow: none; + color:white; +} + +.form-control { + border-color: dimgray; + background-color: #262525; + box-shadow: none; + color:white; + +} + + +.form-control:hover { + border-color: dimgray; + background-color: #434343; + box-shadow: none; + color:white; + +} + +.form-control:focus { + border-color: dimgray; + background-color: #434343; + box-shadow: none; + + color:white; +} + /* Features to display */ .features-div { - background-color: white; + background-color: #262525; + border-color: dimgray; + border-width: thin; + border-style: solid; + color:white; + border-radius: 8px; padding-block: 10px; height: 200px; overflow-y: scroll; } .features-div-two { - background-color: white; + background-color: #262525; + border-color: dimgray; + border-width: thin; + border-style: solid; padding-block: 10px; + border-radius: 8px; height: 370px; overflow-y: scroll; } + +.features-div-two ul { + padding:0.8rem; + padding-top:0; +} + .display-features-list { list-style-type: none; } @@ -126,7 +213,11 @@ header { .fa-chevron-up, .fa-chevron-down, .fa-minus { - background-color: gray; + background-color: black; + border-style: solid; + border-color:white; + border-width:thin; + border-radius:8px; padding: 10px; transition: 0.25s; } @@ -138,9 +229,11 @@ header { } .icons-list i { cursor: pointer; + border-radius: 5px; + width:35px; } .display-features-list li:hover { - background-color: blue; + background-color: dodgerblue; cursor: pointer; } @@ -149,20 +242,23 @@ header { margin-top: 60px; } .save-btn { - background-color: gray; + background-color: black; color: white; + border-color:white; padding-inline: 40px; transition: 0.25s; + border-radius:8px; } .footer { text-align: center; color: white; - margin-top: 120px; + font-size:13px; + margin-top: 15px; } li.active { - background-color: skyblue; + background-color: dodgerblue; } .row-1, .row-3 { @@ -181,15 +277,33 @@ li.active { margin-right: 1.25rem; } .font-6 { - font-size: 1.5rem; + font-size:22px; + color:white; + background: linear-gradient(90deg, #ff0000, #ffff00, #ff00f3, #0033ff, #ff00c4, #ff0000); + background-size:400%; + -webkit-text-fill-color: transparent; + -webkit-background-clip: text; + animation: animated 10s linear infinite; + letter-spacing: 1px; + word-spacing: 5px; + + } + +@keyframes animated { + 0%{ + background-position: 0%; + } + 100%{ + background-position: 400%; + } +} + #connected-text { left: calc(100% + 1.25rem); display: none; } -#selected-display-text { - color: blue; -} + #top-row-text, #bottom-row-text { text-align: center; @@ -239,7 +353,7 @@ li.active { height: 25px; } #circle-1 { - background-color: green; + background-color: lime; } #circle-2 { background-color: red; @@ -254,3 +368,795 @@ li.active { top: 10px; } } + + +.icon-featuresdisplay i { + cursor: pointer; + border-radius:5px; + width: 35px; +} + + +.btn-success { + background-color: #004202; + border-color: green; +} + +.btn-success:hover { + color:white; + background-color:green; + border-color:limegreen; +} + +.btn-success:active { + color:grey; + background-color:#002803; + border-color:green; +} + +.btn-info { + background-color: #3C005E; + border-color:purple; + color:white; +} + +.btn-info:hover { + color:white; + background-color:darkviolet; + border-color:magenta; +} + +.btn-info:active { + color:grey; + background-color:#2A003F; + border-color:purple; +} + +.btn-warning { + background-color: #4C2100; + border-color: orange; + color: white; +} + +.btn-warning:hover { + background-color: orangered; + color:white; + border-color: yellow; +} + +.btn-warning:active { + background-color: #4C2100; + border-color: orange; + color: grey; +} + +.btn-dark { + background-color: #00276B; + border-color:blue; + color:white; +} + +.btn-dark:hover { + color:white; + background-color:#014ADC; + border-color:deepskyblue; +} + +.btn-dark:active { + color:grey; + background-color:#001B50; + border-color:blue; +} + +.btn-danger { + background-color: #460101; + border-color:red; + color:white; +} + +.btn-danger:hover { + color:white; + background-color:crimson; + border-color:lightcoral; +} + +.btn-danger:active { + color:grey; + background-color:#460101; + border-color:red; +} + + +.main-div { + position: relative; + margin: 10px; + background-color: transparent; +} + + + +.main-div2::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + -webkit-box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + z-index: -1; + -webkit-animation-name: gradient-shadow; + animation-name: gradient-shadow; + -webkit-animation-timing-function: ease; + animation-timing-function: ease; + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; +} + + +.main-div3::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 50%; + height: 100%; + -webkit-box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + z-index: -1; + -webkit-animation-name: half-yellow-shadow; + animation-name: half-yellow-shadow; + -webkit-animation-timing-function: ease; + animation-timing-function: ease; + -webkit-animation-duration: 5s; + animation-duration: 5s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; +} + +.main-div3::after { + content: ''; + position: absolute; + right: 0; + bottom: 0; + width: 50%; + height: 100%; + -webkit-box-shadow: 0 0 17px 3px #0ff,0 0 4px 2px #0ff; + box-shadow: 0 0 17px 3px #0ff,0 0 4px 2px #0ff; + z-index: -1; + -webkit-animation-name: half-cyan-shadow; + animation-name: half-cyan-shadow; + -webkit-animation-timing-function: ease; + animation-timing-function: ease; + -webkit-animation-duration: 5s; + animation-duration: 5s; + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; +} + +h1 { + font-size: 50px; + margin: 0; + position: relative; + z-index: 3; + padding: 20px; + background-color: #060C1F; + color: #fff; + border-radius: 5px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -ms-border-radius: 5px; + -o-border-radius: 5px; +} + +@-webkit-keyframes yellow-shadow { + 0% { + top: 0; + left: 0; + } + 25% { + top: 50%; + left: 0; + } + 50% { + top: 50%; + left: 50%; + } + 75% { + top: 0; + left: 50%; + } + 100% { + top: 0; + left: 0; + } +} + +@keyframes yellow-shadow { + 0% { + top: 0; + left: 0; + } + 25% { + top: 50%; + left: 0; + } + 50% { + top: 50%; + left: 50%; + } + 75% { + top: 0; + left: 50%; + } + 100% { + top: 0; + left: 0; + } +} + +@-webkit-keyframes cyan-shadow { + 0% { + right: 0; + bottom: 0; + } + 25% { + right: 0; + bottom: 50%; + } + 50% { + right: 50%; + bottom: 50%; + } + 75% { + right: 50%; + bottom: 0; + } + 100% { + right: 0; + bottom: 0; + } +} + +@keyframes cyan-shadow { + 0% { + right: 0; + bottom: 0; + } + 25% { + right: 0; + bottom: 50%; + } + 50% { + right: 50%; + bottom: 50%; + } + 75% { + right: 50%; + bottom: 0; + } + 100% { + right: 0; + bottom: 0; + } +} + +@-webkit-keyframes gradient-shadow { + 0% { + -webkit-box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + } + 20% { + -webkit-box-shadow: 0 0 17px 3px #0ff,0 0 4px 2px #0ff; + box-shadow: 0 0 17px 3px #0ff,0 0 4px 2px #0ff; + } + 40% { + -webkit-box-shadow: 0 0 17px 3px #0f0,0 0 4px 2px #0f0; + box-shadow: 0 0 17px 3px #0f0,0 0 4px 2px #0f0; + } + 60% { + -webkit-box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + } + 80% { + -webkit-box-shadow: 0 0 17px 3px #f00,0 0 4px 2px #f00; + box-shadow: 0 0 17px 3px #f00,0 0 4px 2px #f00; + } + 100% { + -webkit-box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + } +} + +@keyframes gradient-shadow { + 0% { + -webkit-box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + } + 20% { + -webkit-box-shadow: 0 0 17px 3px #0ff,0 0 4px 2px #0ff; + box-shadow: 0 0 17px 3px #0ff,0 0 4px 2px #0ff; + } + 40% { + -webkit-box-shadow: 0 0 17px 3px #0f0,0 0 4px 2px #0f0; + box-shadow: 0 0 17px 3px #0f0,0 0 4px 2px #0f0; + } + 60% { + -webkit-box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + box-shadow: 0 0 17px 3px #ffff01,0 0 4px 2px #ffff01; + } + 80% { + -webkit-box-shadow: 0 0 17px 3px #f00,0 0 4px 2px #f00; + box-shadow: 0 0 17px 3px #f00,0 0 4px 2px #f00; + } + 100% { + -webkit-box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + box-shadow: 0 0 17px 3px #C586C0,0 0 4px 2px #C586C0; + } +} + +@-webkit-keyframes half-yellow-shadow { + 0% { + top: 0; + left: 0; + height: 50%; + width: 50%; + } + 16.66% { + top: 0; + left: 0; + height: 50%; + width: 100%; + } + 32.32% { + top: 0; + left: 50%; + height: 50%; + width: 50%; + } + 49.98% { + top: 50%; + left: 50%; + height: 50%; + width: 50%; + } + 66.64% { + top: 50%; + left: 0; + height: 50%; + width: 100%; + } + 83.3% { + top: 50%; + left: 0; + height: 50%; + width: 50%; + } + 100% { + top: 0; + left: 0; + height: 50%; + width: 50%; + } +} + +@keyframes half-yellow-shadow { + 0% { + top: 0; + left: 0; + height: 50%; + width: 50%; + } + 16.66% { + top: 0; + left: 0; + height: 50%; + width: 100%; + } + 32.32% { + top: 0; + left: 50%; + height: 50%; + width: 50%; + } + 49.98% { + top: 50%; + left: 50%; + height: 50%; + width: 50%; + } + 66.64% { + top: 50%; + left: 0; + height: 50%; + width: 100%; + } + 83.3% { + top: 50%; + left: 0; + height: 50%; + width: 50%; + } + 100% { + top: 0; + left: 0; + height: 50%; + width: 50%; + } +} + +@-webkit-keyframes half-cyan-shadow { + 0% { + bottom: 0; + right: 0; + height: 50%; + width: 50%; + } + 16.66% { + bottom: 0; + right: 0; + height: 50%; + width: 100%; + } + 32.32% { + bottom: 0; + right: 50%; + height: 50%; + width: 50%; + } + 49.98% { + bottom: 50%; + right: 50%; + height: 50%; + width: 50%; + } + 66.64% { + bottom: 50%; + right: 0; + height: 50%; + width: 100%; + } + 83.3% { + bottom: 50%; + right: 0; + height: 50%; + width: 50%; + } + 100% { + bottom: 0; + right: 0; + height: 50%; + width: 50%; + } +} + +@keyframes half-cyan-shadow { + 0% { + bottom: 0; + right: 0; + height: 50%; + width: 50%; + } + 16.66% { + bottom: 0; + right: 0; + height: 50%; + width: 100%; + } + 32.32% { + bottom: 0; + right: 50%; + height: 50%; + width: 50%; + } + 49.98% { + bottom: 50%; + right: 50%; + height: 50%; + width: 50%; + } + 66.64% { + bottom: 50%; + right: 0; + height: 50%; + width: 100%; + } + 83.3% { + bottom: 50%; + right: 0; + height: 50%; + width: 50%; + } + 100% { + bottom: 0; + right: 0; + height: 50%; + width: 50%; + } +} + +h3 { + font-weight:bold; +} + +#general { + margin-bottom:20px; +} + +#version-text { + margin-right: 2%; + margin-bottom:0; + font-size:14px; +} + +.col-auto-screensaver { + width: 220px; +} + +.col-auto-displayformat { + width: 220px; + margin-left: 7px; +} + +.pass-toggle { + margin-left:7%; +} + +#footerlinks { + text-decoration: none; +} + + + + + +@media (min-width: 768px) and (max-width: 991px) { + .icons-list a { + position: relative; + top: 10px; + } +} + + +.clip { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} + +.svg--source { + display: none +} + +.svg--icon { + width: 100%; + max-width: 5rem; + height: 100%; + max-height: 5rem; + display: block; + margin: 0 auto; + fill: currentColor +} + +.wrapper { + width: 100%; + margin-top:100px; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + padding: 1rem; +} + + + +.share { + width: 3rem; + height: 3rem; + float: left; + margin: .5rem 1rem 0rem 0; + color: #353c4a; + border: .125rem solid #f3f3f3; + box-shadow: 0 0 8px 0 rgba(50, 50, 50, 0.15); + border-radius: 50%; + transition: 250ms; + + &:last-child { + margin-right: 0 + } + + &:hover, + &:focus { + //background: white; + } + + &:focus { + outline-color: inherit; + } +} + +.twitter { + &:hover, + &:focus { + color: #00ACED; + box-shadow: 0 0 24px 0 #00ACED + } +} + +.instagram { + &:hover, + &:focus { + color: #4183c4; + box-shadow: 0 0 24px 0 #4183c4 + } +} + + +.reddit { + &:hover, + &:focus { + color: #bd081c; + box-shadow: 0 0 24px 0 #bd081c + } +} + +.trello { + &:hover, + &:focus { + color: #bd081c; + box-shadow: 0 0 24px 0 #bd081c + } +} + + + +.youtube { + &:hover, + &:focus { + color: #cd201f; + box-shadow: 0 0 24px 0 #cd201f + } +} + +.facebook { + &:hover, + &:focus { + color: #3b5998; + box-shadow: 0 0 24px 0 #3b5998 + } +} + +.discord { + &:hover, + &:focus { + color: #dd4b39; + box-shadow: 0 0 24px 0 #dd4b39 + } +} + + +#update-message { + width: 600px; + height: 180px; + background-color: darkslategray; + border-radius: 30px; + position: fixed; /*Can also be `fixed`*/ + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + /*Solves a problem in which the content is being cut when the div is smaller than its' wrapper:*/ + max-width: 100%; + max-height: 100%; + overflow: auto; + z-index:99; + +} + +#update-p { + margin-top:50px; + margin-left:70px; + font-size: 20px; + margin-right:70px; + margin-bottom:20px; +} + + + +#wifi-message { + width: 350px; + height: 120px; + border-radius:20px; + background-color: darkslategray; + position: fixed; /*Can also be `fixed`*/ + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + /*Solves a problem in which the content is being cut when the div is smaller than its' wrapper:*/ + max-width: 100%; + max-height: 100%; + overflow: auto; + z-index:99; + +} + +#wifi-p { + margin-top:30px; + margin-left:70px; + font-size:20px; + margin-right:70px; + margin-bottom:20px; +} + +#weather-api-p { + color:red; +} + +label:hover { + cursor:text; +} + +input[type=checkbox]:hover { + cursor:pointer; +} + +#demo { + color:red; +} + +#demo2 { + color:red; +} + +#demo3 { + color:red; +} + +#demo4 { + color:red; +} + +#demo5 { + color:red; +} + +#demo6 { + color:red; +} + +#demo7 { + color:red; +} + +#demo8 { + color:red; +} + +#limit-msg { + color:red; +} diff --git a/stockTicker.py b/stockTicker.py index 12c3f6e..91c2144 100755 --- a/stockTicker.py +++ b/stockTicker.py @@ -68,19 +68,19 @@ class StockTicker(): 'Daily Forecast':self.getDailyWeatherImage, 'Current Weather': self.getTodayWeatherImage, 'Sports (Team Stats)':lambda : self.getLeagueTableImage('premier_league'), 'Sports (Past Games)': lambda:self.getLeagueImage('NBA', 'past'), 'Sports (Upcoming Games)': lambda : self.getLeagueImage('NHL', 'future'), 'Sports (Live Games)': lambda: self.getLeagueImage('NBA', 'live'), - 'News':self.getNewsImage, 'Custom Messages': self.getUserMessages, + 'News':self.getNewsImage, 'Custom Messages': self.getUserMessages, 'Commodities': self.getCommoditiesImage, 'Stocks Prof': self.getStockProfessional, 'Crypto Prof': self.getCryptoProfessional, 'Forex Prof': self.getForexProfessional, - 'Current Weather Prof': self.getTodayWeatherProfessional, 'News Prof':self.getNewsProfessional} + 'Current Weather Prof': self.getTodayWeatherProfessional, 'News Prof':self.getNewsProfessional, 'Commodities Prof':self.getCommoditiesProfessional} self.JSONs = {'Stocks': 'csv/stocks_settings.json', 'Crypto': 'csv/crypto_settings.json', 'Forex': 'csv/forex_settings.json', - 'Daily Forecast':'csv/daily_weather.json', 'Current Weather': 'csv/current_weather.json', + 'Daily Forecast':'csv/daily_weather.json', 'Current Weather': 'csv/current_weather.json', 'Commodities':'csv/commodities_settings.json', 'Sports (Team Stats)': 'csv/league_tables.json', 'Sports (Past Games)': 'csv/past_games.json', 'Sports (Upcoming Games)': 'csv/upcoming_games.json', 'Sports (Live Games)': 'csv/live_games.json', 'News':'csv/news_settings.json', 'Custom Images': 'csv/image_settings.json', 'Custom GIFs': 'csv/GIF_settings.json', 'Custom Messages': 'csv/message_settings.json', 'Stocks Prof': 'csv/stocks_settings.json', 'Crypto Prof': 'csv/crypto_settings.json', 'Forex Prof': 'csv/forex_settings.json', - 'Current Weather Prof': 'csv/current_weather.json', 'News Prof':'csv/news_settings.json'} + 'Current Weather Prof': 'csv/current_weather.json', 'News Prof':'csv/news_settings.json', 'Commodities Prof':'csv/commodities_settings.json'} def openImage(self, image_file): @@ -673,9 +673,8 @@ class StockTicker(): i+=1 def textImage(self, text, font, r = 255, g = 255, b = 255, matrix_height = False, w_buff = 3, h_buff = 3, background = False, location = False): - ''' - creates and returns a ppm image containing the text in the supplied font and colour - ''' + #creates and returns a ppm image containing the text in the supplied font and colour + width, height = self.get_text_dimensions(text, font) @@ -698,9 +697,9 @@ class StockTicker(): def getUserMessages(self): - ''' - displays the text entered in the webpage by the user. - ''' + + #displays the text entered in the webpage by the user. + @@ -937,7 +936,9 @@ class StockTicker(): ticker, base = cb.split(',') current = float(coin_info[cb]["current"]) point_change = float(coin_info[cb]["24hr_change"]) - + point_change2 = abs(point_change) + point_changefinal = '{0:.10f}'.format(point_change2).rstrip("0") + current_final = '{0:.10f}'.format(current).rstrip("0") percent_change = float(coin_info[cb]["percent_change"]) @@ -945,8 +946,8 @@ class StockTicker(): arrow, change = self.getArrow(point_change) percent_change = '%.2f' % abs(percent_change) + '%' - point_change = str(abs(point_change)) - current = str(current) + point_change = str(point_changefinal) + current = str(current_final) if not all_crypto_settings['percent']: percent_change = False @@ -972,16 +973,16 @@ class StockTicker(): image_list.append(self.blank) except Exception as e: - - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() finalDisplayImage = self.stitchImage(image_list) @@ -1016,7 +1017,10 @@ class StockTicker(): try: ticker, base = cb.split(',') current = float(coin_info[cb]["current"]) + current_final = '{0:.10f}'.format(current).rstrip("0") change = float(coin_info[cb]["24hr_change"]) + change2 = abs(change) + changefinal = '{0:.10f}'.format(change2).rstrip("0") arrow, change = self.getArrow(change, professional=True) if all_crypto_settings["percent"]: @@ -1024,9 +1028,9 @@ class StockTicker(): change = '%.2f' % abs(float(coin_info[cb]['percent_change'])) + '%' else: - change = str(abs(change)) + change = str(changefinal) - current = str(current) + current = str(current_final) midFrame = self.textToImageProf(ticker + '(' + base + ')', current, change, arrow, font=ImageFont.load("./fonts/6x10.pil")) #IMAGE THE TEXT if all_crypto_settings['logos']: try: @@ -1046,19 +1050,199 @@ class StockTicker(): image_list.append(self.blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() finalDisplayImage = self.stitchImage(image_list) self.blank = Image.new('RGB', (10, 32)) return finalDisplayImage + + def getCommoditiesImage(self): + + f = open('csv/commodities_settings.json', 'r') + all_commodities_settings = json.load(f) + f.close() + + if all_commodities_settings['title']: + title_img = self.openImage('feature_titles/commodities.png') + image_list = [title_img] + image_list.append(self.blank) + else: + image_list = [] + + + commodity_info = all_commodities_settings['symbols'] + symbols = list(commodity_info.keys()) + + for i, symbol in enumerate(symbols): + + try: + info = commodity_info[symbol] + + change = float(info['24hr_change']) #TEXT + ticker = symbol #TEXT + unit = info['unit'] + ticker = symbol + '(' + unit + ')' #TEXT + arrow, change = self.getArrow(change) + + percent_change = '%.2f' % abs(float(info['percent_change'])) + '%' + + point_change2 = abs(change) + point_changefinal = '{0:.10f}'.format(point_change2).rstrip("0") + point_change = str(point_changefinal) + + + current = float(info["current"]) + current_final = '{0:.10f}'.format(current).rstrip("0") + current = str(current_final) + + + + if not all_commodities_settings['percent']: + percent_change = False + if not all_commodities_settings['point']: + point_change = False + + + + + midFrame = self.textToImage(ticker, current, arrow, percent_change, point_change) #IMAGE THE TEXT + + if all_commodities_settings['logos']: + try: + logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'commodities') + + logo = self.openImage(os.path.join(logos_path, ticker + '.png')) + stitchedCommodity = self.stitchImage([logo,midFrame]) + except Exception as e: + + stitchedCommodity = midFrame + else: + stitchedCommodity = midFrame + + image_list.append(stitchedCommodity) + + + image_list.append(self.blank) + except Exception as e: + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() + + + + finalDisplayImage = self.stitchImage(image_list) + + + + return finalDisplayImage + + + def getCommoditiesProfessional(self): + self.blank = Image.new('RGB', (0, 16)) + + f = open('csv/commodities_settings.json', 'r') + all_commodities_settings = json.load(f) + f.close() + + if all_commodities_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/commodities.png') + image_list = [title_img, Image.new('RGB', (5, 16))] + image_list.append(self.blank) + else: + image_list = [] + + + commodity_info = all_commodities_settings['symbols'] + symbols = list(commodity_info.keys()) + + for i, symbol in enumerate(symbols): + + try: + info = commodity_info[symbol] + + change = float(info['24hr_change']) #TEXT + unit = info['unit'] + ticker = symbol + '(' + unit + ')' #TEXT + + + + arrow, change = self.getArrow(change, professional=True) + + if all_commodities_settings["percent"]: + change = '%.2f' % abs(float(info['percent_change'])) + '%' + else: + point_change2 = abs(change) + point_changefinal = '{0:.10f}'.format(point_change2).rstrip("0") + change = str(point_changefinal) + + + current = float(info["current"]) + current_final = '{0:.10f}'.format(current).rstrip("0") + current = str(current_final) + + midFrame = self.textToImageProf(ticker, current, change, arrow, font=ImageFont.load("./fonts/6x10.pil")) #IMAGE THE TEXT + + if all_commodities_settings['logos']: + try: + try: #load the tiny logo + logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'tiny_commodities') + + logo = Image.open(os.path.join(logos_path, ticker + '.png')) + + except: # load the big logo and scale it + + logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'commodities') + + logo = Image.open(os.path.join(logos_path, ticker + '.png')) + # half the size of the logo + width, height = logo.size + + logo = logo.resize((int(width/2), int(height/2))) + stitchedCommodity = self.stitchImage([logo,midFrame]) + except Exception as e: + + stitchedCommodity = midFrame + else: + stitchedCommodity = midFrame + + image_list.append(stitchedCommodity) + + + image_list.append(self.blank) + + except Exception as e: + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() + + finalDisplayImage = self.stitchImage(image_list) + + + self.blank = Image.new('RGB', (10, 32)) + return finalDisplayImage def getForexImage(self): @@ -1083,12 +1267,14 @@ class StockTicker(): symbol, base = sb.split(',') current = float(forex_settings[sb]['current']) + current_final = '{0:.10f}'.format(current).rstrip("0") change = float(forex_settings[sb]['24hr_change']) - + change2 = abs(change) + changefinal = '{0:.10f}'.format(change2).rstrip("0") percent_change = '%.2f' % abs(float(forex_settings[sb]['percent_change'])) +'%' - point_change = str(abs(change)) + point_change = str(changefinal) if not all_forex_settings['percent']: percent_change = False @@ -1099,7 +1285,7 @@ class StockTicker(): - current = str(current) + current = str(current_final) midFrame = self.textToImage(symbol+ '(' + base + ')', current, arrow, percent_change, point_change) #IMAGE THE TEXT @@ -1122,29 +1308,31 @@ class StockTicker(): image_list.append(new_im) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() image_list.append(midFrame) image_list.append(self.blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() finalDisplayImage = self.stitchImage(image_list) @@ -1175,8 +1363,11 @@ class StockTicker(): symbol, base = sb.split(',') current = float(forex_settings[sb]['current']) + current_final = '{0:.10f}'.format(current).rstrip("0") change = float(forex_settings[sb]['24hr_change']) - + change2 = abs(change) + changefinal = '{0:.10f}'.format(change2).rstrip("0") + arrow, change = self.getArrow(change, professional = True) @@ -1188,8 +1379,8 @@ class StockTicker(): change = '%.2f' % change + '%' else: - change = str(abs(change)) - current = str(current) + change = str(changefinal) + current = str(current_final) midFrame = self.textToImageProf(symbol + '(' + base + ')', current, change, arrow, font = ImageFont.load("./fonts/6x10.pil")) #IMAGE THE TEXT if all_forex_settings['logos']: @@ -1212,30 +1403,32 @@ class StockTicker(): image_list.append(new_im) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() image_list.append(midFrame) image_list.append(self.blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() finalDisplayImage = self.stitchImage(image_list) self.blank = Image.new('RGB', (10, 32)) @@ -1307,16 +1500,16 @@ class StockTicker(): image_list.append(self.blank) except Exception as e: - - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() @@ -1394,15 +1587,16 @@ class StockTicker(): image_list.append(self.blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() finalDisplayImage = self.stitchImage(image_list) @@ -1480,15 +1674,16 @@ class StockTicker(): image_list.append(img) image_list.append(self.blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() news_image = self.stitchImage(image_list) return news_image @@ -1543,19 +1738,19 @@ class StockTicker(): try: logo_name = source.lower().replace(' ', '-') - logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'news_logos') + logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'tiny_news') logo = Image.open(os.path.join(logos_path, logo_name + '.png')) except Exception as e: logo_name = 'default' - logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'news_logos') + logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'tiny_news') logo = Image.open(os.path.join(logos_path, logo_name + '.png')) width, height = logo.size - logo = logo.resize((int(width/2), int(height/2))) + #logo = logo.resize((int(width/2), int(height/2))) img = Image.new('RGB', (headline_img.size[0]+ source_img.size[0] + logo.size[0] +5, 32)) img.paste(headline_img, (source_img.size[0]+ logo.size[0] -5, 3)) @@ -1569,15 +1764,16 @@ class StockTicker(): image_list.append(img) image_list.append(blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() news_image = self.stitchImage(image_list) return news_image @@ -1729,16 +1925,16 @@ class StockTicker(): img = img.crop((0,0,x_offset ,32)) imgs.append(img) except Exception as e: - - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() @@ -1798,16 +1994,16 @@ class StockTicker(): img.paste(logo, (x_offset, 0)) x_offset += logo.size[0] + 2 except Exception as e: - - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() name_timage = self.textImage(team['name'], med_font, r = 255, g = 255, b = 0) @@ -1839,16 +2035,16 @@ class StockTicker(): img = img.crop((0,0,x_offset ,32)) imgs.append(img) except Exception as e: - - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() return self.stitchImage(imgs) def convertTemp(self,temp, setting): if setting == 'kelvin': @@ -1888,9 +2084,13 @@ class StockTicker(): main = current_weather['main_weather'] if main == 'Clouds': main = current_weather['description'] + if main == 'Rain': + main = current_weather['description'] weather_ids = {'Clear': '01', 'few clouds': '02', 'scattered clouds': '03', 'broken clouds':'04', 'overcast clouds':'04', 'Drizzle':'09', 'Rain':'10', 'Thunderstorm':'11', 'Snow':'13', 'Mist': '50', 'Smoke': '50', 'Haze': '50', 'Dust': '50', 'Fog': '50', - 'Sand': '50', 'Ash': '50', 'Squall': '50', 'Tornado': '50'} + 'Sand': '50', 'Ash': '50', 'Squall': '50', 'Tornado': '50', 'light rain': '10', 'moderate rain': '10', 'heavy intensity rain': '10', + 'very heavy rain': '10', 'extreme rain': '10', 'freezing rain': '13', 'light intensity shower rain': '09', 'shower rain': '09', + 'heavy intensity shower rain': '09', 'ragged shower rain': '09'} weather_dir = './logos/weather_icons' weather_img = Image.open(weather_dir + '/weather_type_icons/' + weather_ids[main] + '.png') @@ -1950,12 +2150,12 @@ class StockTicker(): x_offset += max( main_img.size[0], temp_img.size[0] + deg_img.size[0]) - img.paste(min_img, (x_offset - 1, 12)) - img.paste(max_img, (x_offset - 1, 21)) + img.paste(min_img, (x_offset - 0, 12)) + img.paste(max_img, (x_offset - 0, 21)) x_offset += max(min_img.size[0], max_img.size[0]) + 2 - img.paste(hum_img, ( x_offset, 8)) - img.paste(uv_img, ( x_offset, 22)) + img.paste(hum_img, ( x_offset - 1, 8)) + img.paste(uv_img, ( x_offset - 1, 22)) img.paste(htext_img, (x_offset + hum_img.size[0], 10)) img.paste(utext_img, (x_offset + uv_img.size[0], 23)) @@ -1989,15 +2189,16 @@ class StockTicker(): imgs.append(img) imgs.append(self.blank) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() return self.stitchImage(imgs) @@ -2041,9 +2242,13 @@ class StockTicker(): main = current_weather['main_weather'] if main == 'Clouds': main = current_weather['description'] + if main == 'Rain': + main = current_weather['description'] weather_ids = {'Clear': '01', 'few clouds': '02', 'scattered clouds': '03', 'broken clouds':'04', 'overcast clouds':'04', 'Drizzle':'09', 'Rain':'10', 'Thunderstorm':'11', 'Snow':'13', 'Mist': '50', 'Smoke': '50', 'Haze': '50', 'Dust': '50', 'Fog': '50', - 'Sand': '50', 'Ash': '50', 'Squall': '50', 'Tornado': '50'} + 'Sand': '50', 'Ash': '50', 'Squall': '50', 'Tornado': '50', 'light rain': '10', 'moderate rain': '10', 'heavy intensity rain': '10', + 'very heavy rain': '10', 'extreme rain': '10', 'freezing rain': '13', 'light intensity shower rain': '09', 'shower rain': '09', + 'heavy intensity shower rain': '09', 'ragged shower rain': '09'} weather_dir = './logos/weather_icons' @@ -2060,9 +2265,9 @@ class StockTicker(): x_offset += date_img.size[0] + 2 - weather_img = Image.open(weather_dir + '/weather_type_icons/' + weather_ids[main] + '.png') + weather_img = Image.open(weather_dir + '/small_icons/' + weather_ids[main] + '.png') w, h = weather_img.size - weather_img = weather_img.resize((int(w/2), int(h/2))) + #weather_img = weather_img.resize((int(w/2), int(h/2))) main = current_weather['main_weather'] main_img = self.textImage(main.upper(), font) @@ -2132,16 +2337,16 @@ class StockTicker(): image_list.append(img) except Exception as e: - - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() return self.stitchImage(image_list) def getDailyWeatherImageAlt(self): @@ -2321,9 +2526,13 @@ class StockTicker(): main = daily_weather[0]['main_weather'] if main == 'Clouds': main = daily_weather[0]['description'] + if main == 'Rain': + main = daily_weather[0]['description'] weather_ids = {'Clear': '01', 'few clouds': '02', 'scattered clouds': '03', 'broken clouds':'04', 'overcast clouds':'04', 'Drizzle':'09', 'Rain':'10', 'Thunderstorm':'11', 'Snow':'13', 'Mist': '50', 'Smoke': '50', 'Haze': '50', 'Dust': '50', 'Fog': '50', - 'Sand': '50', 'Ash': '50', 'Squall': '50', 'Tornado': '50'} + 'Sand': '50', 'Ash': '50', 'Squall': '50', 'Tornado': '50', 'light rain': '10', 'moderate rain': '10', 'heavy intensity rain': '10', + 'very heavy rain': '10', 'extreme rain': '10', 'freezing rain': '13', 'light intensity shower rain': '09', 'shower rain': '09', + 'heavy intensity shower rain': '09', 'ragged shower rain': '09'} weather_dir = './logos/weather_icons' @@ -2396,8 +2605,8 @@ class StockTicker(): x_offset += max( main_img.size[0], temp_img.size[0] + deg_img.size[0]) - img.paste(min_img, (x_offset - 1, 12)) - img.paste(max_img, (x_offset - 1, 21)) + img.paste(min_img, (x_offset - 0, 12)) + img.paste(max_img, (x_offset - 0, 21)) x_offset += max(min_img.size[0], max_img.size[0]) + 2 @@ -2444,7 +2653,7 @@ class StockTicker(): #img.paste(date_img, (70, 0)) x_offset = 77 - for i in range(1,len(daily_weather)-1): + for i in range(1,len(daily_weather)): weekday = weekdays[(datetime.today().weekday() + i)%7] day_img = self.textImage( weekday.upper(), small_font) @@ -2454,11 +2663,12 @@ class StockTicker(): if main == 'Clouds': main = weather['description'] + if main == 'Rain': + main = weather['description'] - - - min_temp = self.convertTemp(weather['min_temp'], daily_weathers['temp']) - max_temp = self.convertTemp(weather['max_temp'], daily_weathers['temp']) + + min_temp = self.convertTemp(weather['min_temp'], daily_weathers['temp']) + max_temp = self.convertTemp(weather['max_temp'], daily_weathers['temp']) @@ -2480,15 +2690,16 @@ class StockTicker(): imgs.append(self.blank) # add the image text except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() return self.stitchImage(imgs) @@ -2567,15 +2778,16 @@ class StockTicker(): imgs.append(img) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() return imgs @@ -2594,25 +2806,25 @@ class StockTicker(): if ind == 0 and all_settings['title']: - title_img = self.openImage('feature_titles/gifs.png') + #title_img = self.openImage('feature_titles/gifs.png') for i, frame in enumerate(ImageSequence.Iterator(GIF)): - frame = frame.convert('RGB') - frame.thumbnail((128, 32)) + frame = frame.convert('P') + frame.thumbnail((128, 32),Image.NEAREST) - f = self.stitchImage([title_img, frame]) - frames.append(f) + #f = self.stitchImage([title_img, frame]) + frames.append(frame) else: for i, frame in enumerate(ImageSequence.Iterator(GIF)): - frame = frame.convert('RGB') - frame.thumbnail((128, 32)) + frame = frame.convert('P') + frame.thumbnail((128, 32),Image.NEAREST) #frame = frame.resize((99999, 32)) - f = self.stitchImage([frame]) - frames.append(f) + #f = self.stitchImage([frame]) + frames.append(frame) frames[0].save('./display_images/working_gif{}.gif'.format(str(ind)), save_all=True, append_images=frames[1:], loop=0, optimize = False) @@ -2621,32 +2833,33 @@ class StockTicker(): except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() #below code stitches title and GIF together - ''' - frames = [] + +# frames = [] - for i, frame in enumerate(ImageSequence.Iterator(gif)): +# for i, frame in enumerate(ImageSequence.Iterator(gif)): - if all_settings['title']: - f = self.stitchImage([title_img, frame]) - else: - f = self.stitchImage([frame]) - frames.append(f) +# if all_settings['title']: +# f = self.stitchImage([title_img, frame]) +# else: +# f = self.stitchImage([frame]) +# frames.append(f) - frames[0].save('./display_images/Custom GIFs.gif', save_all=True, append_images=frames[1:], loop=0, optimize = False) - ''' +# frames[0].save('./display_images/Custom GIFs.gif', save_all=True, append_images=frames[1:], loop=0, optimize = False) + return GIFs @@ -2660,6 +2873,7 @@ class StockTicker(): news = self.getNewsProfessional() stock = self.getStockProfessional() weather = self.getTodayWeatherProfessional() + commodities = self.getCommoditiesProfessional() x_offset = 0 news.paste(weather, (x_offset, 16)) @@ -2670,6 +2884,8 @@ class StockTicker(): x_offset += stock.size[0] news.paste(forex, (x_offset, 16)) x_offset += forex.size[0] + news.paste(commodities, (x_offset, 16)) + x_offset += commodities.size[0] self.double_buffer = self.matrix.CreateFrameCanvas() while True: kill = stock_ticker.scrollImage(news, offset_x = 128) @@ -2741,6 +2957,9 @@ class StockTicker(): elif msg == 't': #legue tble self.scrollFunctionsAnimated(['league_table', 'league_table'],animation = 'traditional') + elif msg == 'CO': #commodities + self.scrollFunctionsAnimated(['commodities', 'commodities'],animation = 'traditional') + elif msg == 'A': #everything #userSettings = ['display_gif', 'text', 'display_image', 'stocks', 'crypto', 'forex', 'today_weather', 'daily_weather', 'league_table', 'league_games', 'news'] # these wil be read from csv, just for demo @@ -2800,15 +3019,16 @@ if __name__ == '__main__': msg = getInput() stock_ticker.process_msg(msg) except Exception as e: - logf = open('log.txt', "a") - exc_type, exc_obj, exc_tb = sys.exc_info() - fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] - logf.write(str(e)) - logf.write('. file: ' + fname) - logf.write('. line: ' + str(exc_tb.tb_lineno)) - logf.write('. type: ' + str(exc_type)) - logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) - logf.close() + pass +# logf = open('log.txt', "a") +# exc_type, exc_obj, exc_tb = sys.exc_info() +# fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] +# logf.write(str(e)) +# logf.write('. file: ' + fname) +# logf.write('. line: ' + str(exc_tb.tb_lineno)) +# logf.write('. type: ' + str(exc_type)) +# logf.write('\n ' + "".join(traceback.format_exception(sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2]))) +# logf.close() diff --git a/templates/index.html b/templates/index.html index 7d1b033..74614cb 100644 --- a/templates/index.html +++ b/templates/index.html @@ -66,7 +66,8 @@ - + + @@ -82,13 +83,13 @@ -