from . import DEFAULT_ES_INDEX_NULL DATA_TABLE_NAME = "artist_search_data" TOP_PROPS = ("id", "spotify_artist_id", "name", "country", "genres", "label", "artwork_url") INDEX_PROPS = ( "name", "slugified_name", "country", "spotify_artist_id", "genres", "label", "artwork_url", ) DSP_INDEX_PROPS_MAP = { "tiktok": ( "latest_release_date", "avg_duration", "followers", "followers_change_7", "followers_trend_7", "followers_change_28", "followers_trend_28", "followers", "likes", "likes_change_7", "likes_trend_7", "likes_change_28", "likes_trend_28", "videos", "mentions", ), "youtube": ( "latest_release_date", "subscribers", "subscribers_change_7", "subscribers_trend_7", "subscribers_change_28", "subscribers_trend_28", "videos", "views", "views_change_7", "views_trend_7", "views_change_28", "views_trend_28", ), "spotify": ( "latest_release_date", "followers", "followers_change_7", "followers_trend_7", "followers_change_28", "followers_trend_28", "popularity", "listeners", "listeners_change_7", "listeners_trend_7", "listeners_change_28", "listeners_trend_28", "tracks", ), "soundcloud": ( "latest_release_date", "followers", "followers_change_7", "followers_trend_7", "followers_change_28", "followers_trend_28", "plays", "plays_change_7", "plays_trend_7", "plays_change_28", "plays_trend_28", "tracks", "likes", "likes_change_7", "likes_trend_7", "likes_change_28", "likes_trend_28", "comments", "comments_change_7", "comments_trend_7", "comments_change_28", "comments_trend_28", ), } DSP_TO_INTERPOLATE = ( "soundcloud", "tiktok", "youtube", "spotify", ) DSP_TO_EXTEND = ( "soundcloud", "tiktok", "youtube", "spotify", ) DSP_CHANGE_TRENDS_PROPS_MAP = { "spotify": ( "listeners", "followers", ), "tiktok": ( "followers", "likes", ), "youtube": ( "subscribers", "views", ), "soundcloud": ( "followers", "plays", "likes", "comments", ), } INDEX_MAPPING = { "mappings": { "properties": { "soundcloud": { "properties": { "latest_release_date": {"type": "date", "null_value": "1970-01-01"}, "followers": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "plays": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "plays_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "plays_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "plays_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "plays_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "likes": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "tracks": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "comments": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "comments_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "comments_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "comments_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "comments_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, } }, "tiktok": { "properties": { "followers": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "avg_duration": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "likes_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "mentions": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "videos": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "latest_release_date": {"type": "date", "null_value": "1970-01-01"}, } }, "youtube": { "properties": { "latest_release_date": {"type": "date", "null_value": "1970-01-01"}, "subscribers": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "subscribers_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "subscribers_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "subscribers_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "subscribers_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "videos": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "views": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "views_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "views_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "views_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "views_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, } }, "spotify": { "properties": { "latest_release_date": {"type": "date", "null_value": "1970-01-01"}, "listeners": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "listeners_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "listeners_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "listeners_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "listeners_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "followers": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_change_7": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_trend_7": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_change_28": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "followers_trend_28": {"type": "float", "null_value": DEFAULT_ES_INDEX_NULL}, "popularity": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, "tracks": {"type": "long", "null_value": DEFAULT_ES_INDEX_NULL}, } }, } } }