diff --git a/app/cron_market_movers.py b/app/cron_market_movers.py index 6afebdf..326b3e3 100755 --- a/app/cron_market_movers.py +++ b/app/cron_market_movers.py @@ -345,9 +345,9 @@ async def get_pre_after_market_movers(symbols): pass - # Sort the list by changesPercentage in descending order and slice the top 10 - gainers = sorted(res_list, key=lambda x: x['changesPercentage'], reverse=True)[:50] - losers = sorted(res_list, key=lambda x: x['changesPercentage'], reverse=False)[:50] + gainers = sorted([x for x in res_list if x['changesPercentage'] > 0], key=lambda x: x['changesPercentage'], reverse=True) + losers = sorted([x for x in res_list if x['changesPercentage'] < 0], key=lambda x: x['changesPercentage']) + for index, item in enumerate(gainers, start=1): item['rank'] = index # Add rank field diff --git a/app/market_movers.py b/app/market_movers.py index 0f8c331..199c1f4 100644 --- a/app/market_movers.py +++ b/app/market_movers.py @@ -86,11 +86,25 @@ class Past_Market_Movers: performance_data.sort(key=lambda x: x[3], reverse=True) high_volume = sorted(performance_data, key=lambda x: x[4], reverse=True) - for symbol, name, price, changes_percentage, volume, market_cap in performance_data[:50]: - gainer_data.append({'symbol': symbol, 'name': name, 'price': price, 'changesPercentage': changes_percentage, 'volume': volume, 'marketCap': market_cap}) - for symbol, name, price, changes_percentage, volume, market_cap in performance_data[-50:]: - loser_data.append({'symbol': symbol, 'name': name, 'price': price, 'changesPercentage': changes_percentage, 'volume': volume, 'marketCap': market_cap}) - for symbol, name, price, changes_percentage, volume, market_cap in high_volume[:50]: + for symbol, name, price, changes_percentage, volume, market_cap in [entry for entry in performance_data if entry[3] > 0]: + gainer_data.append({ + 'symbol': symbol, + 'name': name, + 'price': price, + 'changesPercentage': changes_percentage, + 'volume': volume, + 'marketCap': market_cap + }) + for symbol, name, price, changes_percentage, volume, market_cap in [entry for entry in performance_data if entry[3] < 0]: + loser_data.append({ + 'symbol': symbol, + 'name': name, + 'price': price, + 'changesPercentage': changes_percentage, + 'volume': volume, + 'marketCap': market_cap + }) + for symbol, name, price, changes_percentage, volume, market_cap in high_volume: active_data.append({'symbol': symbol, 'name': name, 'price': price, 'changesPercentage': changes_percentage, 'volume': volume, 'marketCap': market_cap})