Skip to content

Commit

Permalink
change whoknows reqs
Browse files Browse the repository at this point in the history
  • Loading branch information
th0mk committed May 24, 2023
1 parent ea5c8e6 commit b391534
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 49 deletions.
10 changes: 6 additions & 4 deletions src/FMBot.Bot/Builders/ArtistBuilders.cs
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,9 @@ public class ArtistBuilders

if (guild?.LastIndexed != null)
{
var usersWithArtist = await this._whoKnowsArtistService.GetIndexedUsersForArtist(context.DiscordGuild, guild.GuildId, artistSearch.Artist.ArtistName);
var guildUsers = await this._guildService.GetGuildUsers(context.DiscordGuild.Id);

var usersWithArtist = await this._whoKnowsArtistService.GetIndexedUsersForArtist(context.DiscordGuild, guildUsers, guild.GuildId, artistSearch.Artist.ArtistName);
var filteredUsersWithArtist = WhoKnowsService.FilterGuildUsersAsync(usersWithArtist, guild);

if (filteredUsersWithArtist.Count != 0)
Expand Down Expand Up @@ -747,7 +749,7 @@ public class ArtistBuilders
ResponseType = ResponseType.Embed,
};

var guildTask = this._guildService.GetGuildForWhoKnows(context.DiscordGuild.Id);
var contextGuild = await this._guildService.GetGuildAsync(context.DiscordGuild.Id);

var artistSearch = await this._artistsService.SearchArtist(response, context.DiscordUser, artistValues,
context.ContextUser.UserNameLastFM, context.ContextUser.SessionKeyLastFm, useCachedArtists: true,
Expand All @@ -767,9 +769,9 @@ public class ArtistBuilders
imgUrl = null;
}

var contextGuild = await guildTask;
var guildUsers = await this._guildService.GetGuildUsers(context.DiscordGuild.Id);

var usersWithArtist = await this._whoKnowsArtistService.GetIndexedUsersForArtist(context.DiscordGuild, contextGuild.GuildId, artistSearch.Artist.ArtistName);
var usersWithArtist = await this._whoKnowsArtistService.GetIndexedUsersForArtist(context.DiscordGuild, guildUsers, contextGuild.GuildId, artistSearch.Artist.ArtistName);

var discordGuildUser = await context.DiscordGuild.GetUserAsync(context.ContextUser.DiscordUserId);
var currentUser = await this._indexService.GetOrAddUserToGuild(usersWithArtist, contextGuild, discordGuildUser, context.ContextUser);
Expand Down
10 changes: 0 additions & 10 deletions src/FMBot.Bot/Models/AlbumModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,6 @@ public class WhoKnowsAlbumDto
public string ArtistName { get; set; }

public int Playcount { get; set; }

public string UserNameLastFm { get; set; }

public DateTime? LastUsed { get; set; }

public ulong DiscordUserId { get; set; }

public string UserName { get; set; }

public bool? WhoKnowsWhitelisted { get; set; }
}

public class AlbumCoverDto
Expand Down
9 changes: 0 additions & 9 deletions src/FMBot.Bot/Models/ArtistModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,6 @@ public class WhoKnowsArtistDto
public string Name { get; set; }

public int Playcount { get; set; }

public string UserNameLastFm { get; set; }
public DateTime? LastUsed { get; set; }

public ulong DiscordUserId { get; set; }

public string UserName { get; set; }

public bool? WhoKnowsWhitelisted { get; set; }
}

public class WhoKnowsGlobalArtistDto
Expand Down
10 changes: 0 additions & 10 deletions src/FMBot.Bot/Models/TrackModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,6 @@ public class WhoKnowsTrackDto
public string ArtistName { get; set; }

public int Playcount { get; set; }

public string UserNameLastFm { get; set; }

public DateTime? LastUsed { get; set; }

public ulong DiscordUserId { get; set; }

public string UserName { get; set; }

public bool? WhoKnowsWhitelisted { get; set; }
}

