feat: Add category performance, update WebUI and OpenRouter integration, fix bugs
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
using Predictalytics.Domain.Enums;
|
||||
|
||||
namespace Predictalytics.Infrastructure.Helpers;
|
||||
|
||||
public static class MarketCategoryMapper
|
||||
{
|
||||
public static (MarketCategory Category, string Subcategory) Map(string rawCategory, string tags)
|
||||
{
|
||||
var searchString = $"{rawCategory} {tags}".ToLowerInvariant();
|
||||
|
||||
if (searchString.Contains("politic") || searchString.Contains("election") || searchString.Contains("trump") || searchString.Contains("biden"))
|
||||
return (MarketCategory.Politics, GetSubcategory(rawCategory, tags, "Elections"));
|
||||
|
||||
if (searchString.Contains("crypto") || searchString.Contains("bitcoin") || searchString.Contains("eth") || searchString.Contains("solana"))
|
||||
return (MarketCategory.Crypto, GetSubcategory(rawCategory, tags, "Crypto"));
|
||||
|
||||
if (searchString.Contains("sport") || searchString.Contains("nfl") || searchString.Contains("nba") || searchString.Contains("soccer") || searchString.Contains("tennis"))
|
||||
return (MarketCategory.Sports, GetSubcategory(rawCategory, tags, "Sports"));
|
||||
|
||||
if (searchString.Contains("pop") || searchString.Contains("culture") || searchString.Contains("movie") || searchString.Contains("oscars") || searchString.Contains("music"))
|
||||
return (MarketCategory.PopCulture, GetSubcategory(rawCategory, tags, "Pop Culture"));
|
||||
|
||||
if (searchString.Contains("science") || searchString.Contains("space") || searchString.Contains("weather") || searchString.Contains("climate"))
|
||||
return (MarketCategory.Science, GetSubcategory(rawCategory, tags, "Science"));
|
||||
|
||||
if (searchString.Contains("news") || searchString.Contains("global") || searchString.Contains("world"))
|
||||
return (MarketCategory.GlobalNews, GetSubcategory(rawCategory, tags, "Global News"));
|
||||
|
||||
if (searchString.Contains("economy") || searchString.Contains("finance") || searchString.Contains("business") || searchString.Contains("fed"))
|
||||
return (MarketCategory.Economy, GetSubcategory(rawCategory, tags, "Economy"));
|
||||
|
||||
return (MarketCategory.Other, GetSubcategory(rawCategory, tags, "Other"));
|
||||
}
|
||||
|
||||
private static string GetSubcategory(string rawCategory, string tags, string fallback)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(rawCategory) && !rawCategory.Equals("OVERALL", StringComparison.OrdinalIgnoreCase))
|
||||
return rawCategory;
|
||||
|
||||
var firstTag = tags.Split(',', StringSplitOptions.RemoveEmptyEntries).FirstOrDefault()?.Trim();
|
||||
if (!string.IsNullOrWhiteSpace(firstTag))
|
||||
return firstTag;
|
||||
|
||||
return fallback;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user