diff --git a/check_update.sh b/check_update.sh index 6ed30dc..270e472 100755 --- a/check_update.sh +++ b/check_update.sh @@ -1,7 +1,19 @@ #!/bin/bash -sleep 80 +sleep 120 +internet="offline" + +wget -q --spider http://google.com + +if [ $? -eq 0 ]; then + internet="online" +else + internet="offline" +fi + + +if [[ $internet = "online" ]]; then value=$(> csv/system_info.json sudo chmod 777 csv/system_info.json - +fi diff --git a/csv/indices_settings.json b/csv/indices_settings.json new file mode 100644 index 0000000..af92599 --- /dev/null +++ b/csv/indices_settings.json @@ -0,0 +1 @@ +{"feature": "Stocks", "speed": "fast", "speed2": "slow", "animation": "up", "percent": true, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"^HSI": {"name": "HSI", "current": "18083.06", "point_change": "1003.55", "percent_change": "5.88"}, "^GSPC": {"name": "S&P 500", "current": "3790.93", "point_change": "112.50", "percent_change": "3.06"}, "^RUT": {"name": "RUSSELL 2000", "current": "1775.77", "point_change": "66.90", "percent_change": "3.91"}, "^GDAXI": {"name": "DAX", "current": "12648.95", "point_change": "-21.53", "percent_change": "-0.17"}, "^FTSE": {"name": "FTSE 100", "current": "7058.68", "point_change": "-27.82", "percent_change": "-0.39"}, "^FCHI": {"name": "CAC 40", "current": "6031.45", "point_change": "-8.24", "percent_change": "-0.14"}, "399001.SZ": {"name": "SZSE", "current": "10778.61", "point_change": "-140.83", "percent_change": "-1.29"}, "^STOXX50E": {"name": "STOXX 50", "current": "3476.55", "point_change": "-7.93", "percent_change": "-0.23"}, "^AXJO": {"name": "ASX 200", "current": "6815.70", "point_change": "116.40", "percent_change": "1.74"}, "^DJI": {"name": "DOW JONES", "current": "30316.32", "point_change": "825.43", "percent_change": "2.80"}, "^STOXX": {"name": "STOXX 600", "current": "402.33", "point_change": "-0.70", "percent_change": "-0.17"}}} \ No newline at end of file diff --git a/csv/last_updates.json b/csv/last_updates.json index 4f8d954..4647d2c 100644 --- a/csv/last_updates.json +++ b/csv/last_updates.json @@ -1 +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 +{"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}, "indices": {"time": "05/10/2022 04:06:10", "force": false}} diff --git a/csv/sports/PREMIERLEAGUE/team_info.csv b/csv/sports/PREMIERLEAGUE/team_info.csv index e40827b..0f10da7 100644 --- a/csv/sports/PREMIERLEAGUE/team_info.csv +++ b/csv/sports/PREMIERLEAGUE/team_info.csv @@ -10,12 +10,15 @@ Everton,133615,EVE,Blue,Everton.png Leeds,133635,LEE,Yellow,Leeds.png Leicester,133626,LEI,Blue,Leicester.png Liverpool,133602,LIV,Red,Liverpool.png -Man City,133613,MCI,Blue,Manchester City.png -Man United,133612,MUN,Red,Man United.png +Manchester City,133613,MCI,Blue,Manchester City.png +Manchester United,133612,MUN,Red,Man United.png Newcastle,134777,NEW,Light blue,Newcastle.png Norwich,133608,NOR,Green,Norwich.png Southampton,134778,SOU,Red,Southampton.png Tottenham,133616,TOT,Dark blue,Tottenham.png Watford,133624,WAT,Red,Watford.png West Ham,133636,WHU,Red,West Ham.png -Wolves,133599,WOL,Yellow,Wolves.png \ No newline at end of file +Wolves,133599,WOL,Yellow,Wolves.png +Fulham,133600,FUL,Red,Fulham.png +Nottingham Forest,133720,FOR,Red,Nottingham Forest.png +Bournemouth,134301,BOU,Red,Bournemouth.png diff --git a/database_caller.py b/database_caller.py index 5bbea0d..d69c5fb 100755 --- a/database_caller.py +++ b/database_caller.py @@ -20,6 +20,20 @@ import traceback from geopy import geocoders from multiprocessing import Process +try: + time.sleep(80) + 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 + + def getInput(Block=False): if Block or select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []): msg = sys.stdin.read(1) @@ -68,7 +82,7 @@ def updateStocks(api_key, logf): data = response.json() - stock_info = {} + # stock_info = {} if len(data) > 0: for symbol in symbols: for stock in data: @@ -83,17 +97,18 @@ def updateStocks(api_key, logf): json.dump(all_stocks_settings, f) f.close() - except Exception as e: + except: + 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() + #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 updateCommodities(api_key, logf): @@ -128,18 +143,68 @@ def updateCommodities(api_key, logf): json.dump(all_commodities_settings, f) f.close() - except Exception as e: + except: + 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() + #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 updateIndices(api_key, logf): + + try: + + f = open('csv/indices_settings.json', 'r') + all_indices_settings = json.load(f) + f.close() + + index_info = all_indices_settings['symbols'] + symbols = list(index_info.keys()) + + url = 'https://bm7p954xoh.execute-api.us-east-2.amazonaws.com/default/ScriptsAPI/indices?symbols=' + + for symbol in symbols: + url += symbol + ',' + + url += '&apiKey=' + api_key + response = requests.get(url) + data = response.json() + + + index_info = {} + if len(data) > 0: + for symbol in symbols: + for index in data: + if index['symbol'] == symbol: + index_info[index['symbol']] = {'name': index['name'], 'current': index['price'], 'point_change': index['change'], 'percent_change': index['percent_change']} + + all_indices_settings['symbols'] = index_info + f = open('csv/indices_settings.json', 'w+') + json.dump(all_indices_settings, f) + f.close() + + except: + 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() + + + def updateCrypto(api_key, logf): @@ -187,17 +252,18 @@ def updateCrypto(api_key, logf): json.dump(all_crypto_settings, f) f.close() - except Exception as e: + except: + 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() + #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 updateForex(api_key, logf): @@ -246,17 +312,17 @@ def updateForex(api_key, logf): f = open( "csv/forex_settings.json", 'w+' ) json.dump(all_forex_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() + except: + 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() def updateNews(api_key, logf): @@ -309,17 +375,18 @@ def updateNews(api_key, logf): - except Exception as e: + except: + 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() + #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 updateWeather(api_key, logf): @@ -416,17 +483,18 @@ def updateWeather(api_key, logf): json.dump( all_daily_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]))) + except: + 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() + #logf.close() def updateLeagueTables(api_key, logf): @@ -484,17 +552,18 @@ def updateLeagueTables(api_key, logf): json.dump(all_settings, f) f.close() - except Exception as e: + except: + 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() + #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 updateLeagueEvents(api_key, time, logf): @@ -562,16 +631,17 @@ def updateLeagueEvents(api_key, time, logf): f = open( "csv/{}_games.json".format(time), 'w+' ) json.dump(all_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() + except: + 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() def updateSports(api_key, logf): @@ -651,7 +721,7 @@ if __name__ == '__main__': - update_frequencies = {'stocks':2, 'crypto':5, 'forex':60, 'news':120, 'weather': 120, 'sports': 1440, 'commodities': 15} #minutes + update_frequencies = {'stocks':2, 'crypto':5, 'forex':60, 'news':120, 'weather': 120, 'sports': 1440, 'commodities': 15, 'indices': 15} #minutes NY_zone = pytz.timezone('America/New_York') CET_zone = pytz.timezone('EST') @@ -694,18 +764,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 +# 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 @@ -722,7 +792,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}, "commodities": {"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}, "indices": {"time": "06/03/2022 04:10:09", "force": True}} @@ -791,7 +861,24 @@ if __name__ == '__main__': update_process = Process(target = updateCommodities, args = (api_key,logf)) update_process.start() update_processes.append(update_process) - + + # indices + indices_time = datetime.strptime(last_updates['indices']['time'], "%d/%m/%Y %H:%M:%S") + + + NY_time = datetime.now(NY_zone).replace(tzinfo=None) + diff = (NY_time - indices_time).total_seconds()/60 #minutes + + + if last_updates['indices']['force'] or diff >= update_frequencies['indices']:# or msg == 'c': + indices_time = NY_time.strftime("%d/%m/%Y %H:%M:%S") + + last_updates['indices']['time'] = indices_time + last_updates['indices']['force'] = False + update_process = Process(target = updateIndices, 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") @@ -917,18 +1004,19 @@ if __name__ == '__main__': time.sleep(10) - except Exception as e: + except: + 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() +# 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/feature_titles/indices.png b/feature_titles/indices.png new file mode 100644 index 0000000..cccb480 Binary files /dev/null and b/feature_titles/indices.png differ diff --git a/feature_titles/small_feature_titles/indices.png b/feature_titles/small_feature_titles/indices.png new file mode 100644 index 0000000..a085458 Binary files /dev/null and b/feature_titles/small_feature_titles/indices.png differ diff --git a/feature_titles/small_feature_titles/sports_future.png b/feature_titles/small_feature_titles/sports_future.png new file mode 100644 index 0000000..f2421d3 Binary files /dev/null and b/feature_titles/small_feature_titles/sports_future.png differ diff --git a/feature_titles/small_feature_titles/sports_past.png b/feature_titles/small_feature_titles/sports_past.png new file mode 100644 index 0000000..0032c40 Binary files /dev/null and b/feature_titles/small_feature_titles/sports_past.png differ diff --git a/feature_titles/small_feature_titles/sports_team_stats.png b/feature_titles/small_feature_titles/sports_team_stats.png new file mode 100644 index 0000000..91717c3 Binary files /dev/null and b/feature_titles/small_feature_titles/sports_team_stats.png differ diff --git a/logos/crypto/ACA.png b/logos/crypto/ACA.png new file mode 100644 index 0000000..0cc1d75 Binary files /dev/null and b/logos/crypto/ACA.png differ diff --git a/logos/crypto/ACH.png b/logos/crypto/ACH.png new file mode 100644 index 0000000..6d6a699 Binary files /dev/null and b/logos/crypto/ACH.png differ diff --git a/logos/crypto/ADS.png b/logos/crypto/ADS.png new file mode 100644 index 0000000..284c088 Binary files /dev/null and b/logos/crypto/ADS.png differ diff --git a/logos/crypto/ADX.png b/logos/crypto/ADX.png new file mode 100644 index 0000000..7253b52 Binary files /dev/null and b/logos/crypto/ADX.png differ diff --git a/logos/crypto/AE.png b/logos/crypto/AE.png new file mode 100644 index 0000000..5771924 Binary files /dev/null and b/logos/crypto/AE.png differ diff --git a/logos/crypto/AERGO.png b/logos/crypto/AERGO.png new file mode 100644 index 0000000..c3933f6 Binary files /dev/null and b/logos/crypto/AERGO.png differ diff --git a/logos/crypto/AETHC.png b/logos/crypto/AETHC.png new file mode 100644 index 0000000..5c463b9 Binary files /dev/null and b/logos/crypto/AETHC.png differ diff --git a/logos/crypto/AION.png b/logos/crypto/AION.png new file mode 100644 index 0000000..b205c1e Binary files /dev/null and b/logos/crypto/AION.png differ diff --git a/logos/crypto/ALBT.png b/logos/crypto/ALBT.png new file mode 100644 index 0000000..d4146e5 Binary files /dev/null and b/logos/crypto/ALBT.png differ diff --git a/logos/crypto/ALEPH.png b/logos/crypto/ALEPH.png new file mode 100644 index 0000000..27f16a2 Binary files /dev/null and b/logos/crypto/ALEPH.png differ diff --git a/logos/crypto/ALI.png b/logos/crypto/ALI.png new file mode 100644 index 0000000..266b991 Binary files /dev/null and b/logos/crypto/ALI.png differ diff --git a/logos/crypto/ALPACA.png b/logos/crypto/ALPACA.png new file mode 100644 index 0000000..d751b07 Binary files /dev/null and b/logos/crypto/ALPACA.png differ diff --git a/logos/crypto/ALPINE.png b/logos/crypto/ALPINE.png new file mode 100644 index 0000000..1cc8267 Binary files /dev/null and b/logos/crypto/ALPINE.png differ diff --git a/logos/crypto/ALUSD.png b/logos/crypto/ALUSD.png new file mode 100644 index 0000000..9a1303d Binary files /dev/null and b/logos/crypto/ALUSD.png differ diff --git a/logos/crypto/AMA.png b/logos/crypto/AMA.png new file mode 100644 index 0000000..4b3e374 Binary files /dev/null and b/logos/crypto/AMA.png differ diff --git a/logos/crypto/APE.png b/logos/crypto/APE.png new file mode 100644 index 0000000..6a39c4e Binary files /dev/null and b/logos/crypto/APE.png differ diff --git a/logos/crypto/APX.png b/logos/crypto/APX.png new file mode 100644 index 0000000..5716ef5 Binary files /dev/null and b/logos/crypto/APX.png differ diff --git a/logos/crypto/ASK.png b/logos/crypto/ASK.png new file mode 100644 index 0000000..c67abe0 Binary files /dev/null and b/logos/crypto/ASK.png differ diff --git a/logos/crypto/ASTR.png b/logos/crypto/ASTR.png new file mode 100644 index 0000000..9a00462 Binary files /dev/null and b/logos/crypto/ASTR.png differ diff --git a/logos/crypto/ATM.png b/logos/crypto/ATM.png new file mode 100644 index 0000000..76e576b Binary files /dev/null and b/logos/crypto/ATM.png differ diff --git a/logos/crypto/AUCTION.png b/logos/crypto/AUCTION.png new file mode 100644 index 0000000..378f310 Binary files /dev/null and b/logos/crypto/AUCTION.png differ diff --git a/logos/crypto/AUTO.png b/logos/crypto/AUTO.png new file mode 100644 index 0000000..87e210b Binary files /dev/null and b/logos/crypto/AUTO.png differ diff --git a/logos/crypto/AVA.png b/logos/crypto/AVA.png new file mode 100644 index 0000000..f12057b Binary files /dev/null and b/logos/crypto/AVA.png differ diff --git a/logos/crypto/AVINOC.png b/logos/crypto/AVINOC.png new file mode 100644 index 0000000..de31747 Binary files /dev/null and b/logos/crypto/AVINOC.png differ diff --git a/logos/crypto/AXEL.png b/logos/crypto/AXEL.png new file mode 100644 index 0000000..e9811d8 Binary files /dev/null and b/logos/crypto/AXEL.png differ diff --git a/logos/crypto/AXN.png b/logos/crypto/AXN.png new file mode 100644 index 0000000..747ba61 Binary files /dev/null and b/logos/crypto/AXN.png differ diff --git a/logos/crypto/BCN.png b/logos/crypto/BCN.png new file mode 100644 index 0000000..fbc020c Binary files /dev/null and b/logos/crypto/BCN.png differ diff --git a/logos/crypto/BCT.png b/logos/crypto/BCT.png new file mode 100644 index 0000000..393ff6e Binary files /dev/null and b/logos/crypto/BCT.png differ diff --git a/logos/crypto/BEAM.png b/logos/crypto/BEAM.png new file mode 100644 index 0000000..85f63b5 Binary files /dev/null and b/logos/crypto/BEAM.png differ diff --git a/logos/crypto/BEL.png b/logos/crypto/BEL.png new file mode 100644 index 0000000..150770c Binary files /dev/null and b/logos/crypto/BEL.png differ diff --git a/logos/crypto/BICO.png b/logos/crypto/BICO.png new file mode 100644 index 0000000..b314ee0 Binary files /dev/null and b/logos/crypto/BICO.png differ diff --git a/logos/crypto/BIGSB.png b/logos/crypto/BIGSB.png new file mode 100644 index 0000000..214355f Binary files /dev/null and b/logos/crypto/BIGSB.png differ diff --git a/logos/crypto/BIT.png b/logos/crypto/BIT.png new file mode 100644 index 0000000..bdcdabc Binary files /dev/null and b/logos/crypto/BIT.png differ diff --git a/logos/crypto/BITCI.png b/logos/crypto/BITCI.png new file mode 100644 index 0000000..2cf8916 Binary files /dev/null and b/logos/crypto/BITCI.png differ diff --git a/logos/crypto/BLZ.png b/logos/crypto/BLZ.png new file mode 100644 index 0000000..349ab6e Binary files /dev/null and b/logos/crypto/BLZ.png differ diff --git a/logos/crypto/BMX.png b/logos/crypto/BMX.png new file mode 100644 index 0000000..0c0c268 Binary files /dev/null and b/logos/crypto/BMX.png differ diff --git a/logos/crypto/BOA.png b/logos/crypto/BOA.png new file mode 100644 index 0000000..83c28fc Binary files /dev/null and b/logos/crypto/BOA.png differ diff --git a/logos/crypto/BONE.png b/logos/crypto/BONE.png new file mode 100644 index 0000000..7e4f291 Binary files /dev/null and b/logos/crypto/BONE.png differ diff --git a/logos/crypto/BOR.png b/logos/crypto/BOR.png new file mode 100644 index 0000000..f92e00c Binary files /dev/null and b/logos/crypto/BOR.png differ diff --git a/logos/crypto/BSW.png b/logos/crypto/BSW.png new file mode 100644 index 0000000..95f254b Binary files /dev/null and b/logos/crypto/BSW.png differ diff --git a/logos/crypto/BTM.png b/logos/crypto/BTM.png new file mode 100644 index 0000000..4df5ee8 Binary files /dev/null and b/logos/crypto/BTM.png differ diff --git a/logos/crypto/BTR.png b/logos/crypto/BTR.png new file mode 100644 index 0000000..546d8ec Binary files /dev/null and b/logos/crypto/BTR.png differ diff --git a/logos/crypto/CCD.png b/logos/crypto/CCD.png new file mode 100644 index 0000000..4c2c83d Binary files /dev/null and b/logos/crypto/CCD.png differ diff --git a/logos/crypto/CEEK.png b/logos/crypto/CEEK.png new file mode 100644 index 0000000..f0def76 Binary files /dev/null and b/logos/crypto/CEEK.png differ diff --git a/logos/crypto/CERE.png b/logos/crypto/CERE.png new file mode 100644 index 0000000..536e448 Binary files /dev/null and b/logos/crypto/CERE.png differ diff --git a/logos/crypto/CET.png b/logos/crypto/CET.png new file mode 100644 index 0000000..9bd29a5 Binary files /dev/null and b/logos/crypto/CET.png differ diff --git a/logos/crypto/CETH.png b/logos/crypto/CETH.png index 5b8e566..d82089e 100755 Binary files a/logos/crypto/CETH.png and b/logos/crypto/CETH.png differ diff --git a/logos/crypto/CGS.png b/logos/crypto/CGS.png new file mode 100644 index 0000000..1456da3 Binary files /dev/null and b/logos/crypto/CGS.png differ diff --git a/logos/crypto/CITY.png b/logos/crypto/CITY.png new file mode 100644 index 0000000..4b199c2 Binary files /dev/null and b/logos/crypto/CITY.png differ diff --git a/logos/crypto/CLV.png b/logos/crypto/CLV.png new file mode 100644 index 0000000..756884e Binary files /dev/null and b/logos/crypto/CLV.png differ diff --git a/logos/crypto/COS.png b/logos/crypto/COS.png new file mode 100644 index 0000000..140b171 Binary files /dev/null and b/logos/crypto/COS.png differ diff --git a/logos/crypto/CQT.png b/logos/crypto/CQT.png new file mode 100644 index 0000000..d804e0b Binary files /dev/null and b/logos/crypto/CQT.png differ diff --git a/logos/crypto/CTC.png b/logos/crypto/CTC.png new file mode 100644 index 0000000..83a4f37 Binary files /dev/null and b/logos/crypto/CTC.png differ diff --git a/logos/crypto/CUBE.png b/logos/crypto/CUBE.png new file mode 100644 index 0000000..dee0f38 Binary files /dev/null and b/logos/crypto/CUBE.png differ diff --git a/logos/crypto/CUDOS.png b/logos/crypto/CUDOS.png new file mode 100644 index 0000000..f2a7f8e Binary files /dev/null and b/logos/crypto/CUDOS.png differ diff --git a/logos/crypto/CULT.png b/logos/crypto/CULT.png new file mode 100644 index 0000000..9c077ad Binary files /dev/null and b/logos/crypto/CULT.png differ diff --git a/logos/crypto/CUSD.png b/logos/crypto/CUSD.png new file mode 100644 index 0000000..883b6e9 Binary files /dev/null and b/logos/crypto/CUSD.png differ diff --git a/logos/crypto/CWEB.png b/logos/crypto/CWEB.png new file mode 100644 index 0000000..2ec4224 Binary files /dev/null and b/logos/crypto/CWEB.png differ diff --git a/logos/crypto/CXO.png b/logos/crypto/CXO.png new file mode 100644 index 0000000..8fffd0e Binary files /dev/null and b/logos/crypto/CXO.png differ diff --git a/logos/crypto/DEXE.png b/logos/crypto/DEXE.png new file mode 100644 index 0000000..cae4a41 Binary files /dev/null and b/logos/crypto/DEXE.png differ diff --git a/logos/crypto/DEXT.png b/logos/crypto/DEXT.png new file mode 100644 index 0000000..1a71311 Binary files /dev/null and b/logos/crypto/DEXT.png differ diff --git a/logos/crypto/DF.png b/logos/crypto/DF.png new file mode 100644 index 0000000..6bcf82d Binary files /dev/null and b/logos/crypto/DF.png differ diff --git a/logos/crypto/DFI.png b/logos/crypto/DFI.png new file mode 100644 index 0000000..10ef396 Binary files /dev/null and b/logos/crypto/DFI.png differ diff --git a/logos/crypto/DIA.png b/logos/crypto/DIA.png new file mode 100644 index 0000000..c737321 Binary files /dev/null and b/logos/crypto/DIA.png differ diff --git a/logos/crypto/DKA.png b/logos/crypto/DKA.png new file mode 100644 index 0000000..41f31c9 Binary files /dev/null and b/logos/crypto/DKA.png differ diff --git a/logos/crypto/DOCK.png b/logos/crypto/DOCK.png new file mode 100644 index 0000000..aa3284b Binary files /dev/null and b/logos/crypto/DOCK.png differ diff --git a/logos/crypto/DOLA.png b/logos/crypto/DOLA.png new file mode 100644 index 0000000..e5c291f Binary files /dev/null and b/logos/crypto/DOLA.png differ diff --git a/logos/crypto/DOME.png b/logos/crypto/DOME.png new file mode 100644 index 0000000..075b484 Binary files /dev/null and b/logos/crypto/DOME.png differ diff --git a/logos/crypto/DPI.png b/logos/crypto/DPI.png new file mode 100644 index 0000000..93b89f3 Binary files /dev/null and b/logos/crypto/DPI.png differ diff --git a/logos/crypto/DXD.png b/logos/crypto/DXD.png new file mode 100644 index 0000000..073c88f Binary files /dev/null and b/logos/crypto/DXD.png differ diff --git a/logos/crypto/EFI.png b/logos/crypto/EFI.png new file mode 100644 index 0000000..106c2ce Binary files /dev/null and b/logos/crypto/EFI.png differ diff --git a/logos/crypto/ELA.png b/logos/crypto/ELA.png new file mode 100644 index 0000000..72ac725 Binary files /dev/null and b/logos/crypto/ELA.png differ diff --git a/logos/crypto/EMAID.png b/logos/crypto/EMAID.png new file mode 100644 index 0000000..c571df6 Binary files /dev/null and b/logos/crypto/EMAID.png differ diff --git a/logos/crypto/EURS.png b/logos/crypto/EURS.png new file mode 100644 index 0000000..c8c9e55 Binary files /dev/null and b/logos/crypto/EURS.png differ diff --git a/logos/crypto/EURT.png b/logos/crypto/EURT.png new file mode 100644 index 0000000..8f36e20 Binary files /dev/null and b/logos/crypto/EURT.png differ diff --git a/logos/crypto/EVER.png b/logos/crypto/EVER.png new file mode 100644 index 0000000..e2ade54 Binary files /dev/null and b/logos/crypto/EVER.png differ diff --git a/logos/crypto/FARM.png b/logos/crypto/FARM.png new file mode 100644 index 0000000..0e21239 Binary files /dev/null and b/logos/crypto/FARM.png differ diff --git a/logos/crypto/FCT.png b/logos/crypto/FCT.png new file mode 100644 index 0000000..6f95e77 Binary files /dev/null and b/logos/crypto/FCT.png differ diff --git a/logos/crypto/FEI.png b/logos/crypto/FEI.png new file mode 100644 index 0000000..46148c0 Binary files /dev/null and b/logos/crypto/FEI.png differ diff --git a/logos/crypto/FER.png b/logos/crypto/FER.png new file mode 100644 index 0000000..5c42bc9 Binary files /dev/null and b/logos/crypto/FER.png differ diff --git a/logos/crypto/FINE.png b/logos/crypto/FINE.png new file mode 100644 index 0000000..5928b90 Binary files /dev/null and b/logos/crypto/FINE.png differ diff --git a/logos/crypto/FIO.png b/logos/crypto/FIO.png new file mode 100644 index 0000000..d8e4871 Binary files /dev/null and b/logos/crypto/FIO.png differ diff --git a/logos/crypto/FIRO.png b/logos/crypto/FIRO.png new file mode 100644 index 0000000..e5f1f1e Binary files /dev/null and b/logos/crypto/FIRO.png differ diff --git a/logos/crypto/FIS.png b/logos/crypto/FIS.png new file mode 100644 index 0000000..6310bea Binary files /dev/null and b/logos/crypto/FIS.png differ diff --git a/logos/crypto/FITFI.png b/logos/crypto/FITFI.png new file mode 100644 index 0000000..f87f97e Binary files /dev/null and b/logos/crypto/FITFI.png differ diff --git a/logos/crypto/FLM.png b/logos/crypto/FLM.png new file mode 100644 index 0000000..78b824b Binary files /dev/null and b/logos/crypto/FLM.png differ diff --git a/logos/crypto/FLOKI.png b/logos/crypto/FLOKI.png new file mode 100644 index 0000000..a6da13e Binary files /dev/null and b/logos/crypto/FLOKI.png differ diff --git a/logos/crypto/FLUX.png b/logos/crypto/FLUX.png new file mode 100644 index 0000000..8af389e Binary files /dev/null and b/logos/crypto/FLUX.png differ diff --git a/logos/crypto/FLX.png b/logos/crypto/FLX.png new file mode 100644 index 0000000..3993421 Binary files /dev/null and b/logos/crypto/FLX.png differ diff --git a/logos/crypto/FRONT.png b/logos/crypto/FRONT.png new file mode 100644 index 0000000..3d9f8b1 Binary files /dev/null and b/logos/crypto/FRONT.png differ diff --git a/logos/crypto/FSN.png b/logos/crypto/FSN.png index 9ae0e95..3668002 100644 Binary files a/logos/crypto/FSN.png and b/logos/crypto/FSN.png differ diff --git a/logos/crypto/FUSE.png b/logos/crypto/FUSE.png new file mode 100644 index 0000000..0118da0 Binary files /dev/null and b/logos/crypto/FUSE.png differ diff --git a/logos/crypto/FWT.png b/logos/crypto/FWT.png new file mode 100644 index 0000000..0bbaab9 Binary files /dev/null and b/logos/crypto/FWT.png differ diff --git a/logos/crypto/GAL.png b/logos/crypto/GAL.png new file mode 100644 index 0000000..72118ba Binary files /dev/null and b/logos/crypto/GAL.png differ diff --git a/logos/crypto/GARI.png b/logos/crypto/GARI.png new file mode 100644 index 0000000..0e59f9b Binary files /dev/null and b/logos/crypto/GARI.png differ diff --git a/logos/crypto/GAS.png b/logos/crypto/GAS.png new file mode 100644 index 0000000..f3c7dd5 Binary files /dev/null and b/logos/crypto/GAS.png differ diff --git a/logos/crypto/GBEX.png b/logos/crypto/GBEX.png new file mode 100644 index 0000000..c673c68 Binary files /dev/null and b/logos/crypto/GBEX.png differ diff --git a/logos/crypto/GENE.png b/logos/crypto/GENE.png new file mode 100644 index 0000000..9d940bd Binary files /dev/null and b/logos/crypto/GENE.png differ diff --git a/logos/crypto/GET.png b/logos/crypto/GET.png new file mode 100644 index 0000000..17ef068 Binary files /dev/null and b/logos/crypto/GET.png differ diff --git a/logos/crypto/GFARM2.png b/logos/crypto/GFARM2.png new file mode 100644 index 0000000..f17327c Binary files /dev/null and b/logos/crypto/GFARM2.png differ diff --git a/logos/crypto/GFI.png b/logos/crypto/GFI.png new file mode 100644 index 0000000..e3fceda Binary files /dev/null and b/logos/crypto/GFI.png differ diff --git a/logos/crypto/GLMR.png b/logos/crypto/GLMR.png new file mode 100644 index 0000000..c09505a Binary files /dev/null and b/logos/crypto/GLMR.png differ diff --git a/logos/crypto/GMT.png b/logos/crypto/GMT.png new file mode 100644 index 0000000..2de7636 Binary files /dev/null and b/logos/crypto/GMT.png differ diff --git a/logos/crypto/GNS.png b/logos/crypto/GNS.png new file mode 100644 index 0000000..bd1d500 Binary files /dev/null and b/logos/crypto/GNS.png differ diff --git a/logos/crypto/GRS.png b/logos/crypto/GRS.png new file mode 100644 index 0000000..65ba3d4 Binary files /dev/null and b/logos/crypto/GRS.png differ diff --git a/logos/crypto/GTO.png b/logos/crypto/GTO.png new file mode 100644 index 0000000..6f9b7f6 Binary files /dev/null and b/logos/crypto/GTO.png differ diff --git a/logos/crypto/GUSD.png b/logos/crypto/GUSD.png new file mode 100644 index 0000000..644bed3 Binary files /dev/null and b/logos/crypto/GUSD.png differ diff --git a/logos/crypto/HARD.png b/logos/crypto/HARD.png new file mode 100644 index 0000000..3578c6e Binary files /dev/null and b/logos/crypto/HARD.png differ diff --git a/logos/crypto/HC.png b/logos/crypto/HC.png new file mode 100644 index 0000000..b0a72a6 Binary files /dev/null and b/logos/crypto/HC.png differ diff --git a/logos/crypto/HEC.png b/logos/crypto/HEC.png new file mode 100644 index 0000000..18eea95 Binary files /dev/null and b/logos/crypto/HEC.png differ diff --git a/logos/crypto/HI.png b/logos/crypto/HI.png new file mode 100644 index 0000000..b043d54 Binary files /dev/null and b/logos/crypto/HI.png differ diff --git a/logos/crypto/HOO.png b/logos/crypto/HOO.png new file mode 100644 index 0000000..ffd7806 Binary files /dev/null and b/logos/crypto/HOO.png differ diff --git a/logos/crypto/HOPR.png b/logos/crypto/HOPR.png new file mode 100644 index 0000000..53dc4fa Binary files /dev/null and b/logos/crypto/HOPR.png differ diff --git a/logos/crypto/HUSD.png b/logos/crypto/HUSD.png new file mode 100644 index 0000000..ce883ac Binary files /dev/null and b/logos/crypto/HUSD.png differ diff --git a/logos/crypto/HYDRA.png b/logos/crypto/HYDRA.png new file mode 100644 index 0000000..6e1eeda Binary files /dev/null and b/logos/crypto/HYDRA.png differ diff --git a/logos/crypto/ICH.png b/logos/crypto/ICH.png new file mode 100644 index 0000000..3baf378 Binary files /dev/null and b/logos/crypto/ICH.png differ diff --git a/logos/crypto/ICHI.png b/logos/crypto/ICHI.png new file mode 100644 index 0000000..2ff2d6e Binary files /dev/null and b/logos/crypto/ICHI.png differ diff --git a/logos/crypto/IDEX.png b/logos/crypto/IDEX.png new file mode 100644 index 0000000..cdcdf53 Binary files /dev/null and b/logos/crypto/IDEX.png differ diff --git a/logos/crypto/INST.png b/logos/crypto/INST.png new file mode 100644 index 0000000..ce9e0b0 Binary files /dev/null and b/logos/crypto/INST.png differ diff --git a/logos/crypto/INV.png b/logos/crypto/INV.png new file mode 100644 index 0000000..ca9735e Binary files /dev/null and b/logos/crypto/INV.png differ diff --git a/logos/crypto/ION.png b/logos/crypto/ION.png new file mode 100644 index 0000000..6e7a851 Binary files /dev/null and b/logos/crypto/ION.png differ diff --git a/logos/crypto/ITHEUM.png b/logos/crypto/ITHEUM.png new file mode 100644 index 0000000..a7f8bc9 Binary files /dev/null and b/logos/crypto/ITHEUM.png differ diff --git a/logos/crypto/JADE.png b/logos/crypto/JADE.png new file mode 100644 index 0000000..3f6c038 Binary files /dev/null and b/logos/crypto/JADE.png differ diff --git a/logos/crypto/JET.png b/logos/crypto/JET.png new file mode 100644 index 0000000..c2c6e3c Binary files /dev/null and b/logos/crypto/JET.png differ diff --git a/logos/crypto/JPEG.png b/logos/crypto/JPEG.png new file mode 100644 index 0000000..e3c7ce1 Binary files /dev/null and b/logos/crypto/JPEG.png differ diff --git a/logos/crypto/JST.png b/logos/crypto/JST.png new file mode 100644 index 0000000..1bc1ccc Binary files /dev/null and b/logos/crypto/JST.png differ diff --git a/logos/crypto/KAR.png b/logos/crypto/KAR.png new file mode 100644 index 0000000..34ba20f Binary files /dev/null and b/logos/crypto/KAR.png differ diff --git a/logos/crypto/KEY.png b/logos/crypto/KEY.png new file mode 100644 index 0000000..682ec40 Binary files /dev/null and b/logos/crypto/KEY.png differ diff --git a/logos/crypto/KISHU.png b/logos/crypto/KISHU.png new file mode 100644 index 0000000..7e62589 Binary files /dev/null and b/logos/crypto/KISHU.png differ diff --git a/logos/crypto/KODA.png b/logos/crypto/KODA.png new file mode 100644 index 0000000..35dcde3 Binary files /dev/null and b/logos/crypto/KODA.png differ diff --git a/logos/crypto/KRL.png b/logos/crypto/KRL.png new file mode 100644 index 0000000..3682ae7 Binary files /dev/null and b/logos/crypto/KRL.png differ diff --git a/logos/crypto/KUJI.png b/logos/crypto/KUJI.png new file mode 100644 index 0000000..2c43a2f Binary files /dev/null and b/logos/crypto/KUJI.png differ diff --git a/logos/crypto/LDO.png b/logos/crypto/LDO.png new file mode 100644 index 0000000..e17170d Binary files /dev/null and b/logos/crypto/LDO.png differ diff --git a/logos/crypto/LEASH.png b/logos/crypto/LEASH.png new file mode 100644 index 0000000..23f698c Binary files /dev/null and b/logos/crypto/LEASH.png differ diff --git a/logos/crypto/LEND.png b/logos/crypto/LEND.png new file mode 100644 index 0000000..9068272 Binary files /dev/null and b/logos/crypto/LEND.png differ diff --git a/logos/crypto/LEVER.png b/logos/crypto/LEVER.png new file mode 100644 index 0000000..7ca07da Binary files /dev/null and b/logos/crypto/LEVER.png differ diff --git a/logos/crypto/LIT.png b/logos/crypto/LIT.png new file mode 100644 index 0000000..f48451a Binary files /dev/null and b/logos/crypto/LIT.png differ diff --git a/logos/crypto/LN.png b/logos/crypto/LN.png new file mode 100644 index 0000000..90e68ca Binary files /dev/null and b/logos/crypto/LN.png differ diff --git a/logos/crypto/LOC.png b/logos/crypto/LOC.png new file mode 100644 index 0000000..53db32b Binary files /dev/null and b/logos/crypto/LOC.png differ diff --git a/logos/crypto/LOKA.png b/logos/crypto/LOKA.png new file mode 100644 index 0000000..463930b Binary files /dev/null and b/logos/crypto/LOKA.png differ diff --git a/logos/crypto/LOOKS.png b/logos/crypto/LOOKS.png new file mode 100644 index 0000000..710f848 Binary files /dev/null and b/logos/crypto/LOOKS.png differ diff --git a/logos/crypto/LOOM.png b/logos/crypto/LOOM.png new file mode 100644 index 0000000..aaf95c5 Binary files /dev/null and b/logos/crypto/LOOM.png differ diff --git a/logos/crypto/LOOMOLD.png b/logos/crypto/LOOMOLD.png new file mode 100644 index 0000000..d0438a9 Binary files /dev/null and b/logos/crypto/LOOMOLD.png differ diff --git a/logos/crypto/LTX.png b/logos/crypto/LTX.png new file mode 100644 index 0000000..a8d5ef9 Binary files /dev/null and b/logos/crypto/LTX.png differ diff --git a/logos/crypto/LUFFY.png b/logos/crypto/LUFFY.png new file mode 100644 index 0000000..ea8dc25 Binary files /dev/null and b/logos/crypto/LUFFY.png differ diff --git a/logos/crypto/LUSD.png b/logos/crypto/LUSD.png new file mode 100644 index 0000000..2a80301 Binary files /dev/null and b/logos/crypto/LUSD.png differ diff --git a/logos/crypto/MAP.png b/logos/crypto/MAP.png new file mode 100644 index 0000000..0935d73 Binary files /dev/null and b/logos/crypto/MAP.png differ diff --git a/logos/crypto/MBL.png b/logos/crypto/MBL.png new file mode 100644 index 0000000..78a299c Binary files /dev/null and b/logos/crypto/MBL.png differ diff --git a/logos/crypto/MDT.png b/logos/crypto/MDT.png new file mode 100644 index 0000000..3f3fbb6 Binary files /dev/null and b/logos/crypto/MDT.png differ diff --git a/logos/crypto/MEX.png b/logos/crypto/MEX.png new file mode 100644 index 0000000..1c0e61e Binary files /dev/null and b/logos/crypto/MEX.png differ diff --git a/logos/crypto/MFT.png b/logos/crypto/MFT.png new file mode 100644 index 0000000..cc24b9f Binary files /dev/null and b/logos/crypto/MFT.png differ diff --git a/logos/crypto/MIMATIC.png b/logos/crypto/MIMATIC.png new file mode 100644 index 0000000..7580b0a Binary files /dev/null and b/logos/crypto/MIMATIC.png differ diff --git a/logos/crypto/MITH.png b/logos/crypto/MITH.png new file mode 100644 index 0000000..0855a3e Binary files /dev/null and b/logos/crypto/MITH.png differ diff --git a/logos/crypto/MMF.png b/logos/crypto/MMF.png new file mode 100644 index 0000000..cf2df33 Binary files /dev/null and b/logos/crypto/MMF.png differ diff --git a/logos/crypto/MNGO.png b/logos/crypto/MNGO.png new file mode 100644 index 0000000..be738f8 Binary files /dev/null and b/logos/crypto/MNGO.png differ diff --git a/logos/crypto/MOVR.png b/logos/crypto/MOVR.png new file mode 100644 index 0000000..e8a1f4e Binary files /dev/null and b/logos/crypto/MOVR.png differ diff --git a/logos/crypto/MPL.png b/logos/crypto/MPL.png new file mode 100644 index 0000000..332f046 Binary files /dev/null and b/logos/crypto/MPL.png differ diff --git a/logos/crypto/MTRG.png b/logos/crypto/MTRG.png new file mode 100644 index 0000000..f199315 Binary files /dev/null and b/logos/crypto/MTRG.png differ diff --git a/logos/crypto/MULTI.png b/logos/crypto/MULTI.png new file mode 100644 index 0000000..3bdc3ca Binary files /dev/null and b/logos/crypto/MULTI.png differ diff --git a/logos/crypto/MV.png b/logos/crypto/MV.png new file mode 100644 index 0000000..eb49f3a Binary files /dev/null and b/logos/crypto/MV.png differ diff --git a/logos/crypto/MVL.png b/logos/crypto/MVL.png new file mode 100644 index 0000000..a05197c Binary files /dev/null and b/logos/crypto/MVL.png differ diff --git a/logos/crypto/NCT.png b/logos/crypto/NCT.png new file mode 100644 index 0000000..cb17da6 Binary files /dev/null and b/logos/crypto/NCT.png differ diff --git a/logos/crypto/NIM.png b/logos/crypto/NIM.png new file mode 100644 index 0000000..248cf78 Binary files /dev/null and b/logos/crypto/NIM.png differ diff --git a/logos/crypto/NMX.png b/logos/crypto/NMX.png new file mode 100644 index 0000000..12638ae Binary files /dev/null and b/logos/crypto/NMX.png differ diff --git a/logos/crypto/NPXS.png b/logos/crypto/NPXS.png new file mode 100644 index 0000000..dddde5c Binary files /dev/null and b/logos/crypto/NPXS.png differ diff --git a/logos/crypto/NRG.png b/logos/crypto/NRG.png new file mode 100644 index 0000000..dbb015b Binary files /dev/null and b/logos/crypto/NRG.png differ diff --git a/logos/crypto/NRV.png b/logos/crypto/NRV.png new file mode 100644 index 0000000..96825f9 Binary files /dev/null and b/logos/crypto/NRV.png differ diff --git a/logos/crypto/NSBT.png b/logos/crypto/NSBT.png new file mode 100644 index 0000000..6e75004 Binary files /dev/null and b/logos/crypto/NSBT.png differ diff --git a/logos/crypto/NTVRK.png b/logos/crypto/NTVRK.png new file mode 100644 index 0000000..a23bc67 Binary files /dev/null and b/logos/crypto/NTVRK.png differ diff --git a/logos/crypto/NULS.png b/logos/crypto/NULS.png new file mode 100644 index 0000000..6832695 Binary files /dev/null and b/logos/crypto/NULS.png differ diff --git a/logos/crypto/NXS.png b/logos/crypto/NXS.png new file mode 100644 index 0000000..8af0ae9 Binary files /dev/null and b/logos/crypto/NXS.png differ diff --git a/logos/crypto/NYM.png b/logos/crypto/NYM.png new file mode 100644 index 0000000..cac79d2 Binary files /dev/null and b/logos/crypto/NYM.png differ diff --git a/logos/crypto/OKT.png b/logos/crypto/OKT.png new file mode 100644 index 0000000..ce157fd Binary files /dev/null and b/logos/crypto/OKT.png differ diff --git a/logos/crypto/OM.png b/logos/crypto/OM.png new file mode 100644 index 0000000..e1ff667 Binary files /dev/null and b/logos/crypto/OM.png differ diff --git a/logos/crypto/ONIT.png b/logos/crypto/ONIT.png new file mode 100644 index 0000000..62abc02 Binary files /dev/null and b/logos/crypto/ONIT.png differ diff --git a/logos/crypto/OVR.png b/logos/crypto/OVR.png new file mode 100644 index 0000000..a870702 Binary files /dev/null and b/logos/crypto/OVR.png differ diff --git a/logos/crypto/PCX.png b/logos/crypto/PCX.png new file mode 100644 index 0000000..22f792c Binary files /dev/null and b/logos/crypto/PCX.png differ diff --git a/logos/crypto/PEAK.png b/logos/crypto/PEAK.png new file mode 100644 index 0000000..4c6e4a0 Binary files /dev/null and b/logos/crypto/PEAK.png differ diff --git a/logos/crypto/PEOPLE.png b/logos/crypto/PEOPLE.png new file mode 100644 index 0000000..c8f5923 Binary files /dev/null and b/logos/crypto/PEOPLE.png differ diff --git a/logos/crypto/PHA.png b/logos/crypto/PHA.png new file mode 100644 index 0000000..0fe8d4e Binary files /dev/null and b/logos/crypto/PHA.png differ diff --git a/logos/crypto/PHB.png b/logos/crypto/PHB.png new file mode 100644 index 0000000..06b91f0 Binary files /dev/null and b/logos/crypto/PHB.png differ diff --git a/logos/crypto/PHONON.png b/logos/crypto/PHONON.png new file mode 100644 index 0000000..0152cce Binary files /dev/null and b/logos/crypto/PHONON.png differ diff --git a/logos/crypto/PINKSALE.png b/logos/crypto/PINKSALE.png new file mode 100644 index 0000000..025321b Binary files /dev/null and b/logos/crypto/PINKSALE.png differ diff --git a/logos/crypto/PLT.png b/logos/crypto/PLT.png new file mode 100644 index 0000000..e269513 Binary files /dev/null and b/logos/crypto/PLT.png differ diff --git a/logos/crypto/PLTC.png b/logos/crypto/PLTC.png new file mode 100644 index 0000000..e2673a9 Binary files /dev/null and b/logos/crypto/PLTC.png differ diff --git a/logos/crypto/PNK.png b/logos/crypto/PNK.png new file mode 100644 index 0000000..dc61b28 Binary files /dev/null and b/logos/crypto/PNK.png differ diff --git a/logos/crypto/PNT.png b/logos/crypto/PNT.png new file mode 100644 index 0000000..b2608d2 Binary files /dev/null and b/logos/crypto/PNT.png differ diff --git a/logos/crypto/PNY.png b/logos/crypto/PNY.png new file mode 100644 index 0000000..6fc1753 Binary files /dev/null and b/logos/crypto/PNY.png differ diff --git a/logos/crypto/POKT.png b/logos/crypto/POKT.png new file mode 100644 index 0000000..15b25df Binary files /dev/null and b/logos/crypto/POKT.png differ diff --git a/logos/crypto/POND.png b/logos/crypto/POND.png new file mode 100644 index 0000000..d43d3db Binary files /dev/null and b/logos/crypto/POND.png differ diff --git a/logos/crypto/POP.png b/logos/crypto/POP.png new file mode 100644 index 0000000..8a95402 Binary files /dev/null and b/logos/crypto/POP.png differ diff --git a/logos/crypto/PRE.png b/logos/crypto/PRE.png new file mode 100644 index 0000000..055c230 Binary files /dev/null and b/logos/crypto/PRE.png differ diff --git a/logos/crypto/PRO.png b/logos/crypto/PRO.png new file mode 100644 index 0000000..5aeff08 Binary files /dev/null and b/logos/crypto/PRO.png differ diff --git a/logos/crypto/PRQ.png b/logos/crypto/PRQ.png new file mode 100644 index 0000000..f8d3758 Binary files /dev/null and b/logos/crypto/PRQ.png differ diff --git a/logos/crypto/PSG.png b/logos/crypto/PSG.png new file mode 100644 index 0000000..b4c2311 Binary files /dev/null and b/logos/crypto/PSG.png differ diff --git a/logos/crypto/PSTAKE.png b/logos/crypto/PSTAKE.png new file mode 100644 index 0000000..453606e Binary files /dev/null and b/logos/crypto/PSTAKE.png differ diff --git a/logos/crypto/QASH.png b/logos/crypto/QASH.png new file mode 100644 index 0000000..b9cc520 Binary files /dev/null and b/logos/crypto/QASH.png differ diff --git a/logos/crypto/QOM.png b/logos/crypto/QOM.png new file mode 100644 index 0000000..fa1b2e7 Binary files /dev/null and b/logos/crypto/QOM.png differ diff --git a/logos/crypto/QSP.png b/logos/crypto/QSP.png new file mode 100644 index 0000000..a2ee48a Binary files /dev/null and b/logos/crypto/QSP.png differ diff --git a/logos/crypto/RACA.png b/logos/crypto/RACA.png new file mode 100644 index 0000000..3966993 Binary files /dev/null and b/logos/crypto/RACA.png differ diff --git a/logos/crypto/RAIL.png b/logos/crypto/RAIL.png new file mode 100644 index 0000000..b4592af Binary files /dev/null and b/logos/crypto/RAIL.png differ diff --git a/logos/crypto/RAMP.png b/logos/crypto/RAMP.png new file mode 100644 index 0000000..224fec3 Binary files /dev/null and b/logos/crypto/RAMP.png differ diff --git a/logos/crypto/RBN.png b/logos/crypto/RBN.png new file mode 100644 index 0000000..076da34 Binary files /dev/null and b/logos/crypto/RBN.png differ diff --git a/logos/crypto/RCH.png b/logos/crypto/RCH.png new file mode 100644 index 0000000..2434223 Binary files /dev/null and b/logos/crypto/RCH.png differ diff --git a/logos/crypto/RDPX.png b/logos/crypto/RDPX.png new file mode 100644 index 0000000..de8033b Binary files /dev/null and b/logos/crypto/RDPX.png differ diff --git a/logos/crypto/REI.png b/logos/crypto/REI.png new file mode 100644 index 0000000..459d8c1 Binary files /dev/null and b/logos/crypto/REI.png differ diff --git a/logos/crypto/REV.png b/logos/crypto/REV.png new file mode 100644 index 0000000..f81ad9d Binary files /dev/null and b/logos/crypto/REV.png differ diff --git a/logos/crypto/RFR.png b/logos/crypto/RFR.png new file mode 100644 index 0000000..2214c47 Binary files /dev/null and b/logos/crypto/RFR.png differ diff --git a/logos/crypto/RIDE.png b/logos/crypto/RIDE.png new file mode 100644 index 0000000..398a950 Binary files /dev/null and b/logos/crypto/RIDE.png differ diff --git a/logos/crypto/RIF.png b/logos/crypto/RIF.png new file mode 100644 index 0000000..df4eb5f Binary files /dev/null and b/logos/crypto/RIF.png differ diff --git a/logos/crypto/RISE.png b/logos/crypto/RISE.png new file mode 100644 index 0000000..c544144 Binary files /dev/null and b/logos/crypto/RISE.png differ diff --git a/logos/crypto/RLC.png b/logos/crypto/RLC.png new file mode 100644 index 0000000..eb8b41d Binary files /dev/null and b/logos/crypto/RLC.png differ diff --git a/logos/crypto/RLY.png b/logos/crypto/RLY.png index 7c6a527..2c2f7a8 100644 Binary files a/logos/crypto/RLY.png and b/logos/crypto/RLY.png differ diff --git a/logos/crypto/ROOK.png b/logos/crypto/ROOK.png index 46d7b36..894ecfb 100644 Binary files a/logos/crypto/ROOK.png and b/logos/crypto/ROOK.png differ diff --git a/logos/crypto/ROUTE.png b/logos/crypto/ROUTE.png new file mode 100644 index 0000000..7aacfdd Binary files /dev/null and b/logos/crypto/ROUTE.png differ diff --git a/logos/crypto/RSV.png b/logos/crypto/RSV.png new file mode 100644 index 0000000..5a07125 Binary files /dev/null and b/logos/crypto/RSV.png differ diff --git a/logos/crypto/RVLT.png b/logos/crypto/RVLT.png new file mode 100644 index 0000000..e7cfdad Binary files /dev/null and b/logos/crypto/RVLT.png differ diff --git a/logos/crypto/SAI.png b/logos/crypto/SAI.png new file mode 100644 index 0000000..03c9c8c Binary files /dev/null and b/logos/crypto/SAI.png differ diff --git a/logos/crypto/SAITO.png b/logos/crypto/SAITO.png new file mode 100644 index 0000000..36e913f Binary files /dev/null and b/logos/crypto/SAITO.png differ diff --git a/logos/crypto/SAVAX.png b/logos/crypto/SAVAX.png new file mode 100644 index 0000000..9748cc3 Binary files /dev/null and b/logos/crypto/SAVAX.png differ diff --git a/logos/crypto/SBD.png b/logos/crypto/SBD.png new file mode 100644 index 0000000..4e2cc1d Binary files /dev/null and b/logos/crypto/SBD.png differ diff --git a/logos/crypto/SCP.png b/logos/crypto/SCP.png new file mode 100644 index 0000000..6ad8d6d Binary files /dev/null and b/logos/crypto/SCP.png differ diff --git a/logos/crypto/SDAO.png b/logos/crypto/SDAO.png new file mode 100644 index 0000000..4162c4c Binary files /dev/null and b/logos/crypto/SDAO.png differ diff --git a/logos/crypto/SERO.png b/logos/crypto/SERO.png new file mode 100644 index 0000000..ad3c960 Binary files /dev/null and b/logos/crypto/SERO.png differ diff --git a/logos/crypto/SETH2.png b/logos/crypto/SETH2.png new file mode 100644 index 0000000..1db2234 Binary files /dev/null and b/logos/crypto/SETH2.png differ diff --git a/logos/crypto/SGB.png b/logos/crypto/SGB.png new file mode 100644 index 0000000..89a18df Binary files /dev/null and b/logos/crypto/SGB.png differ diff --git a/logos/crypto/SHDW.png b/logos/crypto/SHDW.png new file mode 100644 index 0000000..2015dd9 Binary files /dev/null and b/logos/crypto/SHDW.png differ diff --git a/logos/crypto/SHR.png b/logos/crypto/SHR.png new file mode 100644 index 0000000..2e291d7 Binary files /dev/null and b/logos/crypto/SHR.png differ diff --git a/logos/crypto/SIPHER.png b/logos/crypto/SIPHER.png new file mode 100644 index 0000000..d82e708 Binary files /dev/null and b/logos/crypto/SIPHER.png differ diff --git a/logos/crypto/SIX.png b/logos/crypto/SIX.png new file mode 100644 index 0000000..7cf5c34 Binary files /dev/null and b/logos/crypto/SIX.png differ diff --git a/logos/crypto/SNL.png b/logos/crypto/SNL.png new file mode 100644 index 0000000..cdff610 Binary files /dev/null and b/logos/crypto/SNL.png differ diff --git a/logos/crypto/SNOW.png b/logos/crypto/SNOW.png new file mode 100644 index 0000000..2170c31 Binary files /dev/null and b/logos/crypto/SNOW.png differ diff --git a/logos/crypto/SOFI.png b/logos/crypto/SOFI.png new file mode 100644 index 0000000..1f079a2 Binary files /dev/null and b/logos/crypto/SOFI.png differ diff --git a/logos/crypto/SOLVE.png b/logos/crypto/SOLVE.png new file mode 100644 index 0000000..64b6cf7 Binary files /dev/null and b/logos/crypto/SOLVE.png differ diff --git a/logos/crypto/SPRT.png b/logos/crypto/SPRT.png new file mode 100644 index 0000000..55e4521 Binary files /dev/null and b/logos/crypto/SPRT.png differ diff --git a/logos/crypto/SPS.png b/logos/crypto/SPS.png new file mode 100644 index 0000000..dc193f3 Binary files /dev/null and b/logos/crypto/SPS.png differ diff --git a/logos/crypto/SSV.png b/logos/crypto/SSV.png new file mode 100644 index 0000000..f426e41 Binary files /dev/null and b/logos/crypto/SSV.png differ diff --git a/logos/crypto/STARS.png b/logos/crypto/STARS.png new file mode 100644 index 0000000..fb73697 Binary files /dev/null and b/logos/crypto/STARS.png differ diff --git a/logos/crypto/SURE.png b/logos/crypto/SURE.png new file mode 100644 index 0000000..391cfbe Binary files /dev/null and b/logos/crypto/SURE.png differ diff --git a/logos/crypto/SUSD.png b/logos/crypto/SUSD.png new file mode 100644 index 0000000..eae8383 Binary files /dev/null and b/logos/crypto/SUSD.png differ diff --git a/logos/crypto/SWFTC.png b/logos/crypto/SWFTC.png new file mode 100644 index 0000000..685b520 Binary files /dev/null and b/logos/crypto/SWFTC.png differ diff --git a/logos/crypto/SWP.png b/logos/crypto/SWP.png new file mode 100644 index 0000000..1eeffea Binary files /dev/null and b/logos/crypto/SWP.png differ diff --git a/logos/crypto/SYLO.png b/logos/crypto/SYLO.png new file mode 100644 index 0000000..496ecd7 Binary files /dev/null and b/logos/crypto/SYLO.png differ diff --git a/logos/crypto/TEMPLE.png b/logos/crypto/TEMPLE.png new file mode 100644 index 0000000..4576d73 Binary files /dev/null and b/logos/crypto/TEMPLE.png differ diff --git a/logos/crypto/THOR.png b/logos/crypto/THOR.png new file mode 100644 index 0000000..4ebd31e Binary files /dev/null and b/logos/crypto/THOR.png differ diff --git a/logos/crypto/TIFI.png b/logos/crypto/TIFI.png new file mode 100644 index 0000000..1ce2bac Binary files /dev/null and b/logos/crypto/TIFI.png differ diff --git a/logos/crypto/TIME.png b/logos/crypto/TIME.png new file mode 100644 index 0000000..bc9e978 Binary files /dev/null and b/logos/crypto/TIME.png differ diff --git a/logos/crypto/TNB.png b/logos/crypto/TNB.png new file mode 100644 index 0000000..a30de28 Binary files /dev/null and b/logos/crypto/TNB.png differ diff --git a/logos/crypto/TOMB.png b/logos/crypto/TOMB.png new file mode 100644 index 0000000..e244e02 Binary files /dev/null and b/logos/crypto/TOMB.png differ diff --git a/logos/crypto/TONE.png b/logos/crypto/TONE.png new file mode 100644 index 0000000..75d6e63 Binary files /dev/null and b/logos/crypto/TONE.png differ diff --git a/logos/crypto/TONIC.png b/logos/crypto/TONIC.png new file mode 100644 index 0000000..3649d03 Binary files /dev/null and b/logos/crypto/TONIC.png differ diff --git a/logos/crypto/TORN.png b/logos/crypto/TORN.png new file mode 100644 index 0000000..be0a2f4 Binary files /dev/null and b/logos/crypto/TORN.png differ diff --git a/logos/crypto/TRB.png b/logos/crypto/TRB.png new file mode 100644 index 0000000..eb10855 Binary files /dev/null and b/logos/crypto/TRB.png differ diff --git a/logos/crypto/TRYB.png b/logos/crypto/TRYB.png new file mode 100644 index 0000000..72321e4 Binary files /dev/null and b/logos/crypto/TRYB.png differ diff --git a/logos/crypto/TUSD.png b/logos/crypto/TUSD.png new file mode 100644 index 0000000..ebba5ea Binary files /dev/null and b/logos/crypto/TUSD.png differ diff --git a/logos/crypto/TWT.png b/logos/crypto/TWT.png new file mode 100644 index 0000000..420c5f8 Binary files /dev/null and b/logos/crypto/TWT.png differ diff --git a/logos/crypto/UBSN.png b/logos/crypto/UBSN.png new file mode 100644 index 0000000..5c3f5ba Binary files /dev/null and b/logos/crypto/UBSN.png differ diff --git a/logos/crypto/ULT.png b/logos/crypto/ULT.png new file mode 100644 index 0000000..52de496 Binary files /dev/null and b/logos/crypto/ULT.png differ diff --git a/logos/crypto/UMEE.png b/logos/crypto/UMEE.png new file mode 100644 index 0000000..737f288 Binary files /dev/null and b/logos/crypto/UMEE.png differ diff --git a/logos/crypto/UPP.png b/logos/crypto/UPP.png new file mode 100644 index 0000000..779d9bc Binary files /dev/null and b/logos/crypto/UPP.png differ diff --git a/logos/crypto/USDC.png b/logos/crypto/USDC.png new file mode 100644 index 0000000..4ddd61c Binary files /dev/null and b/logos/crypto/USDC.png differ diff --git a/logos/crypto/USDD.png b/logos/crypto/USDD.png new file mode 100644 index 0000000..2f43dec Binary files /dev/null and b/logos/crypto/USDD.png differ diff --git a/logos/crypto/USDK.png b/logos/crypto/USDK.png new file mode 100644 index 0000000..92ddc79 Binary files /dev/null and b/logos/crypto/USDK.png differ diff --git a/logos/crypto/USDN.png b/logos/crypto/USDN.png new file mode 100644 index 0000000..b3d7d08 Binary files /dev/null and b/logos/crypto/USDN.png differ diff --git a/logos/crypto/USDP.png b/logos/crypto/USDP.png new file mode 100644 index 0000000..4b64b77 Binary files /dev/null and b/logos/crypto/USDP.png differ diff --git a/logos/crypto/USDT.png b/logos/crypto/USDT.png new file mode 100644 index 0000000..8f36e20 Binary files /dev/null and b/logos/crypto/USDT.png differ diff --git a/logos/crypto/USTC.png b/logos/crypto/USTC.png new file mode 100644 index 0000000..f3b18fc Binary files /dev/null and b/logos/crypto/USTC.png differ diff --git a/logos/crypto/USV.png b/logos/crypto/USV.png new file mode 100644 index 0000000..524c969 Binary files /dev/null and b/logos/crypto/USV.png differ diff --git a/logos/crypto/VAI.png b/logos/crypto/VAI.png new file mode 100644 index 0000000..6703dbb Binary files /dev/null and b/logos/crypto/VAI.png differ diff --git a/logos/crypto/VEGA.png b/logos/crypto/VEGA.png new file mode 100644 index 0000000..4ef7fd9 Binary files /dev/null and b/logos/crypto/VEGA.png differ diff --git a/logos/crypto/VELO.png b/logos/crypto/VELO.png new file mode 100644 index 0000000..88d8437 Binary files /dev/null and b/logos/crypto/VELO.png differ diff --git a/logos/crypto/VERI.png b/logos/crypto/VERI.png new file mode 100644 index 0000000..00e4ed1 Binary files /dev/null and b/logos/crypto/VERI.png differ diff --git a/logos/crypto/VGX.png b/logos/crypto/VGX.png index 9c0eaf3..16b323a 100644 Binary files a/logos/crypto/VGX.png and b/logos/crypto/VGX.png differ diff --git a/logos/crypto/VIRES.png b/logos/crypto/VIRES.png new file mode 100644 index 0000000..578f0d4 Binary files /dev/null and b/logos/crypto/VIRES.png differ diff --git a/logos/crypto/VITA.png b/logos/crypto/VITA.png new file mode 100644 index 0000000..510bab8 Binary files /dev/null and b/logos/crypto/VITA.png differ diff --git a/logos/crypto/VITE.png b/logos/crypto/VITE.png new file mode 100644 index 0000000..7b434e3 Binary files /dev/null and b/logos/crypto/VITE.png differ diff --git a/logos/crypto/VRSC.png b/logos/crypto/VRSC.png new file mode 100644 index 0000000..781627e Binary files /dev/null and b/logos/crypto/VRSC.png differ diff --git a/logos/crypto/VTHO.png b/logos/crypto/VTHO.png index 5169699..1133dbf 100644 Binary files a/logos/crypto/VTHO.png and b/logos/crypto/VTHO.png differ diff --git a/logos/crypto/WING.png b/logos/crypto/WING.png new file mode 100644 index 0000000..c9bdfb5 Binary files /dev/null and b/logos/crypto/WING.png differ diff --git a/logos/crypto/WMT.png b/logos/crypto/WMT.png new file mode 100644 index 0000000..5a210a4 Binary files /dev/null and b/logos/crypto/WMT.png differ diff --git a/logos/crypto/WOZX.png b/logos/crypto/WOZX.png new file mode 100644 index 0000000..13614b5 Binary files /dev/null and b/logos/crypto/WOZX.png differ diff --git a/logos/crypto/WRX.png b/logos/crypto/WRX.png new file mode 100644 index 0000000..459b569 Binary files /dev/null and b/logos/crypto/WRX.png differ diff --git a/logos/crypto/WWY.png b/logos/crypto/WWY.png new file mode 100644 index 0000000..4b5ebc0 Binary files /dev/null and b/logos/crypto/WWY.png differ diff --git a/logos/crypto/WXT.png b/logos/crypto/WXT.png new file mode 100644 index 0000000..c2227de Binary files /dev/null and b/logos/crypto/WXT.png differ diff --git a/logos/crypto/X2Y2.png b/logos/crypto/X2Y2.png new file mode 100644 index 0000000..9da079c Binary files /dev/null and b/logos/crypto/X2Y2.png differ diff --git a/logos/crypto/XAUT.png b/logos/crypto/XAUT.png new file mode 100644 index 0000000..5143e30 Binary files /dev/null and b/logos/crypto/XAUT.png differ diff --git a/logos/crypto/XCAD.png b/logos/crypto/XCAD.png new file mode 100644 index 0000000..1a0b491 Binary files /dev/null and b/logos/crypto/XCAD.png differ diff --git a/logos/crypto/XCN.png b/logos/crypto/XCN.png new file mode 100644 index 0000000..c176a67 Binary files /dev/null and b/logos/crypto/XCN.png differ diff --git a/logos/crypto/XDG.png b/logos/crypto/XDG.png new file mode 100644 index 0000000..4a5e767 Binary files /dev/null and b/logos/crypto/XDG.png differ diff --git a/logos/crypto/XIDO.png b/logos/crypto/XIDO.png new file mode 100644 index 0000000..ea29f17 Binary files /dev/null and b/logos/crypto/XIDO.png differ diff --git a/logos/crypto/XMON.png b/logos/crypto/XMON.png new file mode 100644 index 0000000..b1365be Binary files /dev/null and b/logos/crypto/XMON.png differ diff --git a/logos/crypto/XSGD.png b/logos/crypto/XSGD.png new file mode 100644 index 0000000..71f6cde Binary files /dev/null and b/logos/crypto/XSGD.png differ diff --git a/logos/crypto/YOSHI.png b/logos/crypto/YOSHI.png new file mode 100644 index 0000000..f9c407d Binary files /dev/null and b/logos/crypto/YOSHI.png differ diff --git a/logos/crypto/Z7.png b/logos/crypto/Z7.png new file mode 100644 index 0000000..f486524 Binary files /dev/null and b/logos/crypto/Z7.png differ diff --git a/logos/crypto/ZIG.png b/logos/crypto/ZIG.png new file mode 100644 index 0000000..e8b9705 Binary files /dev/null and b/logos/crypto/ZIG.png differ diff --git a/logos/crypto/ZPAY.png b/logos/crypto/ZPAY.png new file mode 100644 index 0000000..afc669e Binary files /dev/null and b/logos/crypto/ZPAY.png differ diff --git a/logos/crypto/ZZ.png b/logos/crypto/ZZ.png new file mode 100644 index 0000000..4063757 Binary files /dev/null and b/logos/crypto/ZZ.png differ diff --git a/logos/indices/000001.SS.png b/logos/indices/000001.SS.png new file mode 100644 index 0000000..6ae59c6 Binary files /dev/null and b/logos/indices/000001.SS.png differ diff --git a/logos/indices/399001.SZ.png b/logos/indices/399001.SZ.png new file mode 100644 index 0000000..6ae59c6 Binary files /dev/null and b/logos/indices/399001.SZ.png differ diff --git a/logos/indices/PSEI.PS.png b/logos/indices/PSEI.PS.png new file mode 100644 index 0000000..4f5f8e3 Binary files /dev/null and b/logos/indices/PSEI.PS.png differ diff --git a/logos/indices/PSI20.LS.png b/logos/indices/PSI20.LS.png new file mode 100644 index 0000000..80b9b39 Binary files /dev/null and b/logos/indices/PSI20.LS.png differ diff --git a/logos/indices/XU100.IS.png b/logos/indices/XU100.IS.png new file mode 100644 index 0000000..587e1b5 Binary files /dev/null and b/logos/indices/XU100.IS.png differ diff --git a/logos/indices/^AEX.png b/logos/indices/^AEX.png new file mode 100644 index 0000000..6fa2c82 Binary files /dev/null and b/logos/indices/^AEX.png differ diff --git a/logos/indices/^ATX.png b/logos/indices/^ATX.png new file mode 100644 index 0000000..4601ee6 Binary files /dev/null and b/logos/indices/^ATX.png differ diff --git a/logos/indices/^AXJO.png b/logos/indices/^AXJO.png new file mode 100644 index 0000000..d844540 Binary files /dev/null and b/logos/indices/^AXJO.png differ diff --git a/logos/indices/^BFX.png b/logos/indices/^BFX.png new file mode 100644 index 0000000..28abbe2 Binary files /dev/null and b/logos/indices/^BFX.png differ diff --git a/logos/indices/^BSESN.png b/logos/indices/^BSESN.png new file mode 100644 index 0000000..aec404c Binary files /dev/null and b/logos/indices/^BSESN.png differ diff --git a/logos/indices/^BVSP.png b/logos/indices/^BVSP.png new file mode 100644 index 0000000..a20d8f9 Binary files /dev/null and b/logos/indices/^BVSP.png differ diff --git a/logos/indices/^DJI.png b/logos/indices/^DJI.png new file mode 100644 index 0000000..f051711 Binary files /dev/null and b/logos/indices/^DJI.png differ diff --git a/logos/indices/^FCHI.png b/logos/indices/^FCHI.png new file mode 100644 index 0000000..470fad7 Binary files /dev/null and b/logos/indices/^FCHI.png differ diff --git a/logos/indices/^FTSE.png b/logos/indices/^FTSE.png new file mode 100644 index 0000000..b2034d2 Binary files /dev/null and b/logos/indices/^FTSE.png differ diff --git a/logos/indices/^GDAXI.png b/logos/indices/^GDAXI.png new file mode 100644 index 0000000..6de38d0 Binary files /dev/null and b/logos/indices/^GDAXI.png differ diff --git a/logos/indices/^GSPC.png b/logos/indices/^GSPC.png new file mode 100644 index 0000000..f051711 Binary files /dev/null and b/logos/indices/^GSPC.png differ diff --git a/logos/indices/^GSPTSE.png b/logos/indices/^GSPTSE.png new file mode 100644 index 0000000..91010f4 Binary files /dev/null and b/logos/indices/^GSPTSE.png differ diff --git a/logos/indices/^HSI.png b/logos/indices/^HSI.png new file mode 100644 index 0000000..a283f1a Binary files /dev/null and b/logos/indices/^HSI.png differ diff --git a/logos/indices/^IBEX.png b/logos/indices/^IBEX.png new file mode 100644 index 0000000..2d133f3 Binary files /dev/null and b/logos/indices/^IBEX.png differ diff --git a/logos/indices/^JKSE.png b/logos/indices/^JKSE.png new file mode 100644 index 0000000..3d2ebd7 Binary files /dev/null and b/logos/indices/^JKSE.png differ diff --git a/logos/indices/^KS11.png b/logos/indices/^KS11.png new file mode 100644 index 0000000..ac59219 Binary files /dev/null and b/logos/indices/^KS11.png differ diff --git a/logos/indices/^MXX.png b/logos/indices/^MXX.png new file mode 100644 index 0000000..9903222 Binary files /dev/null and b/logos/indices/^MXX.png differ diff --git a/logos/indices/^N100.png b/logos/indices/^N100.png new file mode 100644 index 0000000..dae9e98 Binary files /dev/null and b/logos/indices/^N100.png differ diff --git a/logos/indices/^N225.png b/logos/indices/^N225.png new file mode 100644 index 0000000..b037ade Binary files /dev/null and b/logos/indices/^N225.png differ diff --git a/logos/indices/^NDX.png b/logos/indices/^NDX.png new file mode 100644 index 0000000..f051711 Binary files /dev/null and b/logos/indices/^NDX.png differ diff --git a/logos/indices/^NSEI.png b/logos/indices/^NSEI.png new file mode 100644 index 0000000..aec404c Binary files /dev/null and b/logos/indices/^NSEI.png differ diff --git a/logos/indices/^NZ50.png b/logos/indices/^NZ50.png new file mode 100644 index 0000000..bf04ed3 Binary files /dev/null and b/logos/indices/^NZ50.png differ diff --git a/logos/indices/^OMX.png b/logos/indices/^OMX.png new file mode 100644 index 0000000..8459810 Binary files /dev/null and b/logos/indices/^OMX.png differ diff --git a/logos/indices/^OMXH25.png b/logos/indices/^OMXH25.png new file mode 100644 index 0000000..36df82b Binary files /dev/null and b/logos/indices/^OMXH25.png differ diff --git a/logos/indices/^RUT.png b/logos/indices/^RUT.png new file mode 100644 index 0000000..f051711 Binary files /dev/null and b/logos/indices/^RUT.png differ diff --git a/logos/indices/^SET.BK.png b/logos/indices/^SET.BK.png new file mode 100644 index 0000000..bb43f24 Binary files /dev/null and b/logos/indices/^SET.BK.png differ diff --git a/logos/indices/^SSMI.png b/logos/indices/^SSMI.png new file mode 100644 index 0000000..fff4724 Binary files /dev/null and b/logos/indices/^SSMI.png differ diff --git a/logos/indices/^STI.png b/logos/indices/^STI.png new file mode 100644 index 0000000..f8ca181 Binary files /dev/null and b/logos/indices/^STI.png differ diff --git a/logos/indices/^STOXX.png b/logos/indices/^STOXX.png new file mode 100644 index 0000000..dae9e98 Binary files /dev/null and b/logos/indices/^STOXX.png differ diff --git a/logos/indices/^STOXX50E.png b/logos/indices/^STOXX50E.png new file mode 100644 index 0000000..dae9e98 Binary files /dev/null and b/logos/indices/^STOXX50E.png differ diff --git a/logos/indices/^TWII.png b/logos/indices/^TWII.png new file mode 100644 index 0000000..d3e389f Binary files /dev/null and b/logos/indices/^TWII.png differ diff --git a/logos/indices/^VIX.png b/logos/indices/^VIX.png new file mode 100644 index 0000000..f051711 Binary files /dev/null and b/logos/indices/^VIX.png differ diff --git a/logos/sports/PREMIERLEAGUE/Bournemouth.png b/logos/sports/PREMIERLEAGUE/Bournemouth.png new file mode 100644 index 0000000..45ca389 Binary files /dev/null and b/logos/sports/PREMIERLEAGUE/Bournemouth.png differ diff --git a/logos/sports/PREMIERLEAGUE/Fulham.png b/logos/sports/PREMIERLEAGUE/Fulham.png new file mode 100644 index 0000000..9586c03 Binary files /dev/null and b/logos/sports/PREMIERLEAGUE/Fulham.png differ diff --git a/logos/sports/PREMIERLEAGUE/Nottingham Forest.png b/logos/sports/PREMIERLEAGUE/Nottingham Forest.png new file mode 100644 index 0000000..4d3f4e8 Binary files /dev/null and b/logos/sports/PREMIERLEAGUE/Nottingham Forest.png differ diff --git a/logos/stocks/AFRI.png b/logos/stocks/AFRI.png new file mode 100644 index 0000000..12b3e0a Binary files /dev/null and b/logos/stocks/AFRI.png differ diff --git a/logos/stocks/AIMD.png b/logos/stocks/AIMD.png new file mode 100644 index 0000000..fb153e0 Binary files /dev/null and b/logos/stocks/AIMD.png differ diff --git a/logos/stocks/AIRS.png b/logos/stocks/AIRS.png new file mode 100644 index 0000000..c6e6234 Binary files /dev/null and b/logos/stocks/AIRS.png differ diff --git a/logos/stocks/AKLI.png b/logos/stocks/AKLI.png new file mode 100644 index 0000000..859be57 Binary files /dev/null and b/logos/stocks/AKLI.png differ diff --git a/logos/stocks/ALB.png b/logos/stocks/ALB.png new file mode 100644 index 0000000..15110f6 Binary files /dev/null and b/logos/stocks/ALB.png differ diff --git a/logos/stocks/ALPX.png b/logos/stocks/ALPX.png new file mode 100644 index 0000000..7874531 Binary files /dev/null and b/logos/stocks/ALPX.png differ diff --git a/logos/stocks/AMX.png b/logos/stocks/AMX.png new file mode 100644 index 0000000..a01221b Binary files /dev/null and b/logos/stocks/AMX.png differ diff --git a/logos/stocks/APGN.png b/logos/stocks/APGN.png new file mode 100644 index 0000000..a005c5d Binary files /dev/null and b/logos/stocks/APGN.png differ diff --git a/logos/stocks/AUPH.png b/logos/stocks/AUPH.png new file mode 100644 index 0000000..9146b8f Binary files /dev/null and b/logos/stocks/AUPH.png differ diff --git a/logos/stocks/AZRE.png b/logos/stocks/AZRE.png new file mode 100644 index 0000000..c118c84 Binary files /dev/null and b/logos/stocks/AZRE.png differ diff --git a/logos/stocks/BDC.png b/logos/stocks/BDC.png new file mode 100644 index 0000000..695a1c9 Binary files /dev/null and b/logos/stocks/BDC.png differ diff --git a/logos/stocks/BFRI.png b/logos/stocks/BFRI.png new file mode 100644 index 0000000..5d91d31 Binary files /dev/null and b/logos/stocks/BFRI.png differ diff --git a/logos/stocks/BMR.png b/logos/stocks/BMR.png new file mode 100644 index 0000000..773f299 Binary files /dev/null and b/logos/stocks/BMR.png differ diff --git a/logos/stocks/BRSH.png b/logos/stocks/BRSH.png new file mode 100644 index 0000000..4688cda Binary files /dev/null and b/logos/stocks/BRSH.png differ diff --git a/logos/stocks/BTMD.png b/logos/stocks/BTMD.png new file mode 100644 index 0000000..4605e98 Binary files /dev/null and b/logos/stocks/BTMD.png differ diff --git a/logos/stocks/CFB.png b/logos/stocks/CFB.png new file mode 100644 index 0000000..b151091 Binary files /dev/null and b/logos/stocks/CFB.png differ diff --git a/logos/stocks/CFLT.png b/logos/stocks/CFLT.png new file mode 100644 index 0000000..38e22aa Binary files /dev/null and b/logos/stocks/CFLT.png differ diff --git a/logos/stocks/CLSK.png b/logos/stocks/CLSK.png new file mode 100644 index 0000000..7c2fbd0 Binary files /dev/null and b/logos/stocks/CLSK.png differ diff --git a/logos/stocks/CLVT.png b/logos/stocks/CLVT.png new file mode 100644 index 0000000..a56534f Binary files /dev/null and b/logos/stocks/CLVT.png differ diff --git a/logos/stocks/COOK.png b/logos/stocks/COOK.png new file mode 100644 index 0000000..f7f56cb Binary files /dev/null and b/logos/stocks/COOK.png differ diff --git a/logos/stocks/CTRA.png b/logos/stocks/CTRA.png new file mode 100644 index 0000000..6c9bd96 Binary files /dev/null and b/logos/stocks/CTRA.png differ diff --git a/logos/stocks/DINO.png b/logos/stocks/DINO.png new file mode 100644 index 0000000..1fefc31 Binary files /dev/null and b/logos/stocks/DINO.png differ diff --git a/logos/stocks/DPM.png b/logos/stocks/DPM.png new file mode 100644 index 0000000..70c5d0b Binary files /dev/null and b/logos/stocks/DPM.png differ diff --git a/logos/stocks/DRIO.png b/logos/stocks/DRIO.png new file mode 100644 index 0000000..b66714d Binary files /dev/null and b/logos/stocks/DRIO.png differ diff --git a/logos/stocks/EFSH.png b/logos/stocks/EFSH.png new file mode 100644 index 0000000..f30129f Binary files /dev/null and b/logos/stocks/EFSH.png differ diff --git a/logos/stocks/FAZE.png b/logos/stocks/FAZE.png new file mode 100644 index 0000000..fba823f Binary files /dev/null and b/logos/stocks/FAZE.png differ diff --git a/logos/stocks/FOXO.png b/logos/stocks/FOXO.png new file mode 100644 index 0000000..b40c5e7 Binary files /dev/null and b/logos/stocks/FOXO.png differ diff --git a/logos/stocks/FRZA.png b/logos/stocks/FRZA.png new file mode 100644 index 0000000..632a7a5 Binary files /dev/null and b/logos/stocks/FRZA.png differ diff --git a/logos/stocks/GBTG.png b/logos/stocks/GBTG.png new file mode 100644 index 0000000..5c0c7a6 Binary files /dev/null and b/logos/stocks/GBTG.png differ diff --git a/logos/stocks/GENI.png b/logos/stocks/GENI.png new file mode 100644 index 0000000..7f0bc0d Binary files /dev/null and b/logos/stocks/GENI.png differ diff --git a/logos/stocks/GETY.png b/logos/stocks/GETY.png new file mode 100644 index 0000000..6e89b0b Binary files /dev/null and b/logos/stocks/GETY.png differ diff --git a/logos/stocks/GPRE.png b/logos/stocks/GPRE.png new file mode 100644 index 0000000..20511f5 Binary files /dev/null and b/logos/stocks/GPRE.png differ diff --git a/logos/stocks/GRFX.png b/logos/stocks/GRFX.png new file mode 100644 index 0000000..0596140 Binary files /dev/null and b/logos/stocks/GRFX.png differ diff --git a/logos/stocks/GROV.png b/logos/stocks/GROV.png new file mode 100644 index 0000000..b766308 Binary files /dev/null and b/logos/stocks/GROV.png differ diff --git a/logos/stocks/GRRR.png b/logos/stocks/GRRR.png new file mode 100644 index 0000000..575f7de Binary files /dev/null and b/logos/stocks/GRRR.png differ diff --git a/logos/stocks/HAE.png b/logos/stocks/HAE.png new file mode 100644 index 0000000..a1db764 Binary files /dev/null and b/logos/stocks/HAE.png differ diff --git a/logos/stocks/HLN.png b/logos/stocks/HLN.png new file mode 100644 index 0000000..1c8ce85 Binary files /dev/null and b/logos/stocks/HLN.png differ diff --git a/logos/stocks/HOPE.png b/logos/stocks/HOPE.png new file mode 100644 index 0000000..55bdc65 Binary files /dev/null and b/logos/stocks/HOPE.png differ diff --git a/logos/stocks/HOUS.png b/logos/stocks/HOUS.png new file mode 100644 index 0000000..3c02e98 Binary files /dev/null and b/logos/stocks/HOUS.png differ diff --git a/logos/stocks/HOV.png b/logos/stocks/HOV.png new file mode 100644 index 0000000..a5d03e0 Binary files /dev/null and b/logos/stocks/HOV.png differ diff --git a/logos/stocks/ICVX.png b/logos/stocks/ICVX.png new file mode 100644 index 0000000..374dda4 Binary files /dev/null and b/logos/stocks/ICVX.png differ diff --git a/logos/stocks/IPI.png b/logos/stocks/IPI.png new file mode 100644 index 0000000..3715b58 Binary files /dev/null and b/logos/stocks/IPI.png differ diff --git a/logos/stocks/JRSH.png b/logos/stocks/JRSH.png new file mode 100644 index 0000000..159bc1e Binary files /dev/null and b/logos/stocks/JRSH.png differ diff --git a/logos/stocks/KAL.png b/logos/stocks/KAL.png new file mode 100644 index 0000000..bdeef72 Binary files /dev/null and b/logos/stocks/KAL.png differ diff --git a/logos/stocks/LIND.png b/logos/stocks/LIND.png new file mode 100644 index 0000000..976966f Binary files /dev/null and b/logos/stocks/LIND.png differ diff --git a/logos/stocks/LPTV.png b/logos/stocks/LPTV.png new file mode 100644 index 0000000..4873630 Binary files /dev/null and b/logos/stocks/LPTV.png differ diff --git a/logos/stocks/LTHM.png b/logos/stocks/LTHM.png new file mode 100644 index 0000000..2bcebd1 Binary files /dev/null and b/logos/stocks/LTHM.png differ diff --git a/logos/stocks/LUCY.png b/logos/stocks/LUCY.png new file mode 100644 index 0000000..ef17d23 Binary files /dev/null and b/logos/stocks/LUCY.png differ diff --git a/logos/stocks/LVWR.png b/logos/stocks/LVWR.png new file mode 100644 index 0000000..55c4e8b Binary files /dev/null and b/logos/stocks/LVWR.png differ diff --git a/logos/stocks/MFC.png b/logos/stocks/MFC.png new file mode 100644 index 0000000..4578c58 Binary files /dev/null and b/logos/stocks/MFC.png differ diff --git a/logos/stocks/MGAM.png b/logos/stocks/MGAM.png new file mode 100644 index 0000000..adf45b8 Binary files /dev/null and b/logos/stocks/MGAM.png differ diff --git a/logos/stocks/MNTS.png b/logos/stocks/MNTS.png index ffaaf79..e1da525 100644 Binary files a/logos/stocks/MNTS.png and b/logos/stocks/MNTS.png differ diff --git a/logos/stocks/MODG.png b/logos/stocks/MODG.png new file mode 100644 index 0000000..6e6010b Binary files /dev/null and b/logos/stocks/MODG.png differ diff --git a/logos/stocks/MOND.png b/logos/stocks/MOND.png new file mode 100644 index 0000000..410dc89 Binary files /dev/null and b/logos/stocks/MOND.png differ diff --git a/logos/stocks/MTBC.png b/logos/stocks/MTBC.png new file mode 100644 index 0000000..1854906 Binary files /dev/null and b/logos/stocks/MTBC.png differ diff --git a/logos/stocks/NCPL.png b/logos/stocks/NCPL.png new file mode 100644 index 0000000..d9eeada Binary files /dev/null and b/logos/stocks/NCPL.png differ diff --git a/logos/stocks/NEOV.png b/logos/stocks/NEOV.png new file mode 100644 index 0000000..3113a64 Binary files /dev/null and b/logos/stocks/NEOV.png differ diff --git a/logos/stocks/NOGN.png b/logos/stocks/NOGN.png new file mode 100644 index 0000000..54737f3 Binary files /dev/null and b/logos/stocks/NOGN.png differ diff --git a/logos/stocks/NOTE.png b/logos/stocks/NOTE.png new file mode 100644 index 0000000..3898149 Binary files /dev/null and b/logos/stocks/NOTE.png differ diff --git a/logos/stocks/NRGV.png b/logos/stocks/NRGV.png new file mode 100644 index 0000000..fdc13f6 Binary files /dev/null and b/logos/stocks/NRGV.png differ diff --git a/logos/stocks/OGS.png b/logos/stocks/OGS.png new file mode 100644 index 0000000..6160a34 Binary files /dev/null and b/logos/stocks/OGS.png differ diff --git a/logos/stocks/ONFO.png b/logos/stocks/ONFO.png new file mode 100644 index 0000000..9474db0 Binary files /dev/null and b/logos/stocks/ONFO.png differ diff --git a/logos/stocks/OPAL.png b/logos/stocks/OPAL.png new file mode 100644 index 0000000..3d0da6c Binary files /dev/null and b/logos/stocks/OPAL.png differ diff --git a/logos/stocks/OPY.png b/logos/stocks/OPY.png new file mode 100644 index 0000000..673f73f Binary files /dev/null and b/logos/stocks/OPY.png differ diff --git a/logos/stocks/PEPG.png b/logos/stocks/PEPG.png new file mode 100644 index 0000000..7f2c039 Binary files /dev/null and b/logos/stocks/PEPG.png differ diff --git a/logos/stocks/PERF.png b/logos/stocks/PERF.png new file mode 100644 index 0000000..14eaa3b Binary files /dev/null and b/logos/stocks/PERF.png differ diff --git a/logos/stocks/PET.png b/logos/stocks/PET.png new file mode 100644 index 0000000..b68289e Binary files /dev/null and b/logos/stocks/PET.png differ diff --git a/logos/stocks/PROC.png b/logos/stocks/PROC.png new file mode 100644 index 0000000..f6c40cc Binary files /dev/null and b/logos/stocks/PROC.png differ diff --git a/logos/stocks/QBTS.png b/logos/stocks/QBTS.png new file mode 100644 index 0000000..db2b0ff Binary files /dev/null and b/logos/stocks/QBTS.png differ diff --git a/logos/stocks/RE.png b/logos/stocks/RE.png new file mode 100644 index 0000000..7cfe551 Binary files /dev/null and b/logos/stocks/RE.png differ diff --git a/logos/stocks/REBN.png b/logos/stocks/REBN.png new file mode 100644 index 0000000..e9128ec Binary files /dev/null and b/logos/stocks/REBN.png differ diff --git a/logos/stocks/RELL.png b/logos/stocks/RELL.png new file mode 100644 index 0000000..def478c Binary files /dev/null and b/logos/stocks/RELL.png differ diff --git a/logos/stocks/REPX.png b/logos/stocks/REPX.png new file mode 100644 index 0000000..5f77445 Binary files /dev/null and b/logos/stocks/REPX.png differ diff --git a/logos/stocks/RNGR.png b/logos/stocks/RNGR.png new file mode 100644 index 0000000..804207c Binary files /dev/null and b/logos/stocks/RNGR.png differ diff --git a/logos/stocks/RUM.png b/logos/stocks/RUM.png new file mode 100644 index 0000000..7a6be0d Binary files /dev/null and b/logos/stocks/RUM.png differ diff --git a/logos/stocks/SAIA.png b/logos/stocks/SAIA.png new file mode 100644 index 0000000..13cc519 Binary files /dev/null and b/logos/stocks/SAIA.png differ diff --git a/logos/stocks/SBIG.png b/logos/stocks/SBIG.png new file mode 100644 index 0000000..eae45d4 Binary files /dev/null and b/logos/stocks/SBIG.png differ diff --git a/logos/stocks/SEM.png b/logos/stocks/SEM.png new file mode 100644 index 0000000..6ae3308 Binary files /dev/null and b/logos/stocks/SEM.png differ diff --git a/logos/stocks/SGH.png b/logos/stocks/SGH.png new file mode 100644 index 0000000..06940b5 Binary files /dev/null and b/logos/stocks/SGH.png differ diff --git a/logos/stocks/SHBI.png b/logos/stocks/SHBI.png new file mode 100644 index 0000000..cbe9704 Binary files /dev/null and b/logos/stocks/SHBI.png differ diff --git a/logos/stocks/SLNA.png b/logos/stocks/SLNA.png new file mode 100644 index 0000000..a0fe11d Binary files /dev/null and b/logos/stocks/SLNA.png differ diff --git a/logos/stocks/SNCE.png b/logos/stocks/SNCE.png index 61d30b3..745b210 100644 Binary files a/logos/stocks/SNCE.png and b/logos/stocks/SNCE.png differ diff --git a/logos/stocks/STBX.png b/logos/stocks/STBX.png new file mode 100644 index 0000000..7f7e194 Binary files /dev/null and b/logos/stocks/STBX.png differ diff --git a/logos/stocks/STIX.png b/logos/stocks/STIX.png new file mode 100644 index 0000000..95bffa2 Binary files /dev/null and b/logos/stocks/STIX.png differ diff --git a/logos/stocks/STVN.png b/logos/stocks/STVN.png new file mode 100644 index 0000000..9ac8c6f Binary files /dev/null and b/logos/stocks/STVN.png differ diff --git a/logos/stocks/SXC.png b/logos/stocks/SXC.png new file mode 100644 index 0000000..8b00631 Binary files /dev/null and b/logos/stocks/SXC.png differ diff --git a/logos/stocks/SYF.png b/logos/stocks/SYF.png new file mode 100644 index 0000000..2236309 Binary files /dev/null and b/logos/stocks/SYF.png differ diff --git a/logos/stocks/SYM.png b/logos/stocks/SYM.png new file mode 100644 index 0000000..4907d69 Binary files /dev/null and b/logos/stocks/SYM.png differ diff --git a/logos/stocks/TGL.png b/logos/stocks/TGL.png new file mode 100644 index 0000000..2fdbae7 Binary files /dev/null and b/logos/stocks/TGL.png differ diff --git a/logos/stocks/THCH.png b/logos/stocks/THCH.png new file mode 100644 index 0000000..6be4704 Binary files /dev/null and b/logos/stocks/THCH.png differ diff --git a/logos/stocks/VRAX.png b/logos/stocks/VRAX.png new file mode 100644 index 0000000..a2dcbe2 Binary files /dev/null and b/logos/stocks/VRAX.png differ diff --git a/logos/stocks/VTYX.png b/logos/stocks/VTYX.png new file mode 100644 index 0000000..84de659 Binary files /dev/null and b/logos/stocks/VTYX.png differ diff --git a/logos/stocks/WALD.png b/logos/stocks/WALD.png new file mode 100644 index 0000000..add70e8 Binary files /dev/null and b/logos/stocks/WALD.png differ diff --git a/logos/stocks/WEST.png b/logos/stocks/WEST.png new file mode 100644 index 0000000..9a12b0d Binary files /dev/null and b/logos/stocks/WEST.png differ diff --git a/logos/stocks/WETG.png b/logos/stocks/WETG.png new file mode 100644 index 0000000..c04a3d8 Binary files /dev/null and b/logos/stocks/WETG.png differ diff --git a/logos/stocks/WTW.png b/logos/stocks/WTW.png new file mode 100644 index 0000000..d40f80f Binary files /dev/null and b/logos/stocks/WTW.png differ diff --git a/logos/stocks/XPER.png b/logos/stocks/XPER.png new file mode 100644 index 0000000..37e25ed Binary files /dev/null and b/logos/stocks/XPER.png differ diff --git a/logos/stocks/ZFOX.png b/logos/stocks/ZFOX.png new file mode 100644 index 0000000..8a97ffb Binary files /dev/null and b/logos/stocks/ZFOX.png differ diff --git a/logos/stocks/ZGN.png b/logos/stocks/ZGN.png new file mode 100644 index 0000000..f9e1632 Binary files /dev/null and b/logos/stocks/ZGN.png differ diff --git a/logos/tiny_stocks/AFRI.png b/logos/tiny_stocks/AFRI.png new file mode 100644 index 0000000..2f20ec7 Binary files /dev/null and b/logos/tiny_stocks/AFRI.png differ diff --git a/logos/tiny_stocks/AIMD.png b/logos/tiny_stocks/AIMD.png new file mode 100644 index 0000000..a8f6a38 Binary files /dev/null and b/logos/tiny_stocks/AIMD.png differ diff --git a/logos/tiny_stocks/AIRS.png b/logos/tiny_stocks/AIRS.png new file mode 100644 index 0000000..9bf460a Binary files /dev/null and b/logos/tiny_stocks/AIRS.png differ diff --git a/logos/tiny_stocks/AKLI.png b/logos/tiny_stocks/AKLI.png new file mode 100644 index 0000000..f16ff4f Binary files /dev/null and b/logos/tiny_stocks/AKLI.png differ diff --git a/logos/tiny_stocks/ALPX.png b/logos/tiny_stocks/ALPX.png new file mode 100644 index 0000000..be46aa6 Binary files /dev/null and b/logos/tiny_stocks/ALPX.png differ diff --git a/logos/tiny_stocks/AUPH.png b/logos/tiny_stocks/AUPH.png new file mode 100644 index 0000000..e8616f4 Binary files /dev/null and b/logos/tiny_stocks/AUPH.png differ diff --git a/logos/tiny_stocks/BDC.png b/logos/tiny_stocks/BDC.png new file mode 100644 index 0000000..041ae6e Binary files /dev/null and b/logos/tiny_stocks/BDC.png differ diff --git a/logos/tiny_stocks/BMR.png b/logos/tiny_stocks/BMR.png new file mode 100644 index 0000000..e082c88 Binary files /dev/null and b/logos/tiny_stocks/BMR.png differ diff --git a/logos/tiny_stocks/BRSH.png b/logos/tiny_stocks/BRSH.png new file mode 100644 index 0000000..9f5b071 Binary files /dev/null and b/logos/tiny_stocks/BRSH.png differ diff --git a/logos/tiny_stocks/BTMD.png b/logos/tiny_stocks/BTMD.png new file mode 100644 index 0000000..2ce6113 Binary files /dev/null and b/logos/tiny_stocks/BTMD.png differ diff --git a/logos/tiny_stocks/CLSK.png b/logos/tiny_stocks/CLSK.png new file mode 100644 index 0000000..5d7d794 Binary files /dev/null and b/logos/tiny_stocks/CLSK.png differ diff --git a/logos/tiny_stocks/CLVT.png b/logos/tiny_stocks/CLVT.png new file mode 100644 index 0000000..c28f6f3 Binary files /dev/null and b/logos/tiny_stocks/CLVT.png differ diff --git a/logos/tiny_stocks/COOK.png b/logos/tiny_stocks/COOK.png new file mode 100644 index 0000000..6472a44 Binary files /dev/null and b/logos/tiny_stocks/COOK.png differ diff --git a/logos/tiny_stocks/CTRA.png b/logos/tiny_stocks/CTRA.png new file mode 100644 index 0000000..4c3f74d Binary files /dev/null and b/logos/tiny_stocks/CTRA.png differ diff --git a/logos/tiny_stocks/DRIO.png b/logos/tiny_stocks/DRIO.png new file mode 100644 index 0000000..adb3e62 Binary files /dev/null and b/logos/tiny_stocks/DRIO.png differ diff --git a/logos/tiny_stocks/FAZE.png b/logos/tiny_stocks/FAZE.png new file mode 100644 index 0000000..26e9ac5 Binary files /dev/null and b/logos/tiny_stocks/FAZE.png differ diff --git a/logos/tiny_stocks/FOXO.png b/logos/tiny_stocks/FOXO.png new file mode 100644 index 0000000..28a4214 Binary files /dev/null and b/logos/tiny_stocks/FOXO.png differ diff --git a/logos/tiny_stocks/FRZA.png b/logos/tiny_stocks/FRZA.png new file mode 100644 index 0000000..d9208c0 Binary files /dev/null and b/logos/tiny_stocks/FRZA.png differ diff --git a/logos/tiny_stocks/FUBO.png b/logos/tiny_stocks/FUBO.png new file mode 100644 index 0000000..a66d097 Binary files /dev/null and b/logos/tiny_stocks/FUBO.png differ diff --git a/logos/tiny_stocks/GBTG.png b/logos/tiny_stocks/GBTG.png new file mode 100644 index 0000000..a7c7352 Binary files /dev/null and b/logos/tiny_stocks/GBTG.png differ diff --git a/logos/tiny_stocks/GETY.png b/logos/tiny_stocks/GETY.png new file mode 100644 index 0000000..95d0a22 Binary files /dev/null and b/logos/tiny_stocks/GETY.png differ diff --git a/logos/tiny_stocks/GPRE.png b/logos/tiny_stocks/GPRE.png new file mode 100644 index 0000000..655eacb Binary files /dev/null and b/logos/tiny_stocks/GPRE.png differ diff --git a/logos/tiny_stocks/GRFX.png b/logos/tiny_stocks/GRFX.png new file mode 100644 index 0000000..2adb392 Binary files /dev/null and b/logos/tiny_stocks/GRFX.png differ diff --git a/logos/tiny_stocks/GRRR.png b/logos/tiny_stocks/GRRR.png new file mode 100644 index 0000000..3641793 Binary files /dev/null and b/logos/tiny_stocks/GRRR.png differ diff --git a/logos/tiny_stocks/HLN.png b/logos/tiny_stocks/HLN.png new file mode 100644 index 0000000..6d0f467 Binary files /dev/null and b/logos/tiny_stocks/HLN.png differ diff --git a/logos/tiny_stocks/HOPE.png b/logos/tiny_stocks/HOPE.png new file mode 100644 index 0000000..bc70ecc Binary files /dev/null and b/logos/tiny_stocks/HOPE.png differ diff --git a/logos/tiny_stocks/HOUS.png b/logos/tiny_stocks/HOUS.png new file mode 100644 index 0000000..6f49b3e Binary files /dev/null and b/logos/tiny_stocks/HOUS.png differ diff --git a/logos/tiny_stocks/JRSH.png b/logos/tiny_stocks/JRSH.png new file mode 100644 index 0000000..6661dc2 Binary files /dev/null and b/logos/tiny_stocks/JRSH.png differ diff --git a/logos/tiny_stocks/KAL.png b/logos/tiny_stocks/KAL.png new file mode 100644 index 0000000..87dcda6 Binary files /dev/null and b/logos/tiny_stocks/KAL.png differ diff --git a/logos/tiny_stocks/LPTV.png b/logos/tiny_stocks/LPTV.png new file mode 100644 index 0000000..037a540 Binary files /dev/null and b/logos/tiny_stocks/LPTV.png differ diff --git a/logos/tiny_stocks/LTHM.png b/logos/tiny_stocks/LTHM.png new file mode 100644 index 0000000..0587618 Binary files /dev/null and b/logos/tiny_stocks/LTHM.png differ diff --git a/logos/tiny_stocks/LUCY.png b/logos/tiny_stocks/LUCY.png new file mode 100644 index 0000000..2e0d0c1 Binary files /dev/null and b/logos/tiny_stocks/LUCY.png differ diff --git a/logos/tiny_stocks/LVWR.png b/logos/tiny_stocks/LVWR.png new file mode 100644 index 0000000..a1e239b Binary files /dev/null and b/logos/tiny_stocks/LVWR.png differ diff --git a/logos/tiny_stocks/MFC.png b/logos/tiny_stocks/MFC.png new file mode 100644 index 0000000..a5312ca Binary files /dev/null and b/logos/tiny_stocks/MFC.png differ diff --git a/logos/tiny_stocks/MGAM.png b/logos/tiny_stocks/MGAM.png new file mode 100644 index 0000000..1a1754e Binary files /dev/null and b/logos/tiny_stocks/MGAM.png differ diff --git a/logos/tiny_stocks/MOND.png b/logos/tiny_stocks/MOND.png new file mode 100644 index 0000000..55a61b1 Binary files /dev/null and b/logos/tiny_stocks/MOND.png differ diff --git a/logos/tiny_stocks/NCPL.png b/logos/tiny_stocks/NCPL.png new file mode 100644 index 0000000..00cecd8 Binary files /dev/null and b/logos/tiny_stocks/NCPL.png differ diff --git a/logos/tiny_stocks/NEOV.png b/logos/tiny_stocks/NEOV.png new file mode 100644 index 0000000..a08fe09 Binary files /dev/null and b/logos/tiny_stocks/NEOV.png differ diff --git a/logos/tiny_stocks/NOGN.png b/logos/tiny_stocks/NOGN.png new file mode 100644 index 0000000..02b5b5b Binary files /dev/null and b/logos/tiny_stocks/NOGN.png differ diff --git a/logos/tiny_stocks/NOTE.png b/logos/tiny_stocks/NOTE.png new file mode 100644 index 0000000..bf8d021 Binary files /dev/null and b/logos/tiny_stocks/NOTE.png differ diff --git a/logos/tiny_stocks/NRGV.png b/logos/tiny_stocks/NRGV.png new file mode 100644 index 0000000..325d6c3 Binary files /dev/null and b/logos/tiny_stocks/NRGV.png differ diff --git a/logos/tiny_stocks/OGS.png b/logos/tiny_stocks/OGS.png new file mode 100644 index 0000000..ed472b2 Binary files /dev/null and b/logos/tiny_stocks/OGS.png differ diff --git a/logos/tiny_stocks/ONFO.png b/logos/tiny_stocks/ONFO.png new file mode 100644 index 0000000..57372a2 Binary files /dev/null and b/logos/tiny_stocks/ONFO.png differ diff --git a/logos/tiny_stocks/OPAL.png b/logos/tiny_stocks/OPAL.png new file mode 100644 index 0000000..e83b2a9 Binary files /dev/null and b/logos/tiny_stocks/OPAL.png differ diff --git a/logos/tiny_stocks/PEPG.png b/logos/tiny_stocks/PEPG.png new file mode 100644 index 0000000..1f60e2c Binary files /dev/null and b/logos/tiny_stocks/PEPG.png differ diff --git a/logos/tiny_stocks/PERF.png b/logos/tiny_stocks/PERF.png new file mode 100644 index 0000000..9fc9dec Binary files /dev/null and b/logos/tiny_stocks/PERF.png differ diff --git a/logos/tiny_stocks/PET.png b/logos/tiny_stocks/PET.png new file mode 100644 index 0000000..0ca36d4 Binary files /dev/null and b/logos/tiny_stocks/PET.png differ diff --git a/logos/tiny_stocks/QBTS.png b/logos/tiny_stocks/QBTS.png new file mode 100644 index 0000000..f5a1fe6 Binary files /dev/null and b/logos/tiny_stocks/QBTS.png differ diff --git a/logos/tiny_stocks/REBN.png b/logos/tiny_stocks/REBN.png new file mode 100644 index 0000000..81fb6a0 Binary files /dev/null and b/logos/tiny_stocks/REBN.png differ diff --git a/logos/tiny_stocks/RUM.png b/logos/tiny_stocks/RUM.png new file mode 100644 index 0000000..017afb2 Binary files /dev/null and b/logos/tiny_stocks/RUM.png differ diff --git a/logos/tiny_stocks/SGH.png b/logos/tiny_stocks/SGH.png new file mode 100644 index 0000000..355ce04 Binary files /dev/null and b/logos/tiny_stocks/SGH.png differ diff --git a/logos/tiny_stocks/SLNA.png b/logos/tiny_stocks/SLNA.png new file mode 100644 index 0000000..7668cb6 Binary files /dev/null and b/logos/tiny_stocks/SLNA.png differ diff --git a/logos/tiny_stocks/STBX.png b/logos/tiny_stocks/STBX.png new file mode 100644 index 0000000..ea0c0c9 Binary files /dev/null and b/logos/tiny_stocks/STBX.png differ diff --git a/logos/tiny_stocks/STIX-svg.png b/logos/tiny_stocks/STIX-svg.png new file mode 100644 index 0000000..eab1d65 Binary files /dev/null and b/logos/tiny_stocks/STIX-svg.png differ diff --git a/logos/tiny_stocks/STVN.png b/logos/tiny_stocks/STVN.png new file mode 100644 index 0000000..31bd695 Binary files /dev/null and b/logos/tiny_stocks/STVN.png differ diff --git a/logos/tiny_stocks/SYF.png b/logos/tiny_stocks/SYF.png new file mode 100644 index 0000000..9f29690 Binary files /dev/null and b/logos/tiny_stocks/SYF.png differ diff --git a/logos/tiny_stocks/SYM.png b/logos/tiny_stocks/SYM.png new file mode 100644 index 0000000..d03ea6e Binary files /dev/null and b/logos/tiny_stocks/SYM.png differ diff --git a/logos/tiny_stocks/TGL.png b/logos/tiny_stocks/TGL.png new file mode 100644 index 0000000..dd3161b Binary files /dev/null and b/logos/tiny_stocks/TGL.png differ diff --git a/logos/tiny_stocks/THCH.png b/logos/tiny_stocks/THCH.png new file mode 100644 index 0000000..4055351 Binary files /dev/null and b/logos/tiny_stocks/THCH.png differ diff --git a/logos/tiny_stocks/VRAX.png b/logos/tiny_stocks/VRAX.png new file mode 100644 index 0000000..6f1c789 Binary files /dev/null and b/logos/tiny_stocks/VRAX.png differ diff --git a/logos/tiny_stocks/WALD.png b/logos/tiny_stocks/WALD.png new file mode 100644 index 0000000..3904cfc Binary files /dev/null and b/logos/tiny_stocks/WALD.png differ diff --git a/logos/tiny_stocks/WETG.png b/logos/tiny_stocks/WETG.png new file mode 100644 index 0000000..1c38c69 Binary files /dev/null and b/logos/tiny_stocks/WETG.png differ diff --git a/logos/tiny_stocks/WTW.png b/logos/tiny_stocks/WTW.png new file mode 100644 index 0000000..2918edf Binary files /dev/null and b/logos/tiny_stocks/WTW.png differ diff --git a/logos/tiny_stocks/XPER.png b/logos/tiny_stocks/XPER.png new file mode 100644 index 0000000..e1b7449 Binary files /dev/null and b/logos/tiny_stocks/XPER.png differ diff --git a/logos/tiny_stocks/ZFOX.png b/logos/tiny_stocks/ZFOX.png new file mode 100644 index 0000000..19ac607 Binary files /dev/null and b/logos/tiny_stocks/ZFOX.png differ diff --git a/server.py b/server.py index 17e3239..8e0695f 100755 --- a/server.py +++ b/server.py @@ -100,6 +100,18 @@ class DummyProcess(): def close(self): return True + +# try: +# 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 app = Flask(__name__) @@ -107,7 +119,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', 'Commodities'] + 'Sports (Team Stats)','Custom Images', 'Custom GIFs', 'Custom Messages', 'Stocks', 'Crypto', 'Forex', 'Commodities', 'Indices'] global professional @@ -122,12 +134,14 @@ def index(): currently_displaying = json.load(f)[1] f.close() not_displaying = [f for f in all_features if f not in currently_displaying[0]] + not_displaying2 = [f for f in all_features if f not in currently_displaying[0]] elif professional: f = open('csv/display_settings.json', 'r') currently_displaying = json.load(f)[1] f.close() - not_displaying = [f for f in all_features if f not in currently_displaying[0] and f not in currently_displaying[1]] + not_displaying = [f for f in all_features if f not in currently_displaying[0]] + not_displaying2 = [f for f in all_features if f not in currently_displaying[1]] with open('api_keys.txt', 'r') as f: api_key2 = f.readlines() @@ -148,6 +162,10 @@ def index(): commodities_settings = json.load(f) f.close() + f = open('csv/indices_settings.json', 'r') + indices_settings = json.load(f) + f.close() + f= open('csv/crypto_settings.json', 'r') crypto_settings = json.load(f) f.close() @@ -222,8 +240,10 @@ def index(): 'system_info':system_info, 'currently_displaying': currently_displaying, 'not_displaying': not_displaying, + 'not_displaying2': not_displaying2, 'stocks_settings': stocks_settings, 'commodities_settings': commodities_settings, + 'indices_settings': indices_settings, 'crypto_settings': crypto_settings, 'forex_settings': forex_settings, 'current_weather': current_weather, @@ -252,11 +272,11 @@ def save_displaying(input_settings): global professional - all_settings = ['Stocks', 'Crypto', 'Forex', 'Commodities', 'Current Weather', 'Daily Forecast', 'News', 'Sports (Upcoming Games)', 'Sports (Past Games)', + all_settings = ['Stocks', 'Crypto', 'Forex', 'Commodities', 'Indices', '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', 'Commodities', 'Current Weather', 'News'] + all_settings = ['Stocks', 'Crypto', 'Forex', 'Commodities', 'Indices', 'Current Weather', 'News', 'Daily Forecast', 'Sports (Upcoming Games)', 'Sports (Past Games)', 'Sports (Team Stats)'] positions = [] @@ -389,7 +409,7 @@ def save(): input_settings= input_settings['feature_settings'] feature = input_settings['feature'] - if feature in ['Stocks', 'Crypto', 'Forex', 'Commodities']: + if feature in ['Stocks', 'Crypto', 'Forex', 'Commodities', 'Indices']: 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 dc6ed53..bf73eb4 100755 --- a/setup_config_files.sh +++ b/setup_config_files.sh @@ -13,20 +13,21 @@ rm *.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 commodities_settings.json +touch current_weather.json stocks_settings.json daily_weather.json live_games.json commodities_settings.json indices_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 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" +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 indices_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}, "commodities": {"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}, "indices": {"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": "Stocks", "speed": "fast", "speed2": "slow", "animation": "up", "percent": true, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"^HSI": {"name": "HSI", "current": "18083.06", "point_change": "1003.55", "percent_change": "5.88"}, "^GSPC": {"name": "S&P 500", "current": "3790.93", "point_change": "112.50", "percent_change": "3.06"}, "^RUT": {"name": "RUSSELL 2000", "current": "1775.77", "point_change": "66.90", "percent_change": "3.91"}, "^GDAXI": {"name": "DAX", "current": "12648.95", "point_change": "-21.53", "percent_change": "-0.17"}, "^FTSE": {"name": "FTSE 100", "current": "7058.68", "point_change": "-27.82", "percent_change": "-0.39"}, "^FCHI": {"name": "CAC 40", "current": "6031.45", "point_change": "-8.24", "percent_change": "-0.14"}, "399001.SZ": {"name": "SZSE", "current": "10778.61", "point_change": "-140.83", "percent_change": "-1.29"}, "^STOXX50E": {"name": "STOXX 50", "current": "3476.55", "point_change": "-7.93", "percent_change": "-0.23"}, "^AXJO": {"name": "ASX 200", "current": "6815.70", "point_change": "116.40", "percent_change": "1.74"}, "^DJI": {"name": "DOW JONES", "current": "30316.32", "point_change": "825.43", "percent_change": "2.80"}, "^STOXX": {"name": "STOXX 600", "current": "402.33", "point_change": "-0.70", "percent_change": "-0.17"}}}' >> indices_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\", \"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 @@ -60,14 +61,18 @@ touch 'Custom GIFs.gif' touch 'Custom Images.ppm' touch 'Custom Messages.ppm' touch 'Daily Forecast.ppm' +touch 'Daily Forecast Prof.ppm' touch 'Forex Prof.ppm' touch 'Forex.ppm' touch 'News Prof.ppm' touch 'News.ppm' touch 'Sports (Live Games).ppm' touch 'Sports (Past Games).ppm' +touch 'Sports (Past Games) Prof.ppm' touch 'Sports (Team Stats).ppm' +touch 'Sports (Team Stats) Prof.ppm' touch 'Sports (Upcoming Games).ppm' +touch 'Sports (Upcoming Games) Prof.ppm' touch 'Stocks Prof.ppm' touch 'Stocks.ppm' touch 'daily_weather.ppm' @@ -76,6 +81,8 @@ touch 'display_gif.ppm' touch 'display_image.ppm' touch 'Commodities.ppm' touch 'Commodities Prof.ppm' +touch 'Indices.ppm' +touch 'Indices Prof.ppm' chmod 777 * diff --git a/static/app.js b/static/app.js index 819aa07..765456a 100755 --- a/static/app.js +++ b/static/app.js @@ -45,6 +45,7 @@ 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 indicesFeatures = document.querySelectorAll("#indices-features li"); var allFeaturesList = [ stocksFeatures, @@ -61,6 +62,7 @@ var allFeaturesList = [ gifsFeatures, messagesFeatures, commoditiesFeatures, + indicesFeatures, ]; // features remove buttons @@ -84,6 +86,7 @@ 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 indicesRemoveBtn = document.getElementById("indices-remove-btn"); var allFeaturesRemoveBtns = [ stocksRemoveBtn, @@ -100,6 +103,7 @@ var allFeaturesRemoveBtns = [ gifsRemoveBtn, messagesRemoveBtn, commoditiesRemoveBtn, + indicesRemoveBtn, ]; // features increase buttons var stocksincreaseBtn = document.getElementById("stocks-increase-btn"); @@ -122,6 +126,7 @@ 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 indicesincreaseBtn = document.getElementById("indices-increase-btn"); var allFeaturesIncreaseBtns = [ stocksincreaseBtn, @@ -138,6 +143,7 @@ var allFeaturesIncreaseBtns = [ gifsincreaseBtn, messagesincreaseBtn, commoditiesincreaseBtn, + indicesincreaseBtn, ]; // features decrease buttons @@ -161,6 +167,7 @@ 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 indicesDecreaseBtn = document.getElementById("indices-decrease-btn"); var allFeaturesDecreaseBtns = [ stocksDecreaseBtn, @@ -177,6 +184,7 @@ var allFeaturesDecreaseBtns = [ gifsDecreaseBtn, messagesDecreaseBtn, commoditiesDecreaseBtn, + indicesDecreaseBtn, ]; const changeVarValue = () => { @@ -200,6 +208,7 @@ const changeVarValue = () => { gifsFeatures = document.querySelectorAll("#gifs-features li"); messagesFeatures = document.querySelectorAll("#messages-features li"); commoditiesFeatures = document.querySelectorAll("#commodities-features li"); + indicesFeatures = document.querySelectorAll("#indices-features li"); allFeaturesList = [ stocksFeatures, @@ -216,6 +225,7 @@ const changeVarValue = () => { gifsFeatures, messagesFeatures, commoditiesFeatures, + indicesFeatures, ]; }; @@ -585,6 +595,7 @@ 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 indices = document.getElementById("indices-features"); var allFeatures = [ stocks, @@ -601,6 +612,7 @@ var allFeatures = [ gifs, messages, commodities, + indices, ]; // features select box @@ -624,6 +636,7 @@ var allFeaturesSelectBox = [ null, null, null, + null, ]; // features select add buttons @@ -647,6 +660,7 @@ var allFeaturesSelectAddBtn = [ null, null, null, + null, ]; allFeaturesSelectAddBtn.map((value, index) => { @@ -680,6 +694,7 @@ var allFeaturesFile = [ gifsFile, null, null, + null, ]; // features file add button var imagesFileAddBtn = document.getElementById("inputTextBtn11"); @@ -700,6 +715,7 @@ var allFeaturesFileAddBtn = [ gifsFileAddBtn, null, null, + null, ]; // features input text @@ -710,6 +726,7 @@ var currentWeatherText = document.getElementById("inputText6"); var dailyForecastText = document.getElementById("inputText7"); var messagesText = document.getElementById("inputText13"); var commoditiesText = document.getElementById("inputText20"); +var indicesText = document.getElementById("inputText21"); var allFeaturesText = [ stocksText, @@ -726,6 +743,7 @@ var allFeaturesText = [ null, messagesText, commoditiesText, + indicesText, ]; // features text add button @@ -736,6 +754,7 @@ var currentWeatherTextAddBtn = document.getElementById("inputTextBtn6"); var dailyForecastTextAddBtn = document.getElementById("inputTextBtn7"); var messagesTextAddBtn = document.getElementById("inputTextBtn13"); var commoditiesTextAddBtn = document.getElementById("inputTextBtn20"); +var indicesTextAddBtn = document.getElementById("inputTextBtn21"); var allFeaturesTextAddBtn = [ stocksTextAddBtn, @@ -752,6 +771,7 @@ var allFeaturesTextAddBtn = [ null, messagesTextAddBtn, commoditiesTextAddBtn, + indicesTextAddBtn, ]; @@ -770,6 +790,7 @@ var allFeaturesLimit = [ 20, 20, 30, + 40, ]; @@ -1025,6 +1046,7 @@ function getFeatureSettings() { "Custom GIFs", "Custom Messages", "Commodities", + "Indices", ]; let pageNum = features.indexOf(feature) + 1; let pageSelector = "Page" + pageNum.toString(); @@ -1078,6 +1100,9 @@ function getFeatureSettings() { case 14: s = getTradingSettings(page); break; + case 15: + s = getTradingSettings(page); + break; } settings = { ...settings, ...s }; // merge both sets of settings @@ -1200,6 +1225,7 @@ function saveWeatherAPIKey(){ "Custom GIFs", "Custom Messages", "Commodities", + "Indices", ]; let pageNum = features.indexOf(feature) + 1; let pageSelector = "Page" + pageNum.toString(); @@ -1553,7 +1579,7 @@ inputAnimationBtn.addEventListener("click", () => { // scroll speed row two let inputScrollSpeedRow = []; -for (let i = 1; i <= 14; i++) { +for (let i = 1; i <= 15; i++) { inputScrollSpeedRow.push( document.getElementById( i === 1 ? "inputScrollSpeedRow" : `inputScrollSpeedRow${i}` @@ -2130,3 +2156,60 @@ var specialChars = /[`!@#$%^&*()_+\-=\[\]{};':"\\|<>\/?~]/; } document.getElementById("demo8").innerHTML = text; } + + +// Indices validation + +function indicesValidate() { + +var specialChars = /[`!@#$%&*()_+\-=\[\]{};':"\\|<>\/?~]/; + + let x = document.getElementById("inputText21").value; + + let text; + if (x.toUpperCase() != x) { + document.getElementById('demo9').style.display = "block"; + text = "Index symbol must be uppercase"; + document.getElementById("inputText21").value = ''; + // createLi = false; + } + else if (x === '') { + document.getElementById('demo9').style.display = "block"; + text = "No blanks" + // createLi = false; + } + + else if (x.includes(' ')) { + text = "No spaces"; + document.getElementById('demo9').style.display = "block"; + document.getElementById("inputText21").value = ''; + // createLi = false; + } + + else if (specialChars.test(x)) { + document.getElementById('demo9').style.display = "block"; + text = "No special characters allowed"; + document.getElementById("inputText21").value = ''; + // createLi = false; + } + + else if (!["^DJI","^GSPC","^NDX","^RUT","^VIX","^GSPTSE","^MXX","^BVSP","^GDAXI","^FTSE","^IBEX","^FCHI","^SSMI","^BFX","^ATX","^AEX","^OMX", + "^OMXH25","PSI20.LS","^STOXX","^STOXX50E","^N100","^KS11","^NZ50","^AXJO","^STI","000001.SS","399001.SZ","^N225","^NSEI","^BSESN","^HSI","^TWII","^JKSE","PSEI.PS","^SET.BK","XU100.IS"].includes(x)) { + document.getElementById('demo9').style.display = "block"; + document.getElementById("inputText21").value = ''; + text = "Invalid index symbol" + + } + + else { + text = "Input OK"; + document.getElementById('demo9').style.display = "none"; + createLi = true; + // CALL ADDING ITEMS FUNCTION SO THAT ONLY VALIDATED ITEMS CAN GET ADDED TO LIST + setTimeout( + function() { + document.getElementById('inputText21').value=""; + }, 100); + } + document.getElementById("demo9").innerHTML = text; + } diff --git a/static/style.css b/static/style.css index 61151a6..ef42760 100755 --- a/static/style.css +++ b/static/style.css @@ -1157,6 +1157,10 @@ input[type=checkbox]:hover { color:red; } +#demo9 { + color:red; +} + #limit-msg { color:red; } diff --git a/stockTicker.py b/stockTicker.py index 91c2144..c8e7886 100755 --- a/stockTicker.py +++ b/stockTicker.py @@ -68,19 +68,22 @@ 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, 'Commodities': self.getCommoditiesImage, + 'News':self.getNewsImage, 'Custom Messages': self.getUserMessages, 'Commodities': self.getCommoditiesImage, 'Indices': self.getIndicesImage, 'Stocks Prof': self.getStockProfessional, 'Crypto Prof': self.getCryptoProfessional, 'Forex Prof': self.getForexProfessional, - 'Current Weather Prof': self.getTodayWeatherProfessional, 'News Prof':self.getNewsProfessional, 'Commodities Prof':self.getCommoditiesProfessional} + 'Current Weather Prof': self.getTodayWeatherProfessional, 'News Prof':self.getNewsProfessional, 'Commodities Prof':self.getCommoditiesProfessional, 'Indices Prof': self.getIndicesProfessional, + 'Daily Forecast Prof':self.getDailyWeatherProfessional, 'Sports (Team Stats) Prof':lambda : self.getLeagueTableProfessional('NHL'), 'Sports (Upcoming Games) Prof': lambda : self.getLeagueProfessional('NHL', 'future'), + 'Sports (Past Games) Prof': lambda : self.getLeagueProfessional('NBA', 'past')} 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', 'Commodities':'csv/commodities_settings.json', + 'Daily Forecast':'csv/daily_weather.json', 'Current Weather': 'csv/current_weather.json', 'Commodities':'csv/commodities_settings.json', 'Indices': 'csv/indices_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', 'Commodities Prof':'csv/commodities_settings.json'} + 'Current Weather Prof': 'csv/current_weather.json', 'News Prof':'csv/news_settings.json', 'Commodities Prof':'csv/commodities_settings.json', 'Indices Prof': 'csv/indices_settings.json', + 'Daily Forecast Prof':'csv/daily_weather.json', 'Sports (Team Stats) Prof': 'csv/league_tables.json', 'Sports (Upcoming Games) Prof': 'csv/upcoming_games.json', 'Sports (Past Games) Prof': 'csv/past_games.json'} def openImage(self, image_file): @@ -1065,6 +1068,160 @@ class StockTicker(): self.blank = Image.new('RGB', (10, 32)) return finalDisplayImage + + def getIndicesImage(self): + + f = open('csv/indices_settings.json', 'r') + all_indices_settings = json.load(f) + f.close() + + if all_indices_settings['title']: + title_img = self.openImage('feature_titles/indices.png') + image_list = [title_img] + image_list.append(self.blank) + else: + image_list = [] + + index_info = all_indices_settings['symbols'] + symbols = list(index_info.keys()) + + + for i, symbol in enumerate(symbols): + + try: + info = index_info[symbol] + + change = float(info['point_change']) #TEXT + symb = symbol + ticker = info['name'] #TEXT + arrow, change = self.getArrow(change) + point_change = '%.2f' % abs(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 = '%.2f' % float(info['current']) + # current_final = '{0:.10f}'.format(current).rstrip("0") + # current = str(current_final) + + + + if not all_indices_settings['percent']: + percent_change = False + if not all_indices_settings['point']: + point_change = False + + + + + midFrame = self.textToImage(ticker, current, arrow, percent_change, point_change) #IMAGE THE TEXT + + if all_indices_settings['logos']: + try: + logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'indices') + + logo = self.openImage(os.path.join(logos_path, symb + '.png')) + stitchedIndex = self.stitchImage([logo,midFrame]) + except Exception as e: + + stitchedIndex = midFrame + else: + stitchedIndex = midFrame + + image_list.append(stitchedIndex) + + + image_list.append(self.blank) + except Exception as e: + pass + + + + finalDisplayImage = self.stitchImage(image_list) + + + + return finalDisplayImage + + + def getIndicesProfessional(self): + self.blank = Image.new('RGB', (0, 16)) + + f = open('csv/indices_settings.json', 'r') + all_indices_settings = json.load(f) + f.close() + + if all_indices_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/indices.png') + image_list = [title_img, Image.new('RGB', (5, 16))] + image_list.append(self.blank) + else: + image_list = [] + + index_info = all_indices_settings['symbols'] + symbols = list(index_info.keys()) + + for i, symbol in enumerate(symbols): + + try: + info = index_info[symbol] + + change = float(info['point_change']) #TEXT + symb = symbol + ticker = info['name'] #TEXT + arrow, change = self.getArrow(change, professional=True) + if all_indices_settings["percent"]: + change = '%.2f' % abs(float(info['percent_change'])) + '%' + else: + change = '%.2f' % abs(change) + current = '%.2f' % float(info['current']) + + + midFrame = self.textToImageProf(ticker, current, change, arrow, font=ImageFont.load("./fonts/6x10.pil")) #IMAGE THE TEXT + + if all_indices_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_indices') + + 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'), 'indices') + + logo = Image.open(os.path.join(logos_path, symb + '.png')) + # half the size of the logo + width, height = logo.size + + logo = logo.resize((int(width/2), int(height/2))) + stitchedIndex = self.stitchImage([logo,midFrame]) + except Exception as e: + + stitchedIndex = midFrame + else: + stitchedIndex = midFrame + + image_list.append(stitchedIndex) + + + image_list.append(self.blank) + + except Exception as e: + pass + + + finalDisplayImage = self.stitchImage(image_list) + + + self.blank = Image.new('RGB', (10, 32)) + return finalDisplayImage + + + def getCommoditiesImage(self): f = open('csv/commodities_settings.json', 'r') @@ -2046,6 +2203,256 @@ class StockTicker(): # 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 getLeagueTableProfessional(self, league = False): + + f = open('csv/league_tables.json', 'r') + all_settings = json.load(f) + f.close() + + + leagues_info = all_settings['leagues'] + + leagues = list(leagues_info.keys()) + + if all_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/sports_team_stats.png') + imgs = [title_img, self.blank] + else: + imgs = [] + + + for league in leagues: + + try: + x_offset = 0 + + img = Image.new('RGB', (10000, 32)) + + + league_logo = Image.open('logos/sports/league_logos/{}.png'.format(league)).convert('RGB') + width, height = league_logo.size + league_logo2 = league_logo.resize((int(width/2), int(height/2))) + img.paste(league_logo2, (x_offset,0)) + x_offset += (league_logo2.size[0]+5) + + + team_info = leagues_info[league] + + font = ImageFont.load("./fonts/6x10.pil") + + + sports_info = self.readSportsCSV(league) + + buff_size = 20 + + + for team in team_info: + + + name_timage = self.textImage(team['name'].upper(), font, r = 255, g = 255, b = 0) + wins_timage = self.textImage('W:' + str(team['wins']), font, r = 0, g = 255, b = 0) + loss_timage = self.textImage('L:' + str(team['loss']), font, r = 255, g = 0, b = 0) + draw_timage = self.textImage('D:' + str(team['draw']), font, r = 0, g = 0, b = 255) + standing_timage = self.textImage('#' + str(team['standing']), font, r = 255, g = 255, b = 255) + + + img.paste(standing_timage, (x_offset, 3)) + x_offset += (standing_timage.size[0]) + + + try: + + + logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[team['name']]['logo'])) + width, height = logo.size + logo2 = logo.resize((int(width/2), int(height/2))) + img.paste(logo2, (x_offset, 0)) + x_offset += (logo2.size[0] + 3) + except Exception as e: + pass + + + img.paste(name_timage, (x_offset, 3)) + x_offset += (name_timage.size[0] +2) + img.paste(wins_timage, (x_offset, 3)) + x_offset += (wins_timage.size[0] +2) + img.paste(loss_timage, (x_offset, 3)) + x_offset += (loss_timage.size[0] +2) + img.paste(draw_timage, (x_offset, 3)) + x_offset += (draw_timage.size[0]+10) + # x_offset += max( wins_timage.size[0], loss_timage.size[0], draw_timage.size[0]) + #img.paste(points_timage, (x_offset, 14)) + # img.paste(standing_timage, (x_offset, 22)) + + + # x_offset += standing_timage.size[0] + + # if name_timage.size[0] > max( wins_timage.size[0], loss_timage.size[0], draw_timage.size[0]) + standing_timage.size[0]: + # x_offset += name_timage.size[0] - (max( wins_timage.size[0], loss_timage.size[0], draw_timage.size[0]) + standing_timage.size[0]) + # x_offset += buff_size + + x_offset += 25 + img1 = img.crop((0,0,x_offset ,16)) + imgs.append(img1) + except Exception as e: + pass + + return self.stitchImage(imgs) + + + def getLeagueProfessional(self, league=False, time = 'future'): + + if time in ['past', 'live']: + filepath = 'csv/{}_games.json'.format(time) + + else: + + filepath = 'csv/upcoming_games.json' + + f = open(filepath, 'r') + all_settings = json.load(f) + f.close() + + title_img = self.openImage('feature_titles/sports_'+ time + '.png') + if all_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/sports_{}.png'.format(time)) + imgs = [title_img, self.blank] + else: + imgs = [] + + + leagues_info = all_settings['leagues'] + leagues = list(leagues_info.keys()) + + + for league in leagues: + try: + x_offset = 0 + img = Image.new('RGB', (10000, 32)) + league_info = leagues_info[league] + + #league logo + try: + league_logo = Image.open('logos/sports/league_logos/{}.png'.format(league)).convert('RGB') + width, height = league_logo.size + league_logo2 = league_logo.resize((int(width/2), int(height/2))) + img.paste(league_logo2, (x_offset,0)) + x_offset += (league_logo2.size[0]+10) + except: + pass + + + font = ImageFont.load("./fonts/6x10.pil") + small_font = ImageFont.load("./fonts/4x6.pil") + + sports_info = self.readSportsCSV(league) + + buff_size = 20 + + + for match in league_info: + strHomeTeam = match['home_team'] + strAwayTeam = match['away_team'] + + if time != 'future': + intHomeScore = str(match['home_score']) + intAwayScore = str(match['away_score']) + + dateEvent = match['date'].replace('-', '.') + + + try: + + home_logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[strHomeTeam]['logo'])) + width1, height1 = home_logo.size + home_logo1 = home_logo.resize((int(width1/2), int(height1/2))) + except Exception as e: + home_logo1 = self.textImage(strHomeTeam.replace(' ', '\n'), font, r = 255, g = 255, b = 255) + + + try: + + away_logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[strAwayTeam]['logo'])) + width2, height2 = away_logo.size + away_logo1 = away_logo.resize((int(width2/2), int(height2/2))) + except Exception as e: + away_logo1 = self.textImage(strAwayTeam.replace(' ', '\n'), font, r = 255, g = 255, b = 255) + + + date_timage = self.textImage(dateEvent, small_font, r = 255, g = 255, b = 255) + + + img.paste(home_logo1, (x_offset,0)) + x_offset += (home_logo1.size[0] + 2) + + + if time == 'future': + img.paste(date_timage, (x_offset+5, 0)) + + h_colour = mcolors.to_rgb(sports_info[strHomeTeam]['colour'].replace(' ', '')) + a_colour = mcolors.to_rgb(sports_info[strAwayTeam]['colour'].replace(' ', '')) + + + hc_timage = self.textImage(sports_info[strHomeTeam]['code'], font, r = int(h_colour[0]*255), g = int(h_colour[1]*255), b = int(h_colour[2]*255)) + ac_timage = self.textImage(sports_info[strAwayTeam]['code'], font, r = int(a_colour[0]*255), g = int(a_colour[1]*255), b = int(a_colour[2]*255)) + vs_timage = self.textImage('vs', font, r = 255, g = 255, b = 255, h_buff = 5) + + img.paste(hc_timage, (x_offset, 5)) + x_offset += hc_timage.size[0] + img.paste(vs_timage, (x_offset, 5)) + x_offset += vs_timage.size[0] + img.paste(ac_timage, (x_offset, 5)) + x_offset += ac_timage.size[0] + #x_offset += max(date_timage.size[0], (hc_timage.size[0] + vs_timage.size[0] + ac_timage.size[0])) + else: + + score_image = self.textImage(intHomeScore + '-' + intAwayScore, font, h_buff = 5, r = 255, g = 255, b = 255) + h_colour = mcolors.to_rgb(sports_info[strHomeTeam]['colour'].replace(' ', '')) + a_colour = mcolors.to_rgb(sports_info[strAwayTeam]['colour'].replace(' ', '')) + + hc_timage = self.textImage(sports_info[strHomeTeam]['code'], font, r = int(h_colour[0]*255), g = int(h_colour[1]*255), b = int(h_colour[2]*255)) + ac_timage = self.textImage(sports_info[strAwayTeam]['code'], font, r = int(a_colour[0]*255), g = int(a_colour[1]*255), b = int(a_colour[2]*255)) + + img.paste(date_timage, (x_offset+20+int((score_image.size[0] - date_timage.size[0])/2),0)) + img.paste(hc_timage, (x_offset, 5)) + x_offset += hc_timage.size[0] + img.paste(score_image, (x_offset, 5)) + x_offset += score_image.size[0] + img.paste(ac_timage, (x_offset, 5)) + x_offset += ac_timage.size[0] + + # if date_timage.size[0] > score_image.size[0]: + # img.paste(date_timage, (x_offset+2, 0)) + # img.paste(hc_timage, (x_offset+6, 5)) + # img.paste(vs_timage, (x_offset+5 + hc_timage.size[0], 5)) + # img.paste(ac_timage, (x_offset+6 + hc_timage.size[0] + vs_timage.size[0], 5)) + # img.paste(score_image, (x_offset + 2 + int((date_timage.size[0] - score_image.size[0])/2), 5)) + # else: + + # img.paste(date_timage, (x_offset+1+int((score_image.size[0] - date_timage.size[0] )/2), 0)) + # vs_size = hc_timage.size[0] + vs_timage.size[0] + ac_timage.size[0] + # img.paste(hc_timage, (x_offset + 1 + int((score_image.size[0] - vs_size)/2), 5)) + # img.paste(vs_timage, (x_offset + int((score_image.size[0] - vs_size)/2) + hc_timage.size[0], 5)) + # img.paste(ac_timage, (x_offset+1 + int((score_image.size[0] - vs_size)/2) + hc_timage.size[0] + vs_timage.size[0], 5)) + # img.paste(score_image, (x_offset+1, 5)) + + # x_offset += max( date_timage.size[0]+4, hc_timage.size[0] + vs_timage.size[0] + ac_timage.size[0]+4, 2 + int(score_image.size[0])) + + img.paste(away_logo1, (x_offset,0)) + + x_offset += away_logo1.size[0] + x_offset += buff_size + x_offset += 20 + img = img.crop((0,0,x_offset ,16)) + imgs.append(img) + + except: + pass + return self.stitchImage(imgs) + + def convertTemp(self,temp, setting): if setting == 'kelvin': temp = temp+ 273.15 @@ -2702,6 +3109,147 @@ class StockTicker(): # logf.close() return self.stitchImage(imgs) + + + + def getDailyWeatherProfessional(self): + + f = open('csv/daily_weather.json', 'r') + all_settings = json.load(f) + f.close() + + if all_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/forecast.png') + image_list = [title_img, Image.new('RGB', (3, 16))] + else: + image_list = [] + + f = open('csv/daily_weather.json', 'r') + daily_weathers = json.load(f) + f.close() + locations = list(daily_weathers['locations'].keys()) + + weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + months =['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + month = months[int(datetime.now().strftime('%m'))-1] + date = str(int(datetime.now().strftime('%d'))) + + weekday = weekdays[datetime.today().weekday()] + + for i, location in enumerate(locations): + + try: + + img = Image.new('RGB', (1000, 32)) + + daily_weather = daily_weathers['locations'][location] + + small_font = ImageFont.load("./fonts/4x6.pil") + font = ImageFont.load("./fonts/6x10.pil") + large_font = ImageFont.load("./fonts/10x20.pil") + + 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', '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' + + location_img = self.textImage(location.upper(), font, r = 255, g = 255, b = 0) + + img.paste(location_img, (5,3)) + x_offset = location_img.size[0] + 8 + + + date_img = self.textImage((month + ' ' + date + ',' + weekday).upper(), font) + + img.paste(date_img, (x_offset, 3)) + + x_offset += date_img.size[0] + 2 + + + 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))) + + main = daily_weather[0]['main_weather'] + main_img = self.textImage(main.upper(), font) + img.paste(main_img, (x_offset, 3)) + x_offset += main_img.size[0] + 2 + + img.paste(weather_img, (x_offset,3)) + + x_offset += weather_img.size[0] + 2 + + temp = self.convertTemp(daily_weather[0]['temp'], daily_weathers['temp']) + + + temp_img = self.textImage(str("{0:.0f}".format(temp)), font) + img.paste(temp_img, (x_offset,3)) + x_offset += temp_img.size[0]-3 + + deg_img = self.textImage('o', small_font) + + img.paste(deg_img, (x_offset+1, 1)) + + x_offset += deg_img.size[0] -2 + + min_img = self.textImage( "{0:.0f}".format(self.convertTemp(daily_weather[0]['min_temp'], daily_weathers['temp'])), small_font, r=0, g=0, b=255) + img.paste(min_img, (x_offset+2, 2)) + + max_img = self.textImage( "{0:.0f}".format(self.convertTemp(daily_weather[0]['max_temp'], daily_weathers['temp'])), small_font, r=255, g=0, b=0) + img.paste(max_img, (x_offset+2, 8)) + + x_offset += max_img.size[0] + 15 + + crop_x = x_offset + + + + for i in range(1,len(daily_weather)): + weekday = weekdays[(datetime.today().weekday() + i)%7] + + day_img = self.textImage( weekday.upper(), font) + weather = daily_weather[i] + main = weather['main_weather'] + + + if main == 'Clouds': + main = weather['description'] + if main == 'Rain': + main = weather['description'] + + min_img = self.textImage( "{0:.0f}".format(self.convertTemp(weather['min_temp'], daily_weathers['temp'])), small_font, r=0, g=0, b=255) + max_img = self.textImage( "{0:.0f}".format(self.convertTemp(weather['max_temp'], daily_weathers['temp'])), small_font, r=255, g=0, b=0) + + + weather_img = Image.open(weather_dir + '/small_icons/' + weather_ids[main] + '.png') + + img.paste(day_img, (x_offset, 3)) + x_offset += (day_img.size[0]) + img.paste(weather_img, (x_offset, 3)) + x_offset += (weather_img.size[0]+2) + img.paste(min_img, (x_offset, 2)) + img.paste(max_img, (x_offset, 8)) + x_offset += (max(min_img.size[0], max_img.size[0])+5) + + x_offset += 35 + + img1 = img.crop((0,0,x_offset,16)) + # img1 = img.crop((0,0,max(x_offset, crop_x) ,16)) + image_list.append(img1) + + except Exception as e: + pass + + return self.stitchImage(image_list) + def readSportsCSV(self, league): @@ -2874,6 +3422,11 @@ class StockTicker(): stock = self.getStockProfessional() weather = self.getTodayWeatherProfessional() commodities = self.getCommoditiesProfessional() + indices = self.getIndicesProfessional() + daily_forecast = self.getDailyWeatherProfessional() + sports_stats = self.getLeagueTableProfessional() + sports_upcoming = self.getLeagueProfessional() + sports_past = self.getLeagueProfessional() x_offset = 0 news.paste(weather, (x_offset, 16)) @@ -2886,6 +3439,16 @@ class StockTicker(): x_offset += forex.size[0] news.paste(commodities, (x_offset, 16)) x_offset += commodities.size[0] + news.paste(indices, (x_offset, 16)) + x_offset += indices.size[0] + news.paste(daily_forecast, (x_offset, 16)) + x_offset += daily_forecast.size[0] + news.paste(sports_stats, (x_offset, 16)) + x_offset += sports_stats.size[0] + news.paste(sports_upcoming, (x_offset, 16)) + x_offset += sports_upcoming.size[0] + news.paste(sports_past, (x_offset, 16)) + x_offset += sports_past.size[0] self.double_buffer = self.matrix.CreateFrameCanvas() while True: kill = stock_ticker.scrollImage(news, offset_x = 128) @@ -2960,6 +3523,9 @@ class StockTicker(): elif msg == 'CO': #commodities self.scrollFunctionsAnimated(['commodities', 'commodities'],animation = 'traditional') + elif msg == 'WI': #indices + self.scrollFunctionsAnimated(['indices', 'indices'],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 diff --git a/templates/index.html b/templates/index.html index 74614cb..f727df4 100644 --- a/templates/index.html +++ b/templates/index.html @@ -67,7 +67,7 @@ - + @@ -118,7 +118,7 @@ -

Version 1.1.0

+

Version 1.2.0

@@ -538,6 +538,17 @@ class="display-features-list text-white"> + {%if professional%} + + {% for f in not_displaying2 %} + +
  • {{f}}
  • + + {% endfor%} + + + {%else%} +
  • Stocks
  • Crypto
  • @@ -545,6 +556,8 @@
  • Forex
  • Commodities
  • + +
  • Indices
  • Current Weather
  • @@ -566,6 +579,8 @@
  • Sports (Team Stats)
  • + {%endif%} + @@ -669,6 +684,8 @@ + + @@ -2075,6 +2092,437 @@ + + + + + +