public class WhoKnowsGlobalTrackDto
Expand Down
26 changes: 13 additions & 13 deletions src/FMBot.Bot/Services/WhoKnows/WhoKnowsArtistService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,18 +36,13 @@ public WhoKnowsArtistService(IMemoryCache cache, IDbContextFactory<FMBotDbContex
this._botSettings = botSettings.Value;
}

public async Task<IList<WhoKnowsObjectWithUser>> GetIndexedUsersForArtist(IGuild discordGuild, int guildId, string artistName)
public async Task<IList<WhoKnowsObjectWithUser>> GetIndexedUsersForArtist(IGuild discordGuild,
IDictionary<int, FullGuildUser> guildUsers, int guildId, string artistName)
{
const string sql = "SELECT ua.user_id, " +
"ua.name, " +
"ua.playcount, " +
"u.user_name_last_fm, " +
"u.discord_user_id, " +
"u.last_used, " +
"gu.user_name, " +
"gu.who_knows_whitelisted " +
"FROM user_artists AS ua " +
"FULL OUTER JOIN users AS u ON ua.user_id = u.user_id " +
"INNER JOIN guild_users AS gu ON gu.user_id = ua.user_id " +
"WHERE gu.guild_id = @guildId AND UPPER(ua.name) = UPPER(CAST(@artistName AS CITEXT)) " +
"ORDER BY ua.playcount DESC ";
Expand All @@ -68,11 +63,16 @@ public async Task<IList<WhoKnowsObjectWithUser>> GetIndexedUsersForArtist(IGuild
{
var userArtist = userArtists[i];

var userName = userArtist.UserName ?? userArtist.UserNameLastFm;
if (!guildUsers.TryGetValue(userArtist.UserId, out var guildUser))
{
continue;
}

var userName = guildUser.UserName ?? guildUser.UserNameLastFM;

if (i < 15)
{
var discordUser = await discordGuild.GetUserAsync(userArtist.DiscordUserId, CacheMode.CacheOnly);
var discordUser = await discordGuild.GetUserAsync(guildUser.DiscordUserId, CacheMode.CacheOnly);
if (discordUser != null)
{
userName = discordUser.Nickname ?? discordUser.Username;
Expand All @@ -84,10 +84,10 @@ public async Task<IList<WhoKnowsObjectWithUser>> GetIndexedUsersForArtist(IGuild
Name = userArtist.Name,
DiscordName = userName,
Playcount = userArtist.Playcount,
LastFMUsername = userArtist.UserNameLastFm,
UserId = userArtist.UserId,
LastUsed = userArtist.LastUsed,
WhoKnowsWhitelisted = userArtist.WhoKnowsWhitelisted,
LastFMUsername = guildUser.UserNameLastFM,
UserId = guildUser.UserId,
LastUsed = guildUser.LastUsed,
LastMessage = guildUser.LastUsed
});
}

Expand Down
6 changes: 3 additions & 3 deletions src/FMBot.Bot/Services/WhoKnows/WhoKnowsPlayService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -128,18 +128,18 @@ public void AddRecentPlayToCache(int userId, RecentTrack track)
};
}

public string GuildAlsoPlayingArtist(int userId, Persistence.Domain.Models.Guild guild,
public string GuildAlsoPlayingArtist(int userId, IDictionary<int, FullGuildUser> guildUsers,
IEnumerable<WhoKnowsObjectWithUser> users, string artistName)
{
if (guild?.GuildUsers == null || !guild.GuildUsers.Any())
if (guildUsers == null || !guildUsers.Any())
{
return null;
}

var foundUsers = new List<WhoKnowsObjectWithUser>();
var userPlays = new List<UserPlayTs>();

foreach (var user in users.Where(w => w.UserId != userId))
foreach (var user in users)
{
var userFound = this._cache.TryGetValue($"{user.UserId}-last-play", out UserPlayTs userPlay);

Expand Down

0 comments on commit b391534

Please sign in to comment.