diff --git a/app/cron_list.py b/app/cron_list.py index 8fefa04..61c6ef7 100644 --- a/app/cron_list.py +++ b/app/cron_list.py @@ -335,6 +335,16 @@ async def run(): 'utilities': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' OR exchangeShortName = 'AMEX') AND (sector = 'Utilities')" } + country_conditions = { + 'de': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'DE'", + 'ca': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'CA'", + 'cn': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'CN'", + 'in': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'IN'", + 'il': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'IL'", + 'gb': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'GB'", + 'jp': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'JP'", + } + try: con = sqlite3.connect('stocks.db') @@ -349,6 +359,9 @@ async def run(): await get_all_reits_list(cursor) + for category, condition in country_conditions.items(): + await process_category(cursor, category, condition, 'stocks-list') + await asyncio.sleep(1) # Small delay between categories for category, condition in market_cap_conditions.items(): await process_category(cursor, category, condition, 'market-cap') diff --git a/app/main.py b/app/main.py index f9af2dd..0541113 100755 --- a/app/main.py +++ b/app/main.py @@ -1982,13 +1982,6 @@ async def filter_stock_list(data: FilterStockList, api_key: str = Security(get_a 'nyse': "exchangeShortName = 'NYSE'", 'xetra': "exchangeShortName = 'XETRA'", 'amex': "exchangeShortName = 'AMEX'", - 'DE': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'DE'", - 'CA': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'CA'", - 'CN': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'CN'", - 'IN': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'IN'", - 'IL': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'IL'", - 'GB': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'GB'", - 'JP': "(exchangeShortName = 'NYSE' OR exchangeShortName = 'NASDAQ' or exchangeShortName = 'AMEX') AND country = 'JP'", } # Execute the query with the relevant country @@ -4019,7 +4012,7 @@ async def get_statistics(data: TickerData, api_key: str = Security(get_api_key)) @app.post("/list-category") async def get_statistics(data: FilterStockList, api_key: str = Security(get_api_key)): - filter_list = data.filterList + filter_list = data.filterList.lower() cache_key = f"filter-list-{filter_list}" cached_result = redis_client.get(cache_key) if cached_result: @@ -4033,6 +4026,8 @@ async def get_statistics(data: FilterStockList, api_key: str = Security(get_api_ category_type = 'sector' elif filter_list == 'reits': category_type = 'industry' + elif filter_list in ['ca','cn','de','gb','il','in','jp']: + category_type = 'stocks-list' else: category_type = 'market-cap' try: