From 65dfcdc32186e0887e256910899a91b5abce1481 Mon Sep 17 00:00:00 2001 From: Neythen Date: Mon, 4 Oct 2021 21:39:22 +0100 Subject: [PATCH] non prof image generation finished --- api_caller.py | 22 +- csv/crypto_settings.json | 2 +- csv/current_weather.json | 2 +- csv/daily_weather.json | 2 +- csv/last_updates.json | 1 - csv/live_games.json | 2 +- csv/past_games.json | 2 +- .../future_games.json | 0 .../live_games.json | 0 .../past_games.json | 0 .../team_info.csv | 0 .../team_stats.json | 0 csv/stocks_settings.json | 2 +- csv/upcoming_games.json | 2 +- display_images/Crypto.ppm | Bin 74510 -> 73550 bytes display_images/Current Weather.ppm | Bin 54158 -> 95054 bytes display_images/Daily Forecast.ppm | Bin 75086 -> 136527 bytes display_images/Sports (Live Games).ppm | Bin 26414 -> 24686 bytes display_images/Sports (Past Games).ppm | Bin 242223 -> 211119 bytes display_images/Sports (Team Stats).ppm | Bin 294063 -> 288399 bytes display_images/Sports (Upcoming Games).ppm | Bin 10286 -> 67886 bytes display_images/Stocks.ppm | Bin 57326 -> 57326 bytes log.txt | 9 + .../Arsenal.png | Bin .../Aston Villa.png | Bin .../Brentford.png | Bin .../Brighton.png | Bin .../Burnley.png | Bin .../Chelsea.png | Bin .../Crystal Palace.png | Bin .../Everton.png | Bin .../Leeds.png | Bin .../Leicester.png | Bin .../Liverpool.png | Bin .../Man City.png | Bin .../Man United.png | Bin .../Newcastle.png | Bin .../Norwich.png | Bin .../Southampton.png | Bin .../Tottenham.png | Bin .../Watford.png | Bin .../West Ham.png | Bin .../Wolves.png | Bin stockTicker.py | 442 ++++++++++-------- 44 files changed, 282 insertions(+), 206 deletions(-) rename csv/sports/{premier_league => Premier League}/future_games.json (100%) rename csv/sports/{premier_league => Premier League}/live_games.json (100%) rename csv/sports/{premier_league => Premier League}/past_games.json (100%) rename csv/sports/{premier_league => Premier League}/team_info.csv (100%) rename csv/sports/{premier_league => Premier League}/team_stats.json (100%) rename logos/sports/{premier_league => Premier League}/Arsenal.png (100%) rename logos/sports/{premier_league => Premier League}/Aston Villa.png (100%) rename logos/sports/{premier_league => Premier League}/Brentford.png (100%) rename logos/sports/{premier_league => Premier League}/Brighton.png (100%) rename logos/sports/{premier_league => Premier League}/Burnley.png (100%) rename logos/sports/{premier_league => Premier League}/Chelsea.png (100%) rename logos/sports/{premier_league => Premier League}/Crystal Palace.png (100%) rename logos/sports/{premier_league => Premier League}/Everton.png (100%) rename logos/sports/{premier_league => Premier League}/Leeds.png (100%) rename logos/sports/{premier_league => Premier League}/Leicester.png (100%) rename logos/sports/{premier_league => Premier League}/Liverpool.png (100%) rename logos/sports/{premier_league => Premier League}/Man City.png (100%) rename logos/sports/{premier_league => Premier League}/Man United.png (100%) rename logos/sports/{premier_league => Premier League}/Newcastle.png (100%) rename logos/sports/{premier_league => Premier League}/Norwich.png (100%) rename logos/sports/{premier_league => Premier League}/Southampton.png (100%) rename logos/sports/{premier_league => Premier League}/Tottenham.png (100%) rename logos/sports/{premier_league => Premier League}/Watford.png (100%) rename logos/sports/{premier_league => Premier League}/West Ham.png (100%) rename logos/sports/{premier_league => Premier League}/Wolves.png (100%) diff --git a/api_caller.py b/api_caller.py index 20b3767..1118eb5 100644 --- a/api_caller.py +++ b/api_caller.py @@ -327,7 +327,7 @@ def updateWeather(): all_daily_settings = json.load(f) f.close() - f = open('csv/daily_weather.json', 'r') + f = open('csv/current_weather.json', 'r') all_current_settings = json.load(f) f.close() @@ -370,8 +370,8 @@ def updateWeather(): current_weather['rain_chance'] = r.json()['hourly'][0]['pop'] - if location in current_locations: - current_weathers[location] = current_weather + + current_weathers[location] = current_weather daily_weather = [] daily = r.json()['daily'] @@ -385,8 +385,8 @@ def updateWeather(): daily_weather.append(dct) - if location in daily_locations: - daily_weathers[location] = daily_weather + + daily_weathers[location] = daily_weather @@ -546,7 +546,11 @@ def checkStocks(last_update, update_frequency): closing = NY_time.replace(hour=16, minute=0, second=0, microsecond=0).replace(tzinfo=None) - symbols, stock_info = readJSON('csv/stocks_settings.json', max_stocks) + f = open('csv/stocks_settings.json', 'r') + all_stocks_settings = json.load(f) + f.close() + stock_info = all_stocks_settings['symbols'] + symbols = list(stock_info.keys()) updated = False @@ -589,8 +593,7 @@ if __name__ == '__main__': newsapi = NewsApiClient(api_key='cf08652bd17647b89aaf469a1a8198a9') - updateNews() - sys.exit() + update_frequencies = {'stocks':2, 'crypto':10, 'news':120, 'weather': 120, 'sports': 120} #minutes @@ -610,7 +613,8 @@ if __name__ == '__main__': #f.close() - + updateWeather() + sys.exit() try: f = open('csv/last_updates.json', 'r') last_updates = json.load(f) diff --git a/csv/crypto_settings.json b/csv/crypto_settings.json index d70c807..e01e2e1 100644 --- a/csv/crypto_settings.json +++ b/csv/crypto_settings.json @@ -1 +1 @@ -{"feature": "Stocks", "speed": "medium", "animation": "continuous", "percent": false, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"NEO,USD": {"current": 38.91, "24hr_change": -10.214531272448745}, "BTC,USD": {"current": 42257, "24hr_change": -6.370431167988443}, "ETH,BTC": {"current": 0.06787408, "24hr_change": -7.725740924537157}, "ADA,GBP": {"current": 1.69, "24hr_change": -0.5989543849163771}}} \ No newline at end of file +{"feature": "Stocks", "speed": "medium", "animation": "continuous", "percent": false, "point": true, "logos": true, "chart": false, "title": true, "symbols": {"NEO,USD": {"current": 43.42, "24hr_change": -3.963839231643678}, "BTC,USD": {"current": 49343, "24hr_change": 0.902025932223419}, "ETH,BTC": {"current": 0.06930671, "24hr_change": -1.7367682270496585}, "ADA,GBP": {"current": 1.62, "24hr_change": -3.549646457710461}}} \ No newline at end of file diff --git a/csv/current_weather.json b/csv/current_weather.json index 1f5bc02..4d29315 100644 --- a/csv/current_weather.json +++ b/csv/current_weather.json @@ -1 +1 @@ -{"feature": "Current Weather", "speed": "medium", "animation": "continuous", "temp": "celsius", "wind_speed": "miles/sec", "colour": "white", "city_colour": "yellow", "title": true, "locations": {"Moscow": {"main_weather": "Rain", "description": "light rain", "temp": 9.49, "min_temp": 7.65, "max_temp": 10.51, "feels_like": 7.58, "humidity": 84, "clouds": 100, "wind_speed": 3.59, "wind_direction": 183, "visibility": 10000, "uv": 0.78, "rain_chance": 0.2}, "London": {"main_weather": "Clouds", "description": "overcast clouds", "temp": 16.83, "min_temp": 16.43, "max_temp": 21.14, "feels_like": 16.97, "humidity": 92, "clouds": 90, "wind_speed": 1.54, "wind_direction": 0, "visibility": 10000, "uv": 1.35, "rain_chance": 0}, "Beijing": {"main_weather": "Clouds", "description": "overcast clouds", "temp": 22.72, "min_temp": 18.1, "max_temp": 22.92, "feels_like": 22.69, "humidity": 63, "clouds": 99, "wind_speed": 2.06, "wind_direction": 185, "visibility": 10000, "uv": 0.28, "rain_chance": 0.06}, "Tokyo": {"main_weather": "Clouds", "description": "scattered clouds", "temp": 22, "min_temp": 21.23, "max_temp": 24.98, "feels_like": 22.16, "humidity": 73, "clouds": 40, "wind_speed": 1.34, "wind_direction": 52, "visibility": 10000, "uv": 0, "rain_chance": 0.36}}, "current_weather": true} \ No newline at end of file +{"feature": "Current Weather", "speed": "medium", "animation": "continuous", "temp": "celsius", "wind_speed": "miles/sec", "colour": "white", "city_colour": "yellow", "title": true, "locations": {"Moscow": {"main_weather": "Clouds", "description": "few clouds", "temp": 4.6, "min_temp": 4.6, "max_temp": 11.07, "feels_like": 2.79, "humidity": 73, "clouds": 16, "wind_speed": 2.11, "wind_direction": 120, "visibility": 10000, "uv": 0, "rain_chance": 0}, "Beijing": {"main_weather": "Clouds", "description": "overcast clouds", "temp": 11.63, "min_temp": 11.63, "max_temp": 14.76, "feels_like": 11.28, "humidity": 93, "clouds": 100, "wind_speed": 1.1, "wind_direction": 9, "visibility": 10000, "uv": 0, "rain_chance": 0.84}, "Tokyo": {"main_weather": "Clouds", "description": "few clouds", "temp": 21.42, "min_temp": 21.42, "max_temp": 27.62, "feels_like": 21.73, "humidity": 81, "clouds": 20, "wind_speed": 0.45, "wind_direction": 291, "visibility": 10000, "uv": 0, "rain_chance": 0}, "London": {"main_weather": "Clouds", "description": "overcast clouds", "temp": 12.23, "min_temp": 11.77, "max_temp": 16.42, "feels_like": 11.91, "humidity": 92, "clouds": 91, "wind_speed": 4.01, "wind_direction": 181, "visibility": 10000, "uv": 0, "rain_chance": 0}}, "current_weather": true} \ No newline at end of file diff --git a/csv/daily_weather.json b/csv/daily_weather.json index e6d458c..eab01ea 100644 --- a/csv/daily_weather.json +++ b/csv/daily_weather.json @@ -1 +1 @@ - {"feature": "Current Weather", "speed": "medium", "animation": "continuous", "temp": "celsius", "wind_speed": "miles/sec", "colour": "white", "city_colour": "yellow", "title": true, "locations": {"Moscow": [{"main_weather": "Rain", "description": "light rain", "min_temp": 7.65, "max_temp": 10.51}, {"main_weather": "Rain", "description": "light rain", "min_temp": 8.46, "max_temp": 9.36}, {"main_weather": "Rain", "description": "light rain", "min_temp": 7.77, "max_temp": 10.32}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 6.71, "max_temp": 8.53}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 4.13, "max_temp": 9.61}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 5.87, "max_temp": 12.32}, {"main_weather": "Clouds", "description": "few clouds", "min_temp": 5.82, "max_temp": 12.78}, {"main_weather": "Clouds", "description": "scattered clouds", "min_temp": 6.06, "max_temp": 13.3}], "London": [{"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 16.43, "max_temp": 21.14}, {"main_weather": "Clouds", "description": "few clouds", "min_temp": 14.49, "max_temp": 22.91}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 13.23, "max_temp": 18.43}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 12.03, "max_temp": 17.55}, {"main_weather": "Rain", "description": "light rain", "min_temp": 8.64, "max_temp": 15.93}, {"main_weather": "Rain", "description": "light rain", "min_temp": 11.89, "max_temp": 17.45}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 12.55, "max_temp": 18.84}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 10.94, "max_temp": 15.26}], "Beijing": [{"main_weather": "Rain", "description": "light rain", "min_temp": 18.1, "max_temp": 22.92}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 17.48, "max_temp": 19.87}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 16.77, "max_temp": 25.9}, {"main_weather": "Rain", "description": "light rain", "min_temp": 18.78, "max_temp": 23.9}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 18.28, "max_temp": 28.13}, {"main_weather": "Rain", "description": "light rain", "min_temp": 17.59, "max_temp": 21.57}, {"main_weather": "Rain", "description": "light rain", "min_temp": 17.99, "max_temp": 20.7}, {"main_weather": "Rain", "description": "light rain", "min_temp": 17.22, "max_temp": 26.37}], "Tokyo": [{"main_weather": "Rain", "description": "light rain", "min_temp": 21.23, "max_temp": 24.98}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 20.36, "max_temp": 23.48}, {"main_weather": "Clouds", "description": "few clouds", "min_temp": 19.58, "max_temp": 25.58}, {"main_weather": "Clouds", "description": "scattered clouds", "min_temp": 19.32, "max_temp": 25.64}, {"main_weather": "Clouds", "description": "broken clouds", "min_temp": 19.51, "max_temp": 23.75}, {"main_weather": "Rain", "description": "light rain", "min_temp": 20.69, "max_temp": 23.92}, {"main_weather": "Rain", "description": "light rain", "min_temp": 20.13, "max_temp": 27.1}, {"main_weather": "Clouds", "description": "broken clouds", "min_temp": 20.75, "max_temp": 25.79}]}, "current_weather": true} +{"feature": "Current Weather", "speed": "medium", "animation": "continuous", "temp": "celsius", "wind_speed": "miles/sec", "colour": "white", "city_colour": "yellow", "title": true, "locations": {"Moscow": [{"main_weather": "Clouds", "description": "broken clouds", "min_temp": 4.6, "max_temp": 11.07}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 4.88, "max_temp": 11.53}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 4.11, "max_temp": 11.44}, {"main_weather": "Clouds", "description": "scattered clouds", "min_temp": 3.34, "max_temp": 10.75}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 3.99, "max_temp": 11.32}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 4.57, "max_temp": 11.12}, {"main_weather": "Clouds", "description": "broken clouds", "min_temp": 3.94, "max_temp": 9.68}, {"main_weather": "Clouds", "description": "broken clouds", "min_temp": 5.99, "max_temp": 10.77}], "Beijing": [{"main_weather": "Rain", "description": "light rain", "min_temp": 11.63, "max_temp": 14.76}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 10.22, "max_temp": 12.33}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 10.29, "max_temp": 17.61}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 11.53, "max_temp": 19.55}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 13.15, "max_temp": 19.6}, {"main_weather": "Rain", "description": "moderate rain", "min_temp": 14.29, "max_temp": 19.8}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 13.08, "max_temp": 18.87}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 11.42, "max_temp": 19.6}], "Tokyo": [{"main_weather": "Clear", "description": "clear sky", "min_temp": 21.42, "max_temp": 27.62}, {"main_weather": "Clouds", "description": "few clouds", "min_temp": 21.12, "max_temp": 26.36}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 20.3, "max_temp": 22.81}, {"main_weather": "Rain", "description": "light rain", "min_temp": 21.31, "max_temp": 26.99}, {"main_weather": "Rain", "description": "light rain", "min_temp": 20.53, "max_temp": 23.98}, {"main_weather": "Rain", "description": "light rain", "min_temp": 19.15, "max_temp": 24.43}, {"main_weather": "Clouds", "description": "few clouds", "min_temp": 21.26, "max_temp": 26.41}, {"main_weather": "Rain", "description": "light rain", "min_temp": 22.4, "max_temp": 26.43}], "London": [{"main_weather": "Rain", "description": "light rain", "min_temp": 11.77, "max_temp": 16.42}, {"main_weather": "Rain", "description": "heavy intensity rain", "min_temp": 10.89, "max_temp": 13.15}, {"main_weather": "Clear", "description": "clear sky", "min_temp": 9.54, "max_temp": 15.37}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 10.64, "max_temp": 17.51}, {"main_weather": "Clouds", "description": "overcast clouds", "min_temp": 13.65, "max_temp": 17.56}, {"main_weather": "Clouds", "description": "broken clouds", "min_temp": 14.4, "max_temp": 18.88}, {"main_weather": "Clouds", "description": "scattered clouds", "min_temp": 12.83, "max_temp": 18.66}, {"main_weather": "Clouds", "description": "broken clouds", "min_temp": 12.03, "max_temp": 19.24}]}, "current_weather": true} \ No newline at end of file diff --git a/csv/last_updates.json b/csv/last_updates.json index a3ebbae..e69de29 100644 --- a/csv/last_updates.json +++ b/csv/last_updates.json @@ -1 +0,0 @@ -{"stocks": "19/09/2021 12:09:24", "crypto": "19/09/2021 12:09:26", "news": "19/09/2021 12:09:28", "weather": "19/09/2021 12:09:26", "forex": "19/09/2021 18:09:31", "sports": "19/09/2021 12:09:29"} \ No newline at end of file diff --git a/csv/live_games.json b/csv/live_games.json index 950b28a..148ff7e 100644 --- a/csv/live_games.json +++ b/csv/live_games.json @@ -1 +1 @@ -{"feature": "Sports (Live Games)", "speed": "medium", "animation": "continuous", "title": true, "leagues": {"NFL": [{"date": "2021-09-24", "time": "23:15", "progess": "Final", "status": null, "home_team": "Houston Texans", "home_score": "9", "away_team": "Carolina Panthers", "away_score": "24"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Buffalo Bills", "home_score": "0", "away_team": "Washington", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Cleveland Browns", "home_score": "0", "away_team": "Chicago Bears", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Detroit Lions", "home_score": "0", "away_team": "Baltimore Ravens", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Tennessee Titans", "home_score": "0", "away_team": "Indianapolis Colts", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Kansas City Chiefs", "home_score": "0", "away_team": "Los Angeles Chargers", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "New England Patriots", "home_score": "0", "away_team": "New Orleans Saints", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "New York Giants", "home_score": "0", "away_team": "Atlanta Falcons", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Pittsburgh Steelers", "home_score": "0", "away_team": "Cincinnati Bengals", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Jacksonville Jaguars", "home_score": "0", "away_team": "Arizona Cardinals", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Denver Broncos", "home_score": "0", "away_team": "New York Jets", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Las Vegas Raiders", "home_score": "0", "away_team": "Miami Dolphins", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Los Angeles Rams", "home_score": "0", "away_team": "Tampa Bay Buccaneers", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Minnesota Vikings", "home_score": "0", "away_team": "Seattle Seahawks", "away_score": "0"}, {"date": "2021-09-27", "time": "23:15", "progess": "pre", "status": null, "home_team": "San Francisco 49ers", "home_score": "0", "away_team": "Green Bay Packers", "away_score": "0"}, {"date": "2021-09-28", "time": "23:15", "progess": "pre", "status": null, "home_team": "Dallas Cowboys", "home_score": "0", "away_team": "Philadelphia Eagles", "away_score": "0"}], "NBA": [{"date": "2021-09-24", "time": "23:15", "progess": "Final", "status": null, "home_team": "Houston Texans", "home_score": "9", "away_team": "Carolina Panthers", "away_score": "24"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Buffalo Bills", "home_score": "0", "away_team": "Washington", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Cleveland Browns", "home_score": "0", "away_team": "Chicago Bears", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Detroit Lions", "home_score": "0", "away_team": "Baltimore Ravens", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Tennessee Titans", "home_score": "0", "away_team": "Indianapolis Colts", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Kansas City Chiefs", "home_score": "0", "away_team": "Los Angeles Chargers", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "New England Patriots", "home_score": "0", "away_team": "New Orleans Saints", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "New York Giants", "home_score": "0", "away_team": "Atlanta Falcons", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Pittsburgh Steelers", "home_score": "0", "away_team": "Cincinnati Bengals", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Jacksonville Jaguars", "home_score": "0", "away_team": "Arizona Cardinals", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Denver Broncos", "home_score": "0", "away_team": "New York Jets", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Las Vegas Raiders", "home_score": "0", "away_team": "Miami Dolphins", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Los Angeles Rams", "home_score": "0", "away_team": "Tampa Bay Buccaneers", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Minnesota Vikings", "home_score": "0", "away_team": "Seattle Seahawks", "away_score": "0"}, {"date": "2021-09-27", "time": "23:15", "progess": "pre", "status": null, "home_team": "San Francisco 49ers", "home_score": "0", "away_team": "Green Bay Packers", "away_score": "0"}, {"date": "2021-09-28", "time": "23:15", "progess": "pre", "status": null, "home_team": "Dallas Cowboys", "home_score": "0", "away_team": "Philadelphia Eagles", "away_score": "0"}], "Premier League": [{"date": "2021-09-24", "time": "23:15", "progess": "Final", "status": null, "home_team": "Houston Texans", "home_score": "9", "away_team": "Carolina Panthers", "away_score": "24"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Buffalo Bills", "home_score": "0", "away_team": "Washington", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Cleveland Browns", "home_score": "0", "away_team": "Chicago Bears", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Detroit Lions", "home_score": "0", "away_team": "Baltimore Ravens", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Tennessee Titans", "home_score": "0", "away_team": "Indianapolis Colts", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Kansas City Chiefs", "home_score": "0", "away_team": "Los Angeles Chargers", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "New England Patriots", "home_score": "0", "away_team": "New Orleans Saints", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "New York Giants", "home_score": "0", "away_team": "Atlanta Falcons", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Pittsburgh Steelers", "home_score": "0", "away_team": "Cincinnati Bengals", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Jacksonville Jaguars", "home_score": "0", "away_team": "Arizona Cardinals", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Denver Broncos", "home_score": "0", "away_team": "New York Jets", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Las Vegas Raiders", "home_score": "0", "away_team": "Miami Dolphins", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Los Angeles Rams", "home_score": "0", "away_team": "Tampa Bay Buccaneers", "away_score": "0"}, {"date": "2021-09-26", "time": "23:15", "progess": "pre", "status": null, "home_team": "Minnesota Vikings", "home_score": "0", "away_team": "Seattle Seahawks", "away_score": "0"}, {"date": "2021-09-27", "time": "23:15", "progess": "pre", "status": null, "home_team": "San Francisco 49ers", "home_score": "0", "away_team": "Green Bay Packers", "away_score": "0"}, {"date": "2021-09-28", "time": "23:15", "progess": "pre", "status": null, "home_team": "Dallas Cowboys", "home_score": "0", "away_team": "Philadelphia Eagles", "away_score": "0"}]}} \ No newline at end of file +{"feature": "Sports (Live Games)", "speed": "medium", "animation": "continuous", "title": true, "leagues": {"NFL": [{"date": "2021-10-05", "time": "23:30", "progess": "pre", "status": null, "home_team": "Los Angeles Chargers", "home_score": "0", "away_team": "Las Vegas Raiders", "away_score": "0"}, {"date": "2021-10-01", "time": "23:30", "progess": "Final", "status": null, "home_team": "Cincinnati Bengals", "home_score": "24", "away_team": "Jacksonville Jaguars", "away_score": "21"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Atlanta Falcons", "home_score": "30", "away_team": "Washington", "away_score": "34"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Buffalo Bills", "home_score": "40", "away_team": "Houston Texans", "away_score": "0"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Chicago Bears", "home_score": "24", "away_team": "Detroit Lions", "away_score": "14"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Dallas Cowboys", "home_score": "36", "away_team": "Carolina Panthers", "away_score": "28"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Miami Dolphins", "home_score": "17", "away_team": "Indianapolis Colts", "away_score": "27"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Minnesota Vikings", "home_score": "7", "away_team": "Cleveland Browns", "away_score": "14"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final/OT", "status": null, "home_team": "New Orleans Saints", "home_score": "21", "away_team": "New York Giants", "away_score": "27"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final/OT", "status": null, "home_team": "New York Jets", "home_score": "27", "away_team": "Tennessee Titans", "away_score": "24"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Philadelphia Eagles", "home_score": "30", "away_team": "Kansas City Chiefs", "away_score": "42"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Los Angeles Rams", "home_score": "20", "away_team": "Arizona Cardinals", "away_score": "37"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "San Francisco 49ers", "home_score": "21", "away_team": "Seattle Seahawks", "away_score": "28"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Denver Broncos", "home_score": "7", "away_team": "Baltimore Ravens", "away_score": "23"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Green Bay Packers", "home_score": "27", "away_team": "Pittsburgh Steelers", "away_score": "17"}, {"date": "2021-10-04", "time": "23:30", "progess": "Final", "status": null, "home_team": "New England Patriots", "home_score": "17", "away_team": "Tampa Bay Buccaneers", "away_score": "19"}], "NBA": [{"date": "2021-10-05", "time": "23:30", "progess": "pre", "status": null, "home_team": "Los Angeles Chargers", "home_score": "0", "away_team": "Las Vegas Raiders", "away_score": "0"}, {"date": "2021-10-01", "time": "23:30", "progess": "Final", "status": null, "home_team": "Cincinnati Bengals", "home_score": "24", "away_team": "Jacksonville Jaguars", "away_score": "21"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Atlanta Falcons", "home_score": "30", "away_team": "Washington", "away_score": "34"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Buffalo Bills", "home_score": "40", "away_team": "Houston Texans", "away_score": "0"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Chicago Bears", "home_score": "24", "away_team": "Detroit Lions", "away_score": "14"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Dallas Cowboys", "home_score": "36", "away_team": "Carolina Panthers", "away_score": "28"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Miami Dolphins", "home_score": "17", "away_team": "Indianapolis Colts", "away_score": "27"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Minnesota Vikings", "home_score": "7", "away_team": "Cleveland Browns", "away_score": "14"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final/OT", "status": null, "home_team": "New Orleans Saints", "home_score": "21", "away_team": "New York Giants", "away_score": "27"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final/OT", "status": null, "home_team": "New York Jets", "home_score": "27", "away_team": "Tennessee Titans", "away_score": "24"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Philadelphia Eagles", "home_score": "30", "away_team": "Kansas City Chiefs", "away_score": "42"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Los Angeles Rams", "home_score": "20", "away_team": "Arizona Cardinals", "away_score": "37"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "San Francisco 49ers", "home_score": "21", "away_team": "Seattle Seahawks", "away_score": "28"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Denver Broncos", "home_score": "7", "away_team": "Baltimore Ravens", "away_score": "23"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Green Bay Packers", "home_score": "27", "away_team": "Pittsburgh Steelers", "away_score": "17"}, {"date": "2021-10-04", "time": "23:30", "progess": "Final", "status": null, "home_team": "New England Patriots", "home_score": "17", "away_team": "Tampa Bay Buccaneers", "away_score": "19"}], "Premier League": [{"date": "2021-10-05", "time": "23:30", "progess": "pre", "status": null, "home_team": "Los Angeles Chargers", "home_score": "0", "away_team": "Las Vegas Raiders", "away_score": "0"}, {"date": "2021-10-01", "time": "23:30", "progess": "Final", "status": null, "home_team": "Cincinnati Bengals", "home_score": "24", "away_team": "Jacksonville Jaguars", "away_score": "21"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Atlanta Falcons", "home_score": "30", "away_team": "Washington", "away_score": "34"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Buffalo Bills", "home_score": "40", "away_team": "Houston Texans", "away_score": "0"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Chicago Bears", "home_score": "24", "away_team": "Detroit Lions", "away_score": "14"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Dallas Cowboys", "home_score": "36", "away_team": "Carolina Panthers", "away_score": "28"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Miami Dolphins", "home_score": "17", "away_team": "Indianapolis Colts", "away_score": "27"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Minnesota Vikings", "home_score": "7", "away_team": "Cleveland Browns", "away_score": "14"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final/OT", "status": null, "home_team": "New Orleans Saints", "home_score": "21", "away_team": "New York Giants", "away_score": "27"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final/OT", "status": null, "home_team": "New York Jets", "home_score": "27", "away_team": "Tennessee Titans", "away_score": "24"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Philadelphia Eagles", "home_score": "30", "away_team": "Kansas City Chiefs", "away_score": "42"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Los Angeles Rams", "home_score": "20", "away_team": "Arizona Cardinals", "away_score": "37"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "San Francisco 49ers", "home_score": "21", "away_team": "Seattle Seahawks", "away_score": "28"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Denver Broncos", "home_score": "7", "away_team": "Baltimore Ravens", "away_score": "23"}, {"date": "2021-10-03", "time": "23:30", "progess": "Final", "status": null, "home_team": "Green Bay Packers", "home_score": "27", "away_team": "Pittsburgh Steelers", "away_score": "17"}, {"date": "2021-10-04", "time": "23:30", "progess": "Final", "status": null, "home_team": "New England Patriots", "home_score": "17", "away_team": "Tampa Bay Buccaneers", "away_score": "19"}]}} \ No newline at end of file diff --git a/csv/past_games.json b/csv/past_games.json index e8c02d9..98f73d4 100644 --- a/csv/past_games.json +++ b/csv/past_games.json @@ -1 +1 @@ -{"feature": "Sports (Past Games)", "speed": "medium", "animation": "continuous", "title": true, "leagues": {"NFL": [{"date": "2021-09-24", "time": "00:20:00", "round": "3", "home_team": "Houston Texans", "home_score": "9", "away_team": "Carolina Panthers", "away_score": "24"}, {"date": "2021-09-21", "time": "00:15:00", "round": "2", "home_team": "Green Bay Packers", "home_score": "35", "away_team": "Detroit Lions", "away_score": "17"}, {"date": "2021-09-20", "time": "00:20:00", "round": "2", "home_team": "Baltimore Ravens", "home_score": "36", "away_team": "Kansas City Chiefs", "away_score": "35"}, {"date": "2021-09-19", "time": "20:25:00", "round": "2", "home_team": "Seattle Seahawks", "home_score": "30", "away_team": "Tennessee Titans", "away_score": "33"}, {"date": "2021-09-19", "time": "20:25:00", "round": "2", "home_team": "Los Angeles Chargers", "home_score": "17", "away_team": "Dallas Cowboys", "away_score": "20"}, {"date": "2021-09-19", "time": "20:05:00", "round": "2", "home_team": "Tampa Bay Buccaneers", "home_score": "48", "away_team": "Atlanta Falcons", "away_score": "25"}, {"date": "2021-09-19", "time": "20:05:00", "round": "2", "home_team": "Arizona Cardinals", "home_score": "34", "away_team": "Minnesota Vikings", "away_score": "33"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Pittsburgh Steelers", "home_score": "17", "away_team": "Las Vegas Raiders", "away_score": "26"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Philadelphia Eagles", "home_score": "11", "away_team": "San Francisco 49ers", "away_score": "17"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "New York Jets", "home_score": "6", "away_team": "New England Patriots", "away_score": "25"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Miami Dolphins", "home_score": "0", "away_team": "Buffalo Bills", "away_score": "35"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Jacksonville Jaguars", "home_score": "13", "away_team": "Denver Broncos", "away_score": "23"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Indianapolis Colts", "home_score": "24", "away_team": "Los Angeles Rams", "away_score": "27"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Cleveland Browns", "home_score": "31", "away_team": "Houston Texans", "away_score": "21"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Chicago Bears", "home_score": "20", "away_team": "Cincinnati Bengals", "away_score": "17"}], "NBA": [{"date": "2021-09-24", "time": "00:20:00", "round": "3", "home_team": "Houston Texans", "home_score": "9", "away_team": "Carolina Panthers", "away_score": "24"}, {"date": "2021-09-21", "time": "00:15:00", "round": "2", "home_team": "Green Bay Packers", "home_score": "35", "away_team": "Detroit Lions", "away_score": "17"}, {"date": "2021-09-20", "time": "00:20:00", "round": "2", "home_team": "Baltimore Ravens", "home_score": "36", "away_team": "Kansas City Chiefs", "away_score": "35"}, {"date": "2021-09-19", "time": "20:25:00", "round": "2", "home_team": "Seattle Seahawks", "home_score": "30", "away_team": "Tennessee Titans", "away_score": "33"}, {"date": "2021-09-19", "time": "20:25:00", "round": "2", "home_team": "Los Angeles Chargers", "home_score": "17", "away_team": "Dallas Cowboys", "away_score": "20"}, {"date": "2021-09-19", "time": "20:05:00", "round": "2", "home_team": "Tampa Bay Buccaneers", "home_score": "48", "away_team": "Atlanta Falcons", "away_score": "25"}, {"date": "2021-09-19", "time": "20:05:00", "round": "2", "home_team": "Arizona Cardinals", "home_score": "34", "away_team": "Minnesota Vikings", "away_score": "33"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Pittsburgh Steelers", "home_score": "17", "away_team": "Las Vegas Raiders", "away_score": "26"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Philadelphia Eagles", "home_score": "11", "away_team": "San Francisco 49ers", "away_score": "17"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "New York Jets", "home_score": "6", "away_team": "New England Patriots", "away_score": "25"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Miami Dolphins", "home_score": "0", "away_team": "Buffalo Bills", "away_score": "35"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Jacksonville Jaguars", "home_score": "13", "away_team": "Denver Broncos", "away_score": "23"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Indianapolis Colts", "home_score": "24", "away_team": "Los Angeles Rams", "away_score": "27"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Cleveland Browns", "home_score": "31", "away_team": "Houston Texans", "away_score": "21"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Chicago Bears", "home_score": "20", "away_team": "Cincinnati Bengals", "away_score": "17"}], "Premier League": [{"date": "2021-09-24", "time": "00:20:00", "round": "3", "home_team": "Houston Texans", "home_score": "9", "away_team": "Carolina Panthers", "away_score": "24"}, {"date": "2021-09-21", "time": "00:15:00", "round": "2", "home_team": "Green Bay Packers", "home_score": "35", "away_team": "Detroit Lions", "away_score": "17"}, {"date": "2021-09-20", "time": "00:20:00", "round": "2", "home_team": "Baltimore Ravens", "home_score": "36", "away_team": "Kansas City Chiefs", "away_score": "35"}, {"date": "2021-09-19", "time": "20:25:00", "round": "2", "home_team": "Seattle Seahawks", "home_score": "30", "away_team": "Tennessee Titans", "away_score": "33"}, {"date": "2021-09-19", "time": "20:25:00", "round": "2", "home_team": "Los Angeles Chargers", "home_score": "17", "away_team": "Dallas Cowboys", "away_score": "20"}, {"date": "2021-09-19", "time": "20:05:00", "round": "2", "home_team": "Tampa Bay Buccaneers", "home_score": "48", "away_team": "Atlanta Falcons", "away_score": "25"}, {"date": "2021-09-19", "time": "20:05:00", "round": "2", "home_team": "Arizona Cardinals", "home_score": "34", "away_team": "Minnesota Vikings", "away_score": "33"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Pittsburgh Steelers", "home_score": "17", "away_team": "Las Vegas Raiders", "away_score": "26"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Philadelphia Eagles", "home_score": "11", "away_team": "San Francisco 49ers", "away_score": "17"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "New York Jets", "home_score": "6", "away_team": "New England Patriots", "away_score": "25"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Miami Dolphins", "home_score": "0", "away_team": "Buffalo Bills", "away_score": "35"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Jacksonville Jaguars", "home_score": "13", "away_team": "Denver Broncos", "away_score": "23"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Indianapolis Colts", "home_score": "24", "away_team": "Los Angeles Rams", "away_score": "27"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Cleveland Browns", "home_score": "31", "away_team": "Houston Texans", "away_score": "21"}, {"date": "2021-09-19", "time": "17:00:00", "round": "2", "home_team": "Chicago Bears", "home_score": "20", "away_team": "Cincinnati Bengals", "away_score": "17"}]}} \ No newline at end of file +{"feature": "Sports (Past Games)", "speed": "medium", "animation": "continuous", "title": true, "leagues": {"NFL": [{"date": "2021-10-03", "time": "20:25:00", "round": "4", "home_team": "Green Bay Packers", "home_score": "27", "away_team": "Pittsburgh Steelers", "away_score": "17"}, {"date": "2021-10-03", "time": "20:25:00", "round": "4", "home_team": "Denver Broncos", "home_score": "7", "away_team": "Baltimore Ravens", "away_score": "23"}, {"date": "2021-10-03", "time": "20:05:00", "round": "4", "home_team": "San Francisco 49ers", "home_score": "21", "away_team": "Seattle Seahawks", "away_score": "28"}, {"date": "2021-10-03", "time": "20:05:00", "round": "4", "home_team": "Los Angeles Rams", "home_score": "20", "away_team": "Arizona Cardinals", "away_score": "37"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Philadelphia Eagles", "home_score": "30", "away_team": "Kansas City Chiefs", "away_score": "42"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "New York Jets", "home_score": "27", "away_team": "Tennessee Titans", "away_score": "24"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "New Orleans Saints", "home_score": "21", "away_team": "New York Giants", "away_score": "27"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Minnesota Vikings", "home_score": "7", "away_team": "Cleveland Browns", "away_score": "14"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Miami Dolphins", "home_score": "17", "away_team": "Indianapolis Colts", "away_score": "27"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Dallas Cowboys", "home_score": "36", "away_team": "Carolina Panthers", "away_score": "28"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Chicago Bears", "home_score": "24", "away_team": "Detroit Lions", "away_score": "14"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Buffalo Bills", "home_score": "40", "away_team": "Houston Texans", "away_score": "0"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Atlanta Falcons", "home_score": "30", "away_team": "Washington", "away_score": "34"}, {"date": "2021-10-01", "time": "00:20:00", "round": "4", "home_team": "Cincinnati Bengals", "home_score": "24", "away_team": "Jacksonville Jaguars", "away_score": "21"}, {"date": "2021-09-28", "time": "00:15:00", "round": "3", "home_team": "Dallas Cowboys", "home_score": "41", "away_team": "Philadelphia Eagles", "away_score": "21"}], "NBA": [{"date": "2021-10-03", "time": "20:25:00", "round": "4", "home_team": "Green Bay Packers", "home_score": "27", "away_team": "Pittsburgh Steelers", "away_score": "17"}, {"date": "2021-10-03", "time": "20:25:00", "round": "4", "home_team": "Denver Broncos", "home_score": "7", "away_team": "Baltimore Ravens", "away_score": "23"}, {"date": "2021-10-03", "time": "20:05:00", "round": "4", "home_team": "San Francisco 49ers", "home_score": "21", "away_team": "Seattle Seahawks", "away_score": "28"}, {"date": "2021-10-03", "time": "20:05:00", "round": "4", "home_team": "Los Angeles Rams", "home_score": "20", "away_team": "Arizona Cardinals", "away_score": "37"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Philadelphia Eagles", "home_score": "30", "away_team": "Kansas City Chiefs", "away_score": "42"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "New York Jets", "home_score": "27", "away_team": "Tennessee Titans", "away_score": "24"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "New Orleans Saints", "home_score": "21", "away_team": "New York Giants", "away_score": "27"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Minnesota Vikings", "home_score": "7", "away_team": "Cleveland Browns", "away_score": "14"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Miami Dolphins", "home_score": "17", "away_team": "Indianapolis Colts", "away_score": "27"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Dallas Cowboys", "home_score": "36", "away_team": "Carolina Panthers", "away_score": "28"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Chicago Bears", "home_score": "24", "away_team": "Detroit Lions", "away_score": "14"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Buffalo Bills", "home_score": "40", "away_team": "Houston Texans", "away_score": "0"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Atlanta Falcons", "home_score": "30", "away_team": "Washington", "away_score": "34"}, {"date": "2021-10-01", "time": "00:20:00", "round": "4", "home_team": "Cincinnati Bengals", "home_score": "24", "away_team": "Jacksonville Jaguars", "away_score": "21"}, {"date": "2021-09-28", "time": "00:15:00", "round": "3", "home_team": "Dallas Cowboys", "home_score": "41", "away_team": "Philadelphia Eagles", "away_score": "21"}], "Premier League": [{"date": "2021-10-03", "time": "20:25:00", "round": "4", "home_team": "Green Bay Packers", "home_score": "27", "away_team": "Pittsburgh Steelers", "away_score": "17"}, {"date": "2021-10-03", "time": "20:25:00", "round": "4", "home_team": "Denver Broncos", "home_score": "7", "away_team": "Baltimore Ravens", "away_score": "23"}, {"date": "2021-10-03", "time": "20:05:00", "round": "4", "home_team": "San Francisco 49ers", "home_score": "21", "away_team": "Seattle Seahawks", "away_score": "28"}, {"date": "2021-10-03", "time": "20:05:00", "round": "4", "home_team": "Los Angeles Rams", "home_score": "20", "away_team": "Arizona Cardinals", "away_score": "37"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Philadelphia Eagles", "home_score": "30", "away_team": "Kansas City Chiefs", "away_score": "42"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "New York Jets", "home_score": "27", "away_team": "Tennessee Titans", "away_score": "24"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "New Orleans Saints", "home_score": "21", "away_team": "New York Giants", "away_score": "27"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Minnesota Vikings", "home_score": "7", "away_team": "Cleveland Browns", "away_score": "14"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Miami Dolphins", "home_score": "17", "away_team": "Indianapolis Colts", "away_score": "27"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Dallas Cowboys", "home_score": "36", "away_team": "Carolina Panthers", "away_score": "28"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Chicago Bears", "home_score": "24", "away_team": "Detroit Lions", "away_score": "14"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Buffalo Bills", "home_score": "40", "away_team": "Houston Texans", "away_score": "0"}, {"date": "2021-10-03", "time": "17:00:00", "round": "4", "home_team": "Atlanta Falcons", "home_score": "30", "away_team": "Washington", "away_score": "34"}, {"date": "2021-10-01", "time": "00:20:00", "round": "4", "home_team": "Cincinnati Bengals", "home_score": "24", "away_team": "Jacksonville Jaguars", "away_score": "21"}, {"date": "2021-09-28", "time": "00:15:00", "round": "3", "home_team": "Dallas Cowboys", "home_score": "41", "away_team": "Philadelphia Eagles", "away_score": "21"}]}} \ No newline at end of file diff --git a/csv/sports/premier_league/future_games.json b/csv/sports/Premier League/future_games.json similarity index 100% rename from csv/sports/premier_league/future_games.json rename to csv/sports/Premier League/future_games.json diff --git a/csv/sports/premier_league/live_games.json b/csv/sports/Premier League/live_games.json similarity index 100% rename from csv/sports/premier_league/live_games.json rename to csv/sports/Premier League/live_games.json diff --git a/csv/sports/premier_league/past_games.json b/csv/sports/Premier League/past_games.json similarity index 100% rename from csv/sports/premier_league/past_games.json rename to csv/sports/Premier League/past_games.json diff --git a/csv/sports/premier_league/team_info.csv b/csv/sports/Premier League/team_info.csv similarity index 100% rename from csv/sports/premier_league/team_info.csv rename to csv/sports/Premier League/team_info.csv diff --git a/csv/sports/premier_league/team_stats.json b/csv/sports/Premier League/team_stats.json similarity index 100% rename from csv/sports/premier_league/team_stats.json rename to csv/sports/Premier League/team_stats.json diff --git a/csv/stocks_settings.json b/csv/stocks_settings.json index 2a0039b..100b5c1 100644 --- a/csv/stocks_settings.json +++ b/csv/stocks_settings.json @@ -1 +1 @@ -{"feature": "Stocks", "speed": "medium", "animation": "continuous", "percent": true, "point": false, "logos": true, "chart": false, "title": true, "symbols": {"MSFT": {"current": 299.35, "opening": 298.21}, "GOOG": {"current": 2854.185, "opening": 2821.99}}} \ No newline at end of file +{"feature": "Stocks", "speed": "medium", "animation": "continuous", "percent": true, "point": false, "logos": true, "chart": false, "title": true, "symbols": {"MSFT": {"current": 282.63, "opening": 287.28}, "GOOG": {"current": 2665.2, "opening": 2713.99}}} \ No newline at end of file diff --git a/csv/upcoming_games.json b/csv/upcoming_games.json index 836a2d5..36ca669 100644 --- a/csv/upcoming_games.json +++ b/csv/upcoming_games.json @@ -1 +1 @@ -{"feature": "Sports (Upcoming Games)", "speed": "medium", "animation": "continuous", "title": true, "leagues": {"NFL": [{"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Buffalo Bills", "home_score": "0", "away_team": "Washington", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Cleveland Browns", "home_score": "0", "away_team": "Chicago Bears", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Detroit Lions", "home_score": "0", "away_team": "Baltimore Ravens", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Jacksonville Jaguars", "home_score": "0", "away_team": "Arizona Cardinals", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Kansas City Chiefs", "home_score": "0", "away_team": "Los Angeles Chargers", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "New England Patriots", "home_score": "0", "away_team": "New Orleans Saints", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "New York Giants", "home_score": "0", "away_team": "Atlanta Falcons", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Pittsburgh Steelers", "home_score": "0", "away_team": "Cincinnati Bengals", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Tennessee Titans", "home_score": "0", "away_team": "Indianapolis Colts", "away_score": "0"}, {"date": "2021-09-26", "time": "20:05:00", "round": "3", "home_team": "Denver Broncos", "home_score": "0", "away_team": "New York Jets", "away_score": "0"}, {"date": "2021-09-26", "time": "20:05:00", "round": "3", "home_team": "Las Vegas Raiders", "home_score": "0", "away_team": "Miami Dolphins", "away_score": "0"}, {"date": "2021-09-26", "time": "20:25:00", "round": "3", "home_team": "Los Angeles Rams", "home_score": "0", "away_team": "Tampa Bay Buccaneers", "away_score": "0"}, {"date": "2021-09-26", "time": "20:25:00", "round": "3", "home_team": "Minnesota Vikings", "home_score": "0", "away_team": "Seattle Seahawks", "away_score": "0"}, {"date": "2021-09-27", "time": "00:20:00", "round": "3", "home_team": "San Francisco 49ers", "home_score": "0", "away_team": "Green Bay Packers", "away_score": "0"}, {"date": "2021-09-28", "time": "00:15:00", "round": "3", "home_team": "Dallas Cowboys", "home_score": "0", "away_team": "Philadelphia Eagles", "away_score": "0"}], "NBA": [{"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Buffalo Bills", "home_score": "0", "away_team": "Washington", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Cleveland Browns", "home_score": "0", "away_team": "Chicago Bears", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Detroit Lions", "home_score": "0", "away_team": "Baltimore Ravens", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Jacksonville Jaguars", "home_score": "0", "away_team": "Arizona Cardinals", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Kansas City Chiefs", "home_score": "0", "away_team": "Los Angeles Chargers", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "New England Patriots", "home_score": "0", "away_team": "New Orleans Saints", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "New York Giants", "home_score": "0", "away_team": "Atlanta Falcons", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Pittsburgh Steelers", "home_score": "0", "away_team": "Cincinnati Bengals", "away_score": "0"}, {"date": "2021-09-26", "time": "17:00:00", "round": "3", "home_team": "Tennessee Titans", "home_score": "0", "away_team": "Indianapolis Colts", "away_score": "0"}, {"date": "2021-09-26", "time": "20:05:00", "round": "3", "home_team": "Denver Broncos", "home_score": "0", "away_team": "New York Jets", "away_score": "0"}, {"date": "2021-09-26", "time": "20:05:00", "round": "3", "home_team": "Las Vegas Raiders", "home_score": "0", "away_team": "Miami Dolphins", "away_score": "0"}, {"date": "2021-09-26", "time": "20:25:00", "round": "3", "home_team": "Los Angeles Rams", "home_score": "0", "away_team": "Tampa Bay Buccaneers", "away_score": "0"}, {"date": "2021-09-26", "time": "20:25:00", "round": "3", "home_team": "Minnesota Vikings", "home_score": "0", "away_team": "Seattle Seahawks", "away_score": "0"}, {"date": "2021-09-27", "time": "00:20:00", "round": "3", "home_team": "San Francisco 49ers", "home_score": "0", "away_team": "Green Bay Packers", "away_score": "0"}, {"date": "2021-09-28", "time": "00:15:00", "round": "3", "home_team": "Dallas Cowboys", "home_score": "0", "away_team": "Philadelphia Eagles", "away_score": "0"}]}} \ No newline at end of file +{"feature": "Sports (Upcoming Games)", "speed": "medium", "animation": "continuous", "title": true, "leagues": {"NFL": [{"date": "2021-10-04", "time": "00:20:00", "round": "4", "home_team": "New England Patriots", "home_score": "17", "away_team": "Tampa Bay Buccaneers", "away_score": "19"}, {"date": "2021-10-05", "time": "00:15:00", "round": "4", "home_team": "Los Angeles Chargers", "home_score": "0", "away_team": "Las Vegas Raiders", "away_score": "0"}, {"date": "2021-10-08", "time": "00:20:00", "round": "5", "home_team": "Seattle Seahawks", "home_score": null, "away_team": "Los Angeles Rams", "away_score": null}, {"date": "2021-10-10", "time": "13:30:00", "round": "5", "home_team": "Atlanta Falcons", "home_score": null, "away_team": "New York Jets", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Carolina Panthers", "home_score": null, "away_team": "Philadelphia Eagles", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Cincinnati Bengals", "home_score": null, "away_team": "Green Bay Packers", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Houston Texans", "home_score": null, "away_team": "New England Patriots", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Jacksonville Jaguars", "home_score": null, "away_team": "Tennessee Titans", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Minnesota Vikings", "home_score": null, "away_team": "Detroit Lions", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Pittsburgh Steelers", "home_score": null, "away_team": "Denver Broncos", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Tampa Bay Buccaneers", "home_score": null, "away_team": "Miami Dolphins", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Washington", "home_score": null, "away_team": "New Orleans Saints", "away_score": null}, {"date": "2021-10-10", "time": "20:05:00", "round": "5", "home_team": "Las Vegas Raiders", "home_score": null, "away_team": "Chicago Bears", "away_score": null}, {"date": "2021-10-10", "time": "20:05:00", "round": "5", "home_team": "Los Angeles Chargers", "home_score": null, "away_team": "Cleveland Browns", "away_score": null}, {"date": "2021-10-10", "time": "20:25:00", "round": "5", "home_team": "Arizona Cardinals", "home_score": null, "away_team": "San Francisco 49ers", "away_score": null}], "NBA": [{"date": "2021-10-04", "time": "00:20:00", "round": "4", "home_team": "New England Patriots", "home_score": "17", "away_team": "Tampa Bay Buccaneers", "away_score": "19"}, {"date": "2021-10-05", "time": "00:15:00", "round": "4", "home_team": "Los Angeles Chargers", "home_score": "0", "away_team": "Las Vegas Raiders", "away_score": "0"}, {"date": "2021-10-08", "time": "00:20:00", "round": "5", "home_team": "Seattle Seahawks", "home_score": null, "away_team": "Los Angeles Rams", "away_score": null}, {"date": "2021-10-10", "time": "13:30:00", "round": "5", "home_team": "Atlanta Falcons", "home_score": null, "away_team": "New York Jets", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Carolina Panthers", "home_score": null, "away_team": "Philadelphia Eagles", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Cincinnati Bengals", "home_score": null, "away_team": "Green Bay Packers", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Houston Texans", "home_score": null, "away_team": "New England Patriots", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Jacksonville Jaguars", "home_score": null, "away_team": "Tennessee Titans", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Minnesota Vikings", "home_score": null, "away_team": "Detroit Lions", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Pittsburgh Steelers", "home_score": null, "away_team": "Denver Broncos", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Tampa Bay Buccaneers", "home_score": null, "away_team": "Miami Dolphins", "away_score": null}, {"date": "2021-10-10", "time": "17:00:00", "round": "5", "home_team": "Washington", "home_score": null, "away_team": "New Orleans Saints", "away_score": null}, {"date": "2021-10-10", "time": "20:05:00", "round": "5", "home_team": "Las Vegas Raiders", "home_score": null, "away_team": "Chicago Bears", "away_score": null}, {"date": "2021-10-10", "time": "20:05:00", "round": "5", "home_team": "Los Angeles Chargers", "home_score": null, "away_team": "Cleveland Browns", "away_score": null}, {"date": "2021-10-10", "time": "20:25:00", "round": "5", "home_team": "Arizona Cardinals", "home_score": null, "away_team": "San Francisco 49ers", "away_score": null}]}} \ No newline at end of file diff --git a/display_images/Crypto.ppm b/display_images/Crypto.ppm index 9d77fa0afc57fd9cddcce6a9ad8eb9ead7434f3b..01ac48460cefa28c3132119ca50d282633ad4d10 100755 GIT binary patch delta 3362 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 diff --git a/display_images/Current Weather.ppm b/display_images/Current Weather.ppm index e1a18a4b4ca7158f86d1a66ba4f0ae7ae1def1d9..864d219d654d6a9052872b7d2a1f7cd63061efbc 100755 GIT binary patch literal 95054 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 I@aA^le_?BBd;kCd diff --git a/display_images/Daily Forecast.ppm b/display_images/Daily Forecast.ppm index b93c7855eea57ff96d4e1c541db18f49d3db564b..9f044189d1f1182778e76a846f5f708c97ecb6f9 100755 GIT binary patch literal 136527 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 Oq6Z5ET)*Ty|Nj9w?saki literal 26414 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 diff --git a/display_images/Sports (Past Games).ppm b/display_images/Sports (Past Games).ppm index 91336286fba6ca3449038c07914abd9c88d80aab..722cec7021bd075a82fc8d039d8c0e5d2980177c 100755 GIT binary patch literal 211119 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 Wjc?pd1%cv$rvK=hKE<;?;Qs+x8b{Os literal 242223 zcmeEP1$-1o7Z2|48mv(GT3idk-QC^YAvl5H?rsHw2X}Yc#zP1W!QI`z|7DWb$L!wT z<;ZRBO7?eM{!i!4o1NJ$kJ+tVIBxzz`3qz!kRN{*it7-0gm(t62W$@t*na%*(m<~b zO5c}#H=jPX;-ZiH^|RY=1nyQUNStrM2WNsoq_&jQ2x!}q8i3?kBDtnE_Dx&dD?vWb zczJR5%Tg{NU+r@R>YmM6)jMfn12bMeufzqlJ?J16y~Ekd%WK@YaV=W3s93RL@!+F! z<;tyEwVEshJ;=GH>9Jxwe$l2x!}q8UXh!Fz0YhWBB!(H@^O7mo8s1dhEE7 zqg^fdjhi_6FApzc{=20=aSRTu(nj0 zVarBVw4!WF>0g6GPQrcF(rENYM2Rb{k6vm`)RJ!aMF~E05Tn$Zq?Oi($-gpz;E)Gx zDX9_Awk0)yuzKdU97oPd%7%7IwWZ{Qfc`_tn-sX-R=wV|M@n0&>=g8gsk9}L0AW&=Y=4}5{N&m8y~karF1O%!`ftDM z_is<$xa3TLSK72`9iqi@NRZwkW&%T0u@XBZ$mkFyibLEK4hbFq{l!jdkVcE?5I?Ph zz#yZ?aY&faaK;fQg+u&w2B6Ck?sq8VaBGh*mnwVArAp6|ewdUcTOz~#8HPNE3kcuE zN|{pa9CE3$J6x*tEa`_yS+dpV)+RNo4{49fk#elH2bW8gS>;ltXGx!wg{Db;$y_4I ziB)g4Qll1-`dt6YWP(G{YD-CtfVM5E2@ob_$(EDhyIOM3;fSq$$I%`sZK<-GVH%n+ zDJ$Dj<%Ihai)t%B$P`({*{UmvXoZKWop3JYRswUW(zB#b%0knmzGVJ`q&?mxf3VBk z+}cw>Ihr)w2t!-S;}lriR?_FnqAf|m0@B(GtOX%OnuJRRg3fI}uy5htC;ptiaH#v1 z8OD6>-7|mg(vc^QEZehtUQoa`V`|{jNfhxhTSiZdpzHHb~#gv45WLId*r#qVuI&cqcC8nINArKUU?V zYdBuNem#Et_<{usrb&|~Yu2m{8#Wj^bO^|@Wy=g2G^kFU+K!Hn5TQald-iN73oDa> zK~3mLK#&p>n&1#q>0F5TS*fGZoH1opK1yS&+}32vo+Ez3M9EX8N|`#X>MvEAv{^Ex zQ;JfjO`kYPvP_w?_y+{4`u}lexX(2n5{-fcq~vocVeUs@Zl$3HWs-70Sn1guj$KSc zbVQ#^j*=+>K}t+9BE(c?n_Fq92|vPIQjwDHj%srzJ*)bOoRvH+G%ga5hJ#B9b3X!eD-AU$lT-pkDxGU^V1>h$XJw2SG4NE= zyLa!26DQ)qrb?A6*|KHhl~&-WQKQC-7mt|u%e@R4GL$Y|8dmtXY6AugaB^~r8`rFV z$%$<65ut<&zN(a%$~-3AC-0En4*%L)lzdIp_`!9j-UDB4U$(ASEU=!6Bxy zQ$obgN*&@D92seybgT!^wEND(>GRiiNM93vw!b}b+ z^BKyr(PKNL%NdCJ+x{?kl^ExE`)gfj=gC;m=F>WdY#*rk4L)t$a zqC_(orY_=;D63#w^=yqhl(C@{d{rqim7V2Q8fwB23Z$b1O6N+BHJ)LVtys(n_r*$? zCBflmM9b9(D|^AMG}MG46i7!2l+MA?`PQZygSDARh21Sj%Hb0nen#H78ewHVxs`^R zFoc3qN6AsPqT~d7(&JXEY}!nY&euPsQ38ULnCJpH#8mc3i1=BlLmY!6#UlYp%>?1T zTAJBznACK*<0vyJIQ)#5xf)?*U$~WqnlOX{=@3x*G@oOQCl>QtH&ZjX(|W8Vlu`)@ zQeq-_aEPhwixBa%QinJOM?XA6$y-%TtU`@slsbHlH+&H(>earMI^9PTZ+WYXq#pgU#w#SO5&w8xiy=yMi zR;(F6fB7iwnyfIP>ren9B`HWrBow$Bc>oZY>quBA1S^_WCR?u*g|PMYT)}z|muz^p z_28ApeY}$u@k&(CD?xtjjrISfqGy~uh97ha*MBf)H7c`L8us!|Qphu5esZD%5dB)b zcyZ30IWuO=IBeK3FE5WzpFVv1_65J%wQFPlh`{gPzdLj06t;?_PoF+--n{Pa?!wm0 zAfYTY1t5|$l~{7lZGpuh=}07WzzNk2i9ym)lF;9G;LtDGb0kTY9L3fcF${l6D~>{0 zW7jGeFJ+?Wf~=f3-k63-LWTeS89zY+7?vqp{?)73O8-C3vFcpo;fVx-Lzz^Sk^+|! z=C;7%AgL;V4*2}6s;14fmuV<^s`Di$a%(KfBqasaRPzA>7Kf@PF`*-{Im%?kfiToz z)#8m>j1yH{AFbpX6k99yIaF`xaRB`0xnJxs;jiLd_5rWicfHP_WAQ4i2VQ?LNC225 zsc7zQS)NkFNu-FGlN?Ju5+XVS2rQ{_k}Gh`b(A=ARw{Es97>}AL<$8?a!lr2jXVGd zEU9sl6a*lW>u6(`;IPeE86`@T!i5XFxVX5wx?-d=%<;$0M@80$C@!7a>BVHH+6ZnZ9J$j)+g;2~LGiFTL zvSq1mYce@P0Vx6yXENa=$E2XNg_<}d9f^dF(pJ(jM(XyAVJrY`zUaQr*PC`eNs7oh zmO3ItbOsPuQX`V2NQK%|I` zlN?Ktb6a3>NIIN^0+AZZ5q@i-!$~LzGF11wQRbSe*s80gYKviI>VL=K zDMhqIipV+1vD7aiqBDTNk{XdD4OTRvOjb&u!xM|LQ42Vtn>w!~JjsZeND)6LIhJ}S zM05raSW+XBq``_Nl*uYwfL-4uEzW@cQ-BXK!X{F5fs-6d9TXxu0|+ds5lK=3h$ICw zf&L4unSuR;YTrthwD_lyF7GpL4SF@)wry7Vc2%b?7>ZXG8&mc;wR-lF5smvanmE_F zm2>l5yXG3x6nuWwDX&8=g}y{`&)k;O2yjiQUD6?-R3;Aok%mvoVz-7)d+NUTT%r2d z{p#mf#y@+-7Y9!IrZ4sQ&&?0!uknnV7X{g%E+YerH9{TMCw1|=;}$$wyE7n9EzkIQ z$(2eQ(R4<7XJ;eAnir86(c67%NGpe|iHW4CO_jve2;d1FpOxQ@U| z4)v6ah$#TKB{c$)GDxLJ$x&Jf!#VR7#Elm}Rho2o;OED%+KJz<$aHaPy1}&)H7_3j z`4Yz$OB~ZDiykXR)Y3U)<1CaDB~F4JvVHmuFtbI~Ff^Ffn`^vL9=yOx4(W3dF$LhZ zq((qe21z0SI+SYK9DA9Dq8I3lL0|Blnuu`PtD6KdL`ueO| zyitpBtkP@5u2>XX+l)K2V%OE~(>#D%jye5D=Y4o)QT&C@}?yT8y9t%J|TYm_=Z|)nqncfRP2*Yk;kw-76&S@$$vAH zT*VPBwqbj0irfyV3WmI+IBrUZG({X@Co^cKE*xB$jS`}4g+Fw-Ltz9daDkN^Nr6ZX zxGi}gz%>OXkrF7CiKD|a47Fu3u-;-txk79LD>)Q47ZFncZcAzeBxR5!QUb0Vv9~rJ zi4NF)mm?ZP8d)WW639iw6hMghnH)-*T%SZ5o=HanFwy^3E5)EeM(p*^^C=AqV&+mM z$veeu$%+8i6qrOxpj1|JthZV!+p>V8{~d?Yh-d{?a;PI*L`(s=EvXTZltGe636#pl zI66GB7;8FAeDqQOm4p(DPz6?Us25yBOaZtpsS%KrK`KQ`j?yYzIQDy&w7C2FPXRuf z0xLPx9WElK0Nj?;2uR8xNd!QLQcatq{{pKW&rd70xDG2BswQyJpRVIee}l9&WYhjV}>Qp1C)vT#dI2vBnp@JyJ` zKU;;ztG3?gG1@C(0k6b`P=S54Y?F8LqCuTU_+>8lXz9j>3)gwZ$&KRdlXW}qjGBXL z?Dh6T{Bu-BarW8vLzk*|)S)Jej@-Y0AFm+(_19ldo;*(VRt{7PvO;0!&K>wWNxbpz z*|TTbIgzA-Bqjk$Bj*51B-8|l_#6->HQ|={1gJSx0JYZb+M}qNBx!P9jRjuZA^F1v z8U2Q)_v`F&3zC=w$b@r%B@$|aLwpVhlNz~I<#4GgwwGy0!6O5@U2;6zlwM*I;IVPc6$IvI zawvdOS-2uT0ct`6Kv|zvOCtvJMbU%55}UKx4pd+b1=+D@3bfswyXDS-bG^r|INNuY zSC`3u;|DN)WkApA9@!dgLrpe&lkHGmwC(cX`9ApIY^>62HCmLiCrDxvAP<}aERj$X z9O838nAFIvDu+u2j+~XsoDhen7feAClYpu|q+CH@ekO+kD3v9*T!BQ!0F-TfRyJ$a z48iBim+$iB%iFevd?Nz|Rw~HiVMf_I6lAesHbH{mPhL7WJbChD@ZiCCUcy_8{r&xO z-8@i`zYyh$Y4Qd?F6Xm`_&!?7}#v!Ebbs&4n^FJC#fEnjy`_iELv z8+O8?mWoO%imKQNi~X=Dvx);`nxYQz(ikX6u@e^6SiGYcMO##C@tR_kaiNbhw#}w< za)^~E#Lx6&$4-|c)sZD80m>og081p)1c&$> z5EkAz$uYI14Pc`GtyViENg9FIzm!iw5|aQ0%sIdk2{pkXJ_m$_HzJjQn$rMQS}iqN zG+(6u9fxu#f)pe%2~Za}2UsGZCOE|BfG}^1OgInJ*sOBL8a2Dt zHulzHT#a;)6L173k&?p|$Pj=u1vW++^UPf-v0-KSr2@*VmuhtO|F!a+F>?d*)kYom zj?1ioJT-k%6-Rv*rC9O4VvvEw8$h$9FEVP_0N?n7dDB!efyTDkq4NHWKMH2PhLuv{h-d}LBL{~_NyjloE$4@V=0( z@MDZ5Kcqk$?oGmxvrZGTpZzqPAW zsnX}qpWnTEmnBOU^b4;q4pTw);lqbbn>K|Z?($o=ZiP88-fygtBJK1lrNj|F10-q`;g5E0APs66o-ZVKN3)1@uDy>rFeKN-1$f7X-<>0}hdrRFx!sNlH$v0p7fQ zU%7E_3#zeEGnASzd*!;LJ7d+&xBH(X_yn`z?Zl|1#!qV~uqMuG*dB|o!HNU5*A#gT zAC|>|Vk_#fv6C3SFq$hJ6BoRndulsH0JG6a)s1vW{Ng3=Ym6YjuH?~)eh zLH{WrMpGJ7X{@=F^hF=Jh&a@JNvcYM$@K}F1N2{D&57#g)cLLgD@Gb;dVR5kg#x6~ z5vnic@Or>D>~-xkrgO#i)p&JP`jYHfk9A~t_`ssRV>;tYvc;N}yK!zi@$D3NB`@fm zvKThQUas90C0DsMR)5mI zR;@(k)}oM_vc@LtbW}KJA}e&3E*k>9u;_^*?uCo3=J^z#OlC0w0U6 zZ8>&xlH0j*y$%jp;8UsZ;aFwYiG8)@dLG0+*~I1ky>IHD{2y;Ia#sF$4sFnbz0As% zEn6acD9GNtdGpYrL;d^r2RUlgC@RRdYu64sJ$m%OBMs$Q+95k{-aKDlU%d1f3d@%- zU%h%YK!pkwNdLbCZ1WkzUaq(Q#+9)9z=`ZacPZh;|-f-l1+ z`NdFmMG+PyS8Q~Rn<^wl(c?Iv3B1i12P&=DLW|w9IAcp}LPrBL8Qx}G!0>HZRBZXa zT7xV+4?Dd>g=Y%B_hm=VFt)i^eV}4g5)-R8+A_8UvyT z8(Mgk)fk`0E&kb6&(R&7T2`cj?5cGW_U~Q5)s7unvSQ76!P&KIP7jw3LnrmD-lZ0q zaAo_#*wcD%@{$|fN2C0Dz1?8n45cnsYKLkpDy=B6V%zM+D($@zfN#P zpYJ|;wON0!`1!7P8i4}ttszqa|7d)!V7*tTy?xU;c_%3l?n%JNFIln#Us9VjYeu?s z>42#S+kC;X{|(uq@$0?%FH#;hY#9FO`^1S8QIp-je?Q!Yd#DlO5FME_Zy{bdOa)og zSTiJxzO-ZV+mkb2YLgvB*r`sbM;A>w)hX5T@@dypO7Bu6g=^82*T!b>pO9`^^Q6fV z$4QzzMfaZ8s#8bKHH{0yUZx@Mg6&^&JlY7s_O)t7E9sV{!M1J3Zxw8}2bI}gGdwHz zJ-q&4(3dY?(Gfa6eg3-V%$;7-JucpOaqimlou_U?Ve*>5hQm%Y8F>cchVQ^)-zzZo$%-RUX2ZT$lx1-w z&hC)9h@l#b?Xl@g8TQ74FN&~ul`(e6rp9+>t@ZU-d%Q!1U85Y^= zPjYMf*_I=Dn02S^s%X{x-W>+R+^+9EZbVSN8J6VlOL+#RFkGhCka~(q5*3 zja(u2wZP(HRvwf|rATl{K>|vBNdcr%NAhV*f%C~NXA=Hb$_lB58Y>RL5rCh$l&naf zIKh7(MgH$xI=pD5D?T7wsB!6&N0x!V(S3Tqv0b)ppG7(Vd-u%mIjZCAB_n`Wt(#c0 zTb-I+>x`P-H^|O+$a*ErcdkhNryKX2{k;ZWR*a(RtwEFhvsb**px1*rt5J%@PFO=J zHf~;@G){hwW$+Pdkf_5#|MrNPcSg<%$X)Z6^Q23)x|}OqA2r;oEeC>+1&3$v$1#TS z`Sa&^)$pJ}gHT!>FrYtP-}m6beNkpj+{G{|~_~p-^A8!JL^B<2e!ablDt=qOwoHSX2go(s<*QimW6wDIqAJ;TK1G5Y(l5$AF zr5g)cC>26Ewe^!ZjD=h-Oz=;t;e3O(EHFK&wKYCzkTugd zvgjJhvZI#z;XTH0-+u;)qn7hgytTM|??a7;pP1`@5#N)IQ*K@C()L=DjhvMjQ=O-b z4$Yxc_A)Emwrz`qh=MG(xZ>r**x8DIQARst&H08bJS0w>c>DJ4s6mT;vf$LMTUUov z>)(V8K4aL?^``%Lg>Q>U_0wlBlH{xsHACs7|ErcVcTMwuY4X&#cmL6VB@;8XF8Aog zQ$t|!(i*C+;)kND*bi$EL^14sP5g@iqV|ftu_(gg!2a1(1s!6*+Nz<4b`P5J# zk(uFzlwYZwO7?;ykzk60>k|$IQg^)0xHah2;I}$|44vEyBIgO+TMTF>>40oKs70GW zEdX3+_Wxg*gz9RL74WpD|;`hYt-!*cUIJ<;am^ z%9P2$W!A4K$j0xu`q?7)JFP~%J>_$|ejJAKK3N6TX>Cz>4?%Z$RzJ}rT z>(|n!Prq^FMmRSXiBbR#XG)|oKb-%~%|ZMG6PN>u?e#>q6fGi5J!AI)E z(HD0}{&K0~$ZE-FluC2CMKlA9_st=kl$W_?Ya-C4Mk(HtM7(@8X}gX*BA7 z;jZ`z9bhHk3L37sNE$3b;*3L_xw0`FIV+82MwK5qE47~`RFkI7#I9J}$x)EKdi5&y z#^Qy;+qP{RGGvJP1zEhx7zJFkk|eO`W?xVX8oHYNp|Hv8K;QkKuIeFHDuIlg&FWkLF)E!E?R0N4L4si}^Ps8gm zAVQvD!rED`Z{5YpCA29HfCWiRhcFzN8sZQ(z#K@VhF@E_wP}PGE~5X;auhnq^1{yf zgw0Hya-jf+GbPd-x48Ul;Z|!-sJ3wZi;1k9vx1}Ko71n5wFRm!q3QtQ2L`|o9M)Ye zEegyQ?l|Ff_mmPKO+Z1487j__zByz>J+YV*8`r_bZwo7lGS6ZZC{&3gz6PL$ngd{o z)bJ3#qW{cY(#*8j$P|#S96{oYL!8a*4yjpb6|#i|minj-uxN-wQsYdHNiD>TW?--& ztW5GIfT}qcN%|m-nFxM}ZDtm(ZsX06GX0 zAdwk><_iHB5hh^LlTWH5*x&lpeV0@=qKb-Lu6XV6ivy=F*Xib!uz=VM8<3|a z_Pst_wEq3on__4_J$&+D{us9~;=&T~UO6`39frHXPUQzQWsy2haDJwEEniyRUj* ze2N{iLUh>kzGJ;DkDk2;iJC3;%;F=nsK&-9y{7j}&-8V-B(JpISi5+N6Cwd5l8cOa zQ1Yd*6AG$Kr7dwHXJuG#1k$|ICMnO_fJRNI5h;K~YP%vSuF?p3mY@L42c0{2jvqh1 zD9FZ)857mj4<9~En>Nk-f^3Hl9p1coBU;4g9xh$FRHsfIkYOsw3UlNQfS&~^afGso zvrG8jnnjCxKVz8ar$KBZ*Beb15i*eiNTeCv5?u>Xj zhD`bV8ULH0a*%Tsnbla-XgGq1x^$cSy9+P~lFIFz$ zzszEah<*vc&)|y*B!EyecD99Eo3Yr!i~pZljzY&A4zsN_s$VWR1|El)8OUW$4M(#LtXB0ppMNf!nR>u_cQCL|vE2+hZdSamf%m+5I zl2F1`^G{L&=5$bXxmGfXV~)=s(fQBZCCy2KjZ6W$UVTVuY zJ!WSA9Xn<_wXD#fcZ25rn|2u5`tX6pQx^;on!~2_I(%SJcbE3nI@jtvybaWrt{RKi z7rRXBv(bIp&GWmtLm9h-`TvO!GMtFB0ES+Kj+B9e|AG$!pa>HPQ8NCASAu*u`;JHL z^=i|84;QYz-fjKit0m^6+1G$1l8GuLr&fYpBd7$ba^K)ou-(^y%qy z1oQRdr^l5cI?;=4z`~d z3rI>Pkpd9O&BaL3cmarmbd-Nn4UYH;9gfLL8=#3r%T}PMnj&?Y7}26MC=$=TPfFJY zi61S<_-H|f$8$0rZtFDi;$C@^`8CZdw#v>clLqzKxAQakjZYgrdbAX&Qg`gq z4X(7?vRG>Mxh6&CV!Kn1M`}mYkcS6-&0YSl6) zHc2N&sWn*|ZX3PafBT7Bxti^$KkWF~tIz%kd>opmZ+K;~|K+Dd5;)=eaP%_&YjTOBcOv*VWGh#${PpYCBuSEp##~)pPn0J+S3A z+s3#V)g8N>{MphCj&qNA9B##}#2vVE{kViJujL%xaO2D0mJ4S5(nY*Mp$+3|s z5PAvxJEIMkN@xcNgfa|&n!K(oScSNMRcs>*tZHmZrZmx%3gBqya1qB!Kax};xxT7M zm8l&Y`Bauuf1E?kuLo=&KBX6`v8RqMzjk&j_Q~Q)vcK0WUZ7E_mIIqjo;O%%u3S5z z{g76Lo0P$8jf*uaJ8`b_InVX@p^`gdYVQCKquYNB<}Shq1IC!4ibxkAodpOL8vcZs ze#ECqM1Vxb0QSy5+jh_^alx~{Rlhxa#+8P>@D14yx9*AY66en^U%xuz^Jv+oYptA7 ze#O^gueKN{biTZMZ`cVNC(q^D-EIw;dZBE~2eVgRYdH|FGJdjt_u1SvjJ0b4f84ln z_*~kjPamk33Xng4zUkAa$pzWWtg$DX$U+lN)VrQN=1sUCApiozw7CIALu0$_$7rpGRvre0`+hCl6S8uG9s@RGA& z2AMOm-}UbMfwpW)MAWLqJ7Olri$TO2hSSvAJbL-r%6$(bW5<0SeE1Zy&*<5!4}sSW z{}hKG8xP-@zxk4Qlkv_|w`&YMx_sxA-ZMP&wb|Wl)G56BSon;tS&-%BSLvZn1W!ys zA^-q73&6VxG5v^7BS?TmsvvS!Dif=kC}Kv=O6_L}N|gBk@3kvlytpXH#*Q5uhMhWf z!nmOPnkrSQO`A5&nKK79*`7Unq6mu(u)_22zyCgX@L=qy1&M#7h3YMeuw}}WK^=DT z)dgDwLBa27zA3mnY*cVZC}I+7@)QJ0WE|Ggc9p~?(ZH0RFSMKYd=KJCMhP3Slqx#=X%fd6Gt~EYf7-&W?Yn@& zLZHk1P&NH8Ek}Gwr_OSwa-Bzhph;%|$krg@L@)`C_$j5|>l&qOz@Wi zb(pl7=n52s4(pbY<;5jbg+M67%s=&5EzJytsoBUK$AY`37&tmB$B`x@pQnTguwZZjjSY6o?tKO|)l`i#i)-IN#W|3UAi}iNxFTj~^$_`#flDZZ02qV`fEjwA zn}Fghc%tK>@_*N1K5+;WAbn%NJ6YkENB>4e)vy6JQ9*2vz2!XR+n12PfftQ_{rnmG zWbqc_M@u(7-*ptPFZPU=FR*CCr;#rQE%#%V6%Gts)j2c)QtW+~vC6 zjkRk5zeS4{4I4J(wN&87jT_^g!*W4(?H;KhTWA12>a{Qew4%p&+ z>dfET4OuMJW3EZTxrEXLz#vQj%+SO1*pX%^z@Ms@0h616b~FunPa^P=lcold0!XBY z+5C|W(GTsa#!L@YG5Tjjty)F{GA=;zbi@+BoXvNjggShY@8mUsYqwu`G;_7@#V4NU zAD=$^@VNK=XUn%({TNoC?*%i4)hTQ6p{Iw7|Gub7PcfGi1nsFUWHyaDoI0 zI(F>1efxH?yB6Pl_~Va1#EXk1O;u7%H;DMWQ!2uf{Pym_x1g;L z?p@q;WaraYA^$E&a`TV(xm0;-qV~Gy(CNodo|mcDgV#)lj9akZ`(%n{CFbv3bMbOe z)kZxl8TqBlSBo10$IeoI|FOSa*UZb>q0(Q0zJo{2B-n@EFX;dMs8h zq2Uk!gD?RwLl2W9MT5vSl}zGHkU#*5{9e~6Wh1v*qwz6;EnNRJIs))BA|;a4IFq^pDOXTmUR*-e34}7t z{8NwB(#%kpnvL9Xq&p*#1Q0UEAjOdJfisLEpRJ+Yq?u^2Qe%elO#c~CPb{V*Q)t-8 zNtuRCqfGdv4vj(t{1y&ihwavsTex zYZU{Df^4NO4VG+PJDB z$`=8N3BLGoD<$^-wF>I0q97~Ik5+7^774sKaMCYR+4H5Ee|qxl_1}Jmnrxgrczy93 zuXCSYyt-VwE8b>&d-zQMY!%4W#men(^c6! z=|8T_R3&d5Lpe4|lyn&!6D3aaI;Q%1x?q(jJ`xddO{2>p zf}`YfDX?T7(uzySpWprU9hibI0Fe%69TD@4VMb^+au=XQPppLEjPN-iOx@z+D~6Ip z0$?Q$U5rB{L@I$~t4$i3`|#{r;LLCPN`7;T@oi(0lP8zOt(QM`-F(ISH(j)AEjFL> z@cNCM>5#r;PN$~$r(#D=dL_&{dWN9@%m+FxRxY6taR4kx0f=-6IkZQLE`FiS zmBEq7P?suy+QO|(B`o7CL&tyO<;a3{o?i@x?9u%oILWk1h^0fEA>n|q@nQK+Vk5WO z?_x4S*uwQM28G5&0uo96;Cx^rLlj&>6*&MFqyR)Zn04s1TACHhcS<&L$B}M}L~;O3 zr04?;T<{pm<49AF0IUcD(C@p9Xc7_i#G)CLy3j^e5=yejyf`Cb4hU0Ev`5xp9{JGz z{rhnK^AGKGZ3sZu3<1Mc5vl}0zfhjxPwneUT3(3c0GLSb*%-Ew1=d)2NbM1tg zOGeh|QLkbDw$3v~7ie6zP}B0xGe$KU(5_sK-W0nL2IRij}__nT9{usmQsekw80| zhSUq&zvL*?2n2StYDFuxrcBR+jYgcvSa(aSv1eB9x%TDd8x&;EIpoLhV%mz=OSUfE zatrFPC;T3+I~WwN{JJv%kHj4T=l-+3uyo+)Io$(an?2%nf7Yf8vC6D%;d%<54KE(C zwP+s?;k#X{P-&Pc>n(WfddCnlRbO(Y^hSE zR5KDidUW_y71=e@W}h+a>w2@1YXDdE*U#_19ju0b&JpqpDaaOZsGSGDD7EvH8QAMvM$4V`nKhcE$>PG`Ug7p;DbRTKbarA3mu*s!O_7Wj=lWY^ z7u(|+BJYwWQ)fq0z+_)^P_WYl788LEDNBN{%7lpcs%plhs>*`N zeHt?-J^`{-nhO!v1Qu#snK%R_6G1{M6hJOmF{;m)&Yq|Kt*%m;74I>|i;MBr;wgX5 z-FN!%|LPXUR@t7TI+6kbY?Yldf5@DrBdIw%0(kTA!v$-piVE=J;AxQ}?K9p~?31Ph zDzJFJ@$F&LVHnhP)cMja$QAa_-o-y155EKVN4#6Od-rbq=j7z{+i$}mfi&%S>A^mOj}C$rbS*tq|?Q=4aN_QWl} z4h7l%bG)kbKQd)aAiqaUUw2-R>kr=WyZrQ+&x6^UE<|w(`7W(J7Gxu5Wdu$ft2S*% zvl4j-{~lnKFJ*TBHQ&!0bI-c6V=0WUGemtpZZgi`FSTet8Dq{ojRtJY+5AoZ)@YI7Gx7PE;@GYylHb+{q1=c`qLMz zMPW2|xmI3&=Y9My#B?kp)k#4vSnfV{-GV5!a(iAntJ+NzYU{NdEE#4g+VI$4Ud8%1 zEz-9UO1<3BdGuUKIi_RjExV6(o;@N-lVVR_8eXl;^}`q2;~gq|Gaz}hqh}bKU96;( zT9veyTU+FEWYxWw71bwoiL<{|_fA&isrx?4k^y}E`uXK6R9(M*{P^Ma{decD zz74$c>EV+%-sez|y-=ae*H53YPZl0-_8ot&U_HOg<-AiA^NgD}uz2HJgQtdL$MG4p zL4yW`?sdgiZVkU)y?T`>Q9>@ruH23~?Cs`5QAhZ`Ap0e6-n@$!FOr<#8*Qyyw+_cp z^>>B8m37RV)$jq?#L*JPjoPkE{1J5%XGj*kYlQ^!+a}ALG6t1m31DOFpqhzF<%}&j znX?%_Aba?zVSltW;*Xqb8dWtJc3yK2C0UW${s;2jWKX_3gW> z`5Fh6>-hZT2h?g&ki{#Dvo+oZuUVHxN`TLzGZ{N80`t#?n$9*1nUwE?i z!1ZbC&O=B1G`=Alfup0{bmXkm&X4^{?Pyja$#LVx9XfQVlC&bC{{BglB#~@8ckY}rWlD+pA0Tb^8No;!;Rc?>kXx|Ytaq$lu zzfh`^3bJh7?)$w?C2CY;=GH$|ySc`FU%CQyCEHO`mhAUDnYu-(Y3|FoRnX151r;BV zZO~!ZX+NLzZOV6%vDnv2Vhe*Cd6zV26zpgUnA06=>)87OEB+EyoJFoU zhhr&|+(Z(Al%(7b$4W!Nk<5*$QA1pxFf}C9_?dJhCOIU)HT#e2I&Strs;hF~wtiCn zh9$=>nZ9xVHur-&7Q3&^Rj1hM^%J=c;W0D&Pg@}WjTu_B{lhn{(~ASAP+EPy`{=VB zhw$OodlMIn6yf8rFAkl)(S6jz#q00S{PVn1Q$NSD-bo94Cn=1=>-o~nz2fJ)J9a** zwC4&p@JUhZj_W*>bRRC+@MP_dD-C*GYvp{c#lUdP0BWXn>eP{HsSO%5Xx+M%T#)@U zxFFkV#ET94L_zlVAzPis?1F9O%9Z=|>nAxWS+b<7t7|xhsD#dajHqAzh7A;-IObHVue)#CIm4c6)YZ{5QqiHC5 zVHcO2M#6Oy+0m*co_u1JU5gUxutmNLw_X-Ef}3^v;+4fOHXnNb@r&5;>T&)_i_xc{ z)_Kz3X==IG8+yF)h!ZHermEqdq3)IvUH1PK@Tm7p&yh>~pcA{CVN-21JA7qv+f%hIdGk@3GD7Ajy=W(1XTLatO z9m*O>;6Cl>8OCN8E1pjsu;1G%8SR-}XYLZkU;a17vZD~un zroddEW6_XwCKKWd07DK)P4GbuoX~y39A~Plaxipq&m1+2RO{BbiF1cqJ)2eQ-WX)3 zVQsGYZ{=zNyUyr0ZNU)XpP!}3l_H8nh=jg$=2jY*tdu%Jq~wF+880v1QH%|(cSg^? zRI`h(W0}jfy1u`D`~Hj-=L*#IN>sonb#dQxC835hKFIEuwY+D%e1`WD$IExAR+mqY zpFLT-6BsqwyWmP;L>ZMv-b`j& z!&cc4IOaH1H59g!rcOsuHB;uyIUEzmPmmx%!US2;B}$nrVZ8VWO#b30NSHcp`nYl9 z{ozy^f4gg}l^^6s_*|3Xr-XAL=@=t52G^uWRl$y?p~wk(q1z>=nlTDPLkb;jsd9WZ z^o0m#ZbeKExPtzx7H>UFII5Fdu}=HuxnIoRX7~7&=W010MW$q;CI@65IV&j@N)Xmm3lEfMr9%yl$+p63Ye%zE zbS-PvtUY`7R-?{g&LZjYP=j8ZA6;;|Y^}0*d)o2+@Z`^Ts=GK+i?)v)O zTdC=Q3s>W3t3W;h;HP4v-X{Y*b9AmYX6<($gnjYyb+M`)xH52-q78!X-6=D;b=46a z-+g#5`44we|2vczP}Nb>5NUK=Sg9(Qbf~n|{~1O#a&ws0UaXYKp{OiKEZM384Tl;c z;Yzn#n`-3dFn_k?$mErynlue7ReizKureuvg3`18w_0TkVdCg^{hQ3EM%Ws*s#Y5M zLWHx@P(x(x)lwOZnH>G^I6s(M)yx~~><_l3bgTapi!uf?Ir^_8CbO*?xv&b;u)>eY zwlo~7+Wu^JN!771hpGP*P#rH3st`$IO-v5V=^Au|iK;SrQ%W^N`Y*7`@P3@b)55Wa zXN{aFMXEkknW9Avk!na>pRfQp!$dlB9jQgKA`=0i)^}`|kyCs7{DmPOTC;yLZo9ylVWO-SfQ9xM7>^ zj77twj!?T2AEXd*AasbYG|}deApz1C9Gr>6foJ@D_ogll$X6R%T(5T+dT+wQvpK8Y zpT5HXmx|(Ru)g^B;Z6EH-+SUi(49|Dp1tus@0+2tUzYNB$IL@D_WhL`=ZZAIR@s|< z#$Bw`4jXK*wHV-&@(bz=EBo=@erPfsHd-(19&$*iK%-L*5P3NOmZ@&sE z+ffu`C(Sr<>E_EN+pnMki;u(p-f~xrGHcJAeU!B7#+rkUj#%s$rKH>6fsgaH+Eua7 zp?fR?;jGjlhXj;5;7HQQS*e;ON>o@= zP3a|I%s=M~WsSB}MZ$wITRWPSl!~@(+on&Sp2(XwZ&L37P=`gC6)*b0yNGAZn6YEW zj-a5RM~@!i4aO^1uEd-1gdw)acI(zHYSgIYhXZoRnF3oTQu-l|1rCJ?c~AnYK4U1G zGoPdL^`?U=1siA~KhJZrOPxE8F5)v|6V(fvdhN$kzIO?COR8E8T+E zL!+cCi7l(Q?>^`}a1!|0OEg)repkG#<+%>9v+F#Mi~bHZf7|aV?_iy^c)g^Y=-0{% zS8nOIWMcZ(We@tC;&Eatu0vWUt{*L9nO?(Y{CQw=nwF)voIZf=bA4-Io$pX$K+zEb z)G6W+Advfu9%pqM%1b7oV-)ec&7GoW*f6G!WdZb~i+GP!W8ZrXpfj9(6 z1Yp(Gk~b7qtn(d5BnM|@oRl{Lq@(1JNCOBfoRvD{kO1irhX9EHbbeytO@|fhypo7? z;jE0)qzERe*;cv|oF8#$%=V|cOBze8IeeX`fU)sHsC3N`P>o+(%1tb5i~JMdK6PGT zdD9kP)h4Q{_P4YuJ#0TKE#8)zjBRK&d$N1R;dyVec z-L+e<3C@e%S9KlPUKCr89$Z|aMFkXOdyVc?r$@b#ttyV1-WO!
q_od6wFY$whi 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 a8OkXQ>?S2Bjl;x;J}gw4(7z_-g!VT!9l90( delta 6532 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 literal 10286 zcmeH`U2+;h5QFo~DRP9wDJO57A@{!wX%PD%G(R@5+9~@_H7&3Hn45rsWx!f@9+M3s)w#W?A?2d#`PzAhQwIHgXJ^4c;y+dHg-6i zOMyD|)qi(=ex8NXFZR?rMA5Pb`Y%I4@ERh6Tiy$rA4{0Sa?wNsssFJ#5 zN$_3UNbQ4DSlIH zG!?}cwk zmWA0#|o4lu`ElmI!aB(Mvx$*B^j(l}8uI5WqD z09wDKmM^9&bxE~zivv$~el6_zUjeVRH|2bVjl~F`q%_S{m+F8qEP6>+>gN=zn`@ zraAED3%>2fDGIlS(3vu8$5Lo-rLes<3U9=Od&J+9JYL$`i_$B!X7jZ^`khe$fI{gRfeW;qNd{a zS-o~l!Sp#L_-E;LAy%%otW&65B-VV?0ntqoMx*)!Mi%osjBlPVQLwj5p{#23dJ%TZ`5m1}xf!Fq5S?Mp_y)qC8#W~jlk3te=s9aJu; z2y4&7zWp3&>R7v?5$SKnXxKibp?t;^a~jy+>`xM23?PQU)!(dZ-vrDrR za>Q88Pq#+!*vgBHH>CB#RZjS_I2-KQOZVjG#lVS@gcOasf%JJKyTw%kUI^X2hEI^(ck$!(DH-q8-N;WIfH=ME>%D1_{lriW@`;nNHk^$bzH!|;M^3_QrX-(&1>T&r*@Jyy@kxaw7l zd4jlbH(`E@U?wnq`lGMyw-VCF;%1StyK}?L7-kJLPhIQj=qtE$_wAj$=tVN(Tt`}2 z%uV>+Axb_3?^_4u&=jv#aCiC1gl~VkgDu(_J&pxhBZcx6743T`g(49wM^KtMk6(U0 zLOLRRGKS*A7r&aty0EY*3#Xugw{I%3gVFQUPhJ%>k|w1L|3?g&AK}oc4~}DFb6l9C g`_C{oH!h*tTN%mDyEW+BoHjW?ER=|XQF+e&7w;_#-T(jq delta 2380 zcmbtWUr1YL6xX_@+%@BBx~!>prZ+Uz`X{}ywxJ!07ss9^(?Y=qTP6$!!b$>Tv~1AC zhYqa;bMt%1T2SLd=Z4w1^>z&J@a58>!jar zVtME@ej`8cMP!bVx?7+>q<5yYvUZ$HV=Z=ByP>;KeG?K= zy&`|sZ%9xFUo$ed!v_#fzJcy>7Zzrm_Nt}>bU;AiD>oJ<8Pd9gk1NU^S7=p@P?JFv zX55HpU9`FoyCY-mq7&Kp$J>m>;;j}kAKhUnolw&aMMJ0fA4Sh4k98>IYKvhQGNcN0 ztv8q8<@|`RInkH+;4p_osOW=%;byuRq_otLw|e}P4BPj}D@UykdXX9RQ#h{ecURBu zvL9Kb#7{EB^@z25AWnEFzY;xrq4!Hh^zPgN+X0Wl2KIi{7GM@UZR#|xOj1Ti$o-Va zpY>ZJ!Bwz4_K9stO|#0j*k|$^#EqP9Pm7enOe^F|Z(-qk*#g@{0NuzFV71MU%7_Ca z9TFw%5Gv1CA#?Y2q|VnOa?`>0K5Q50tP@w$RLa{z;<5u#&0+jK(YXgNa(+$rSXB&E zmz9~3?f#}xG!iK~&>a`;IP_c9Sh{y(8$r}`DHnwiiko^OI!%nrd5`YOpy@}eI?a#8 z#xI#09Kj~Z zK_Ta~?M5}Pb;i~j;-Y__zD`2l5bf}ShL7q<#rXsIesXh-x$E8=*g1HmN$4NGSc zzW%vU5c|rxK&X`Rrw^G#3V8C+6c3iJ%%G!wAMqBW4%8qrR-?(@9f8;2$x0gz&YeMf z@)*y*n)dNE7JrYQwQAY)a&DVGwtiz^^&KuQOcK?(2Be<1XmZxb&-XG)9!X?(i2b-% z*>^BjNCR`7oNJrC5-JzHntT|mi~YQY402>K#HpfekTfYQB&&~RT>st`lfq)ByEwZe ziw&Cm7mJbgKUL2NE*;{rp?fxf*m#JGYV3amMuN;y>&gi#(nmZpT@ft1rZVV?$x5ye z{~@x4Q5qt=1NhW6^z~*&I|{0c(eS?9Q_eBSv(zbBO7yo*gtGw}3|nR+%Zypi;Fvi9 z*_e#oF}bEIwOD(4g~O+GlxE6I3wbK?kqI1`37~sD1o;;?^^F_B+yz5dzAWDXg=V=u znn}`=rv4WHBMs7I8hKRjz2P+B*XKPPjy${7RLF*7%U1`PaT1N#7DE`nFP|%+$@hB_ zmzh$K*yX5J!`4V=?=|!`;-e;~1Eh*vrkJ|1mxeP~|Lr0+`;TqEYt}O}O>=38hB>#{ O1M7{aWTja4>VE*h+{Oj~ diff --git a/log.txt b/log.txt index e69de29..e17fcc9 100755 --- a/log.txt +++ b/log.txt @@ -0,0 +1,9 @@ +'StockTicker' object has no attribute 'readStocksCSV'. file: stockTicker.py. line: 2186. type: + Traceback (most recent call last): + File "stockTicker.py", line 2186, in + stock_ticker.updateMultiple(['Stocks Prof']) + File "stockTicker.py", line 276, in updateMultiple + img = self.functions[option]() + File "stockTicker.py", line 927, in getStockProfessional + self.readStocksCSV() +AttributeError: 'StockTicker' object has no attribute 'readStocksCSV' diff --git a/logos/sports/premier_league/Arsenal.png b/logos/sports/Premier League/Arsenal.png similarity index 100% rename from logos/sports/premier_league/Arsenal.png rename to logos/sports/Premier League/Arsenal.png diff --git a/logos/sports/premier_league/Aston Villa.png b/logos/sports/Premier League/Aston Villa.png similarity index 100% rename from logos/sports/premier_league/Aston Villa.png rename to logos/sports/Premier League/Aston Villa.png diff --git a/logos/sports/premier_league/Brentford.png b/logos/sports/Premier League/Brentford.png similarity index 100% rename from logos/sports/premier_league/Brentford.png rename to logos/sports/Premier League/Brentford.png diff --git a/logos/sports/premier_league/Brighton.png b/logos/sports/Premier League/Brighton.png similarity index 100% rename from logos/sports/premier_league/Brighton.png rename to logos/sports/Premier League/Brighton.png diff --git a/logos/sports/premier_league/Burnley.png b/logos/sports/Premier League/Burnley.png similarity index 100% rename from logos/sports/premier_league/Burnley.png rename to logos/sports/Premier League/Burnley.png diff --git a/logos/sports/premier_league/Chelsea.png b/logos/sports/Premier League/Chelsea.png similarity index 100% rename from logos/sports/premier_league/Chelsea.png rename to logos/sports/Premier League/Chelsea.png diff --git a/logos/sports/premier_league/Crystal Palace.png b/logos/sports/Premier League/Crystal Palace.png similarity index 100% rename from logos/sports/premier_league/Crystal Palace.png rename to logos/sports/Premier League/Crystal Palace.png diff --git a/logos/sports/premier_league/Everton.png b/logos/sports/Premier League/Everton.png similarity index 100% rename from logos/sports/premier_league/Everton.png rename to logos/sports/Premier League/Everton.png diff --git a/logos/sports/premier_league/Leeds.png b/logos/sports/Premier League/Leeds.png similarity index 100% rename from logos/sports/premier_league/Leeds.png rename to logos/sports/Premier League/Leeds.png diff --git a/logos/sports/premier_league/Leicester.png b/logos/sports/Premier League/Leicester.png similarity index 100% rename from logos/sports/premier_league/Leicester.png rename to logos/sports/Premier League/Leicester.png diff --git a/logos/sports/premier_league/Liverpool.png b/logos/sports/Premier League/Liverpool.png similarity index 100% rename from logos/sports/premier_league/Liverpool.png rename to logos/sports/Premier League/Liverpool.png diff --git a/logos/sports/premier_league/Man City.png b/logos/sports/Premier League/Man City.png similarity index 100% rename from logos/sports/premier_league/Man City.png rename to logos/sports/Premier League/Man City.png diff --git a/logos/sports/premier_league/Man United.png b/logos/sports/Premier League/Man United.png similarity index 100% rename from logos/sports/premier_league/Man United.png rename to logos/sports/Premier League/Man United.png diff --git a/logos/sports/premier_league/Newcastle.png b/logos/sports/Premier League/Newcastle.png similarity index 100% rename from logos/sports/premier_league/Newcastle.png rename to logos/sports/Premier League/Newcastle.png diff --git a/logos/sports/premier_league/Norwich.png b/logos/sports/Premier League/Norwich.png similarity index 100% rename from logos/sports/premier_league/Norwich.png rename to logos/sports/Premier League/Norwich.png diff --git a/logos/sports/premier_league/Southampton.png b/logos/sports/Premier League/Southampton.png similarity index 100% rename from logos/sports/premier_league/Southampton.png rename to logos/sports/Premier League/Southampton.png diff --git a/logos/sports/premier_league/Tottenham.png b/logos/sports/Premier League/Tottenham.png similarity index 100% rename from logos/sports/premier_league/Tottenham.png rename to logos/sports/Premier League/Tottenham.png diff --git a/logos/sports/premier_league/Watford.png b/logos/sports/Premier League/Watford.png similarity index 100% rename from logos/sports/premier_league/Watford.png rename to logos/sports/Premier League/Watford.png diff --git a/logos/sports/premier_league/West Ham.png b/logos/sports/Premier League/West Ham.png similarity index 100% rename from logos/sports/premier_league/West Ham.png rename to logos/sports/Premier League/West Ham.png diff --git a/logos/sports/premier_league/Wolves.png b/logos/sports/Premier League/Wolves.png similarity index 100% rename from logos/sports/premier_league/Wolves.png rename to logos/sports/Premier League/Wolves.png diff --git a/stockTicker.py b/stockTicker.py index a962755..1df33d3 100644 --- a/stockTicker.py +++ b/stockTicker.py @@ -661,6 +661,8 @@ class StockTicker(): title_img = self.openImage('feature_titles/crypto.png') image_list = [title_img] image_list.append(self.blank) + else: + image_list = [] @@ -754,6 +756,8 @@ class StockTicker(): title_img = self.openImage('feature_titles/forex.png') image_list = [title_img] image_list.append(self.blank) + else: + image_list = [] forex_settings = all_forex_settings['symbols'] @@ -798,10 +802,18 @@ class StockTicker(): def getForexProfessional(self): - title_img = self.openImage('feature_titles/small_feature_titles/forex.png') - self.blank = Image.new('RGB', (0, 16)) - image_list = [title_img, Image.new('RGB', (5, 16))] - + f = open('csv/forex_settings.json', 'r') + all_forex_settings = json.load(f) + f.close() + + if all_forex_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/forex.png') + self.blank = Image.new('RGB', (0, 16)) + image_list = [title_img, Image.new('RGB', (5, 16))] + else: + image_list = [] + + base, currency_info = json.load(open('csv/currency.json', 'r')) currencies = ['AUD', 'CAD', 'CHF', 'EUR', 'GBP', 'JPY', 'NZD'] @@ -862,6 +874,8 @@ class StockTicker(): title_img = self.openImage('feature_titles/stocks.png') image_list = [title_img] image_list.append(self.blank) + else: + image_list = [] symbols = [] @@ -906,20 +920,30 @@ class StockTicker(): return finalDisplayImage def getStockProfessional(self): - title_img = self.openImage('feature_titles/small_feature_titles/stocks.png') - image_list = [title_img, Image.new('RGB', (5, 16))] + f = open('csv/stocks_settings.json', 'r') + all_stocks_settings = json.load(f) + f.close() + + if all_stocks_settings['title']: + title_img = self.openImage('feature_titles/small_feature_titles/stocks.png') + image_list = [title_img, Image.new('RGB', (5, 16))] + image_list.append(self.blank) + else: + image_list = [] + self.readStocksCSV() self.blank = Image.new('RGB', (0, 16)) for i, symbol in enumerate(self.symbols): - info = self.stock_info[symbol] + info = stock_info[symbol] - change = float(info[0])-float(info[1]) #TEXT + change = float(info['current'])-float(info['opening']) #TEXT ticker = symbol #TEXT - current = '%.2f' % float(info[0]) #TEXT + current = '%.2f' % float(info['current']) #TEXT + arrow, change = self.getArrow(change, professional=True) change = '%.2f' % change @@ -1078,10 +1102,7 @@ class StockTicker(): logos_path = os.path.join(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'logos'), 'news_logos') logo = Image.open(os.path.join(logos_path, logo_name + '.png')) - - - - + width, height = logo.size logo = logo.resize((int(width/2), int(height/2))) @@ -1103,134 +1124,144 @@ class StockTicker(): def getLeagueImage(self, league=False, time = 'past'): - if not league: - f = open( "csv/league.txt", 'r' ) - league = f.read().replace('\n', '') - f.close() + if time in ['past', 'live']: + filepath = 'csv/{}_games.json'.format(time) + else: + filepath = 'csv/upcoming_games.json' + + + all_settings = json.load(open(filepath, 'r')) title_img = self.openImage('feature_titles/sports_'+ time + '.png') - - img = Image.new('RGB', (10000, 32)) - league_info = json.load(open('csv/sports/{}/{}_games.json'.format(league, time), 'r')) - - - - small_font = ImageFont.load("./fonts/5x7.pil") - med_font = ImageFont.load("./fonts/7x14B.pil") - large_font = ImageFont.load("./fonts/9x18B.pil") - - - - sports_info = self.readSportsCSV(league) - - - - buff_size = 25 - x_offset = 0 - - - for match in league_info[-15:]: - home_team = match['home_team'] - away_team = match['away_team'] - - home_score = match['home_score'] - away_score = match['away_score'] - - date = match['date'].replace('-', '.') - - #rond = match['round'] + if all_settings['title']: + title_img = self.openImage('feature_titles/sports_{}.png'.format(time)) + imgs = [title_img, self.blank] + else: + imgs = [] - try: + leagues_info = all_settings['leagues'] + + leagues = list(leagues_info.keys()) + + + for league in leagues: + + + + img = Image.new('RGB', (10000, 32)) + league_info = json.load(open('csv/sports/{}/{}_games.json'.format(league, time), 'r')) + + + + small_font = ImageFont.load("./fonts/5x7.pil") + med_font = ImageFont.load("./fonts/7x14B.pil") + large_font = ImageFont.load("./fonts/9x18B.pil") + + + + sports_info = self.readSportsCSV(league) + + + + buff_size = 25 + x_offset = 0 + + + for match in league_info[-15:]: + home_team = match['home_team'] + away_team = match['away_team'] - home_logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[home_team]['logo'])) + home_score = match['home_score'] + away_score = match['away_score'] - except Exception as e: - home_logo = self.textImage(home_team.replace(' ', '\n'), small_font, r = 255, g = 255, b = 255) - + date = match['date'].replace('-', '.') + + #rond = match['round'] + + + try: - try: - - away_logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[away_team]['logo'])) - - except Exception as e: - away_logo = self.textImage(away_team.replace(' ', '\n'), small_font, r = 255, g = 255, b = 255) - + home_logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[home_team]['logo'])) + + except Exception as e: + home_logo = self.textImage(home_team.replace(' ', '\n'), small_font, r = 255, g = 255, b = 255) + + + try: + + away_logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[away_team]['logo'])) + + except Exception as e: + away_logo = self.textImage(away_team.replace(' ', '\n'), small_font, r = 255, g = 255, b = 255) + - date_timage = self.textImage(date, small_font, r = 255, g = 255, b = 255) - - img.paste(home_logo, (x_offset,0)) - - x_offset += home_logo.size[0] + 2 - - - if time == 'future': - img.paste(date_timage, (x_offset+5, 0)) + date_timage = self.textImage(date, small_font, r = 255, g = 255, b = 255) - h_colour = mcolors.to_rgb(sports_info[home_team]['colour'].replace(' ', '')) - a_colour = mcolors.to_rgb(sports_info[away_team]['colour'].replace(' ', '')) + img.paste(home_logo, (x_offset,0)) + + x_offset += home_logo.size[0] + 2 - hc_timage = self.textImage(sports_info[home_team]['code'], med_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[away_team]['code'], med_font, r = int(a_colour[0]*255), g = int(a_colour[1]*255), b = int(a_colour[2]*255)) - vs_timage = self.textImage('vs', med_font, r = 255, g = 255, b = 255, h_buff = 5) - - img.paste(hc_timage, (x_offset, 9)) - img.paste(vs_timage, (x_offset + hc_timage.size[0], 9)) - img.paste(ac_timage, (x_offset + hc_timage.size[0] + vs_timage.size[0], 9)) - x_offset += max( date_timage.size[0], hc_timage.size[0] + vs_timage.size[0] + ac_timage.size[0]) - else: - - score_image = self.textImage(home_score + '-' + away_score, large_font, h_buff = 5, r = 255, g = 255, b = 255) - - #vs_timage = self.textImage(sports_info[home_team]['code'] + 'vs' + sports_info[away_team]['code'], small_font, r = 255, g = 255, b = 255) - - h_colour = mcolors.to_rgb(sports_info[home_team]['colour'].replace(' ', '')) - a_colour = mcolors.to_rgb(sports_info[away_team]['colour'].replace(' ', '')) - - hc_timage = self.textImage(sports_info[home_team]['code'], small_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[away_team]['code'], small_font, r = int(a_colour[0]*255), g = int(a_colour[1]*255), b = int(a_colour[2]*255)) - vs_timage = self.textImage('vs', small_font, r = 255, g = 255, b = 255) - - if date_timage.size[0] > score_image.size[0]: - img.paste(date_timage, (x_offset+2, 0)) - img.paste(hc_timage, (x_offset+6, 9)) - img.paste(vs_timage, (x_offset+5 + hc_timage.size[0], 9)) - img.paste(ac_timage, (x_offset+6 + hc_timage.size[0] + vs_timage.size[0], 9)) - img.paste(score_image, (x_offset + 2 + int((date_timage.size[0] - score_image.size[0])/2), 15)) + if time == 'future': + img.paste(date_timage, (x_offset+5, 0)) + + h_colour = mcolors.to_rgb(sports_info[home_team]['colour'].replace(' ', '')) + a_colour = mcolors.to_rgb(sports_info[away_team]['colour'].replace(' ', '')) + + + hc_timage = self.textImage(sports_info[home_team]['code'], med_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[away_team]['code'], med_font, r = int(a_colour[0]*255), g = int(a_colour[1]*255), b = int(a_colour[2]*255)) + vs_timage = self.textImage('vs', med_font, r = 255, g = 255, b = 255, h_buff = 5) + + img.paste(hc_timage, (x_offset, 9)) + img.paste(vs_timage, (x_offset + hc_timage.size[0], 9)) + img.paste(ac_timage, (x_offset + hc_timage.size[0] + vs_timage.size[0], 9)) + x_offset += max( date_timage.size[0], hc_timage.size[0] + vs_timage.size[0] + ac_timage.size[0]) 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), 9)) - img.paste(vs_timage, (x_offset + int((score_image.size[0] - vs_size)/2) + hc_timage.size[0], 9)) - img.paste(ac_timage, (x_offset+1 + int((score_image.size[0] - vs_size)/2) + hc_timage.size[0] + vs_timage.size[0], 9)) + score_image = self.textImage(home_score + '-' + away_score, large_font, h_buff = 5, r = 255, g = 255, b = 255) - img.paste(score_image, (x_offset+1, 15)) + #vs_timage = self.textImage(sports_info[home_team]['code'] + 'vs' + sports_info[away_team]['code'], small_font, r = 255, g = 255, b = 255) + + h_colour = mcolors.to_rgb(sports_info[home_team]['colour'].replace(' ', '')) + a_colour = mcolors.to_rgb(sports_info[away_team]['colour'].replace(' ', '')) + hc_timage = self.textImage(sports_info[home_team]['code'], small_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[away_team]['code'], small_font, r = int(a_colour[0]*255), g = int(a_colour[1]*255), b = int(a_colour[2]*255)) + vs_timage = self.textImage('vs', small_font, r = 255, g = 255, b = 255) + + if date_timage.size[0] > score_image.size[0]: + img.paste(date_timage, (x_offset+2, 0)) + img.paste(hc_timage, (x_offset+6, 9)) + img.paste(vs_timage, (x_offset+5 + hc_timage.size[0], 9)) + img.paste(ac_timage, (x_offset+6 + hc_timage.size[0] + vs_timage.size[0], 9)) + img.paste(score_image, (x_offset + 2 + int((date_timage.size[0] - score_image.size[0])/2), 15)) + 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), 9)) + img.paste(vs_timage, (x_offset + int((score_image.size[0] - vs_size)/2) + hc_timage.size[0], 9)) + img.paste(ac_timage, (x_offset+1 + int((score_image.size[0] - vs_size)/2) + hc_timage.size[0] + vs_timage.size[0], 9)) + + img.paste(score_image, (x_offset+1, 15)) + + + 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(vs_timage, (x_offset+4, 9)) - 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])) + #if league == 'NHL': + # + #img.paste(round_timage, (x_offset+ 7, 8)) + #x_offset += max(home_timage.size[0], away_timage.size[0], date_timage.size[0], round_timage.size[0], score_image.size[0]) + + img.paste(away_logo, (x_offset,0)) - #img.paste(vs_timage, (x_offset+4, 9)) - - #if league == 'NHL': - # - - - - #img.paste(round_timage, (x_offset+ 7, 8)) - - - #x_offset += max(home_timage.size[0], away_timage.size[0], date_timage.size[0], round_timage.size[0], score_image.size[0]) - - - - - img.paste(away_logo, (x_offset,0)) - - x_offset += away_logo.size[0] - x_offset += buff_size - img = img.crop((0,0,x_offset ,32)) + x_offset += away_logo.size[0] + x_offset += buff_size + img = img.crop((0,0,x_offset ,32)) @@ -1240,81 +1271,92 @@ class StockTicker(): def getLeagueTableImage(self, league = False): - if not league: - f = open( "csv/table_league.txt", 'r' ) - league = f.read().replace('\n', '') - f.close() - - title_img = self.openImage('feature_titles/sports_team_stats.png') + all_settings = json.load(open('csv/league_tables.json', 'r')) + leagues_info = all_settings['leagues'] - img = Image.new('RGB', (10000, 32)) - team_info = json.load(open('csv/sports/{}/team_stats.json'.format(league), 'r')) + leagues = list(leagues_info.keys()) - small_font = ImageFont.load("./fonts/5x7.pil") - med_font = ImageFont.load("./fonts/8x13B.pil") - large_font = ImageFont.load("./fonts/10x20.pil") - - if league =='NHL': # read the NHl info from the csv, prem will need this as well - sports_info = self.readSportsCSV(league) - - buff_size = 20 - x_offset = 0 - for team in team_info: - - try: - if league == 'NHL': - - logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[team['name']]['logo'])) - elif league == 'premier_league': - - logo = Image.open('logos/sports/{}/{}.png'.format(league, team['name'])) - img.paste(logo, (x_offset, 0)) - x_offset += logo.size[0] + 2 - except Exception as e: - print('no logo for:', team['name']) + if all_settings['title']: + title_img = self.openImage('feature_titles/sports_team_stats.png') + imgs = [title_img, self.blank] + else: + imgs = [] - - name_timage = self.textImage(team['name'], med_font, r = 255, g = 255, b = 0) - wins_timage = self.textImage('Wins:' + team['wins'], small_font, r = 0, g = 255, b = 0) - loss_timage = self.textImage('Losses:' + team['loss'], small_font, r = 255, g = 0, b = 0) - draw_timage = self.textImage('Draws:' + team['draw'], small_font, r = 0, g = 0, b = 255) - points_timage = self.textImage('Points:' + team['points'], small_font, r = 255, g = 255, b = 255) - standing_timage = self.textImage('Standing:' + team['standing'], small_font, r = 255, g = 255, b = 255) + for league in leagues: + + + img = Image.new('RGB', (10000, 32)) + team_info = leagues_info[league] + + small_font = ImageFont.load("./fonts/5x7.pil") + med_font = ImageFont.load("./fonts/8x13B.pil") + large_font = ImageFont.load("./fonts/10x20.pil") + + + #if league =='NHL': # read the NHl info from the csv, prem will need this as well + sports_info = self.readSportsCSV(league) # gets colour and symbol info etc from csv + + buff_size = 20 + x_offset = 0 + for team in team_info: + try: + + + logo = Image.open('logos/sports/{}/{}'.format(league, sports_info[team['name']]['logo'])) - img.paste(name_timage, (x_offset, -1)) - img.paste(wins_timage, (x_offset, 12)) - img.paste(loss_timage, (x_offset, 19)) - img.paste(draw_timage, (x_offset, 26)) - - 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 += max(points_timage.size[0], standing_timage.size[0]) + buff_size - - - img = img.crop((0,0,x_offset ,32)) - - return self.stitchImage([title_img, img]) + img.paste(logo, (x_offset, 0)) + x_offset += logo.size[0] + 2 + except Exception as e: + print('no logo for:', team['name']) + + + name_timage = self.textImage(team['name'], med_font, r = 255, g = 255, b = 0) + wins_timage = self.textImage('Wins:' + team['wins'], small_font, r = 0, g = 255, b = 0) + loss_timage = self.textImage('Losses:' + team['loss'], small_font, r = 255, g = 0, b = 0) + draw_timage = self.textImage('Draws:' + team['draw'], small_font, r = 0, g = 0, b = 255) + points_timage = self.textImage('Points:' + team['points'], small_font, r = 255, g = 255, b = 255) + standing_timage = self.textImage('Standing:' + team['standing'], small_font, r = 255, g = 255, b = 255) + + + + img.paste(name_timage, (x_offset, -1)) + img.paste(wins_timage, (x_offset, 12)) + img.paste(loss_timage, (x_offset, 19)) + img.paste(draw_timage, (x_offset, 26)) + + 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 += max(points_timage.size[0], standing_timage.size[0]) + buff_size + + + img = img.crop((0,0,x_offset ,32)) + + return self.stitchImage([title_img, img]) def getTodayWeatherImage(self): - f = open( "csv/weather_location.txt", 'r' ) - line = next(f) - locations = line.split(',') - f.close() + all_settings = json.load(open('csv/current_weather.json', 'r')) + + if all_settings['title']: + title_img = self.openImage('feature_titles/weather.png') + imgs = [title_img, self.blank] + else: + imgs = [] - title_img = self.openImage('feature_titles/weather.png') - imgs = [title_img, self.blank] - current_weathers = json.load(open('csv/current_weather.json', 'r')) + + current_weathers = all_settings['locations'] + locations = list(current_weathers.keys()) + for i, location in enumerate(locations): img = Image.new('RGB', (203, 32)) - current_weather = current_weathers[i] + current_weather = current_weathers[location] small_font = ImageFont.load("./fonts/5x7.pil") large_font = ImageFont.load("./fonts/10x20.pil") @@ -1675,11 +1717,13 @@ class StockTicker(): daily_weathers = json.load(open('csv/daily_weather.json', 'r')) + locations = list(daily_weathers['locations'].keys()) + for i, location in enumerate(locations): img = Image.new('RGB', (1000, 32)) - current_weather = current_weathers[i] - daily_weather = daily_weathers[i] + current_weather = current_weathers['locations'][location] + daily_weather = daily_weathers['locations'][location] small_font = ImageFont.load("./fonts/5x7.pil") extra_small_font = ImageFont.load("./fonts/4x6.pil") @@ -1875,18 +1919,38 @@ class StockTicker(): def getUserImage(self): title_img = self.openImage('feature_titles/images.png') + + f = open('csv/image_settings.json', 'r') + all_settings = json.load(f) + f.close() + image = self.openImage(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_images/user_image.ppm')) - return self.stitchImage([title_img, image]) + + if all_settings['title']: + imgs = [title_img, image] + else: + imgs = [image] + + return self.stitchImage(imgs) def getUserGIF(self): title_img = self.openImage('feature_titles/gifs.png') + gif = Image.open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'display_images/user_gif.gif')) + f = open('csv/GIF_settings.json', 'r') + all_settings = json.load(f) + f.close() + frames = [] for i, frame in enumerate(ImageSequence.Iterator(gif)): - f = self.stitchImage([title_img, frame]) + + if all_settings['title']: + f = self.stitchImage([title_img, frame]) + else: + f = self.stitchImage([frame]) frames.append(f) @@ -2127,7 +2191,7 @@ if __name__ == '__main__': start_image = Image.open('./logos/startup_logo.png') - stock_ticker.updateMultiple(['News']) + stock_ticker.updateMultiple(['Stocks Prof', 'Crypto Prof', 'Forex Prof']) stock_ticker.setImage(start_image) time.sleep(1) stock_ticker.resetMatrix()