Browse Source

Delete WIP file

pull/276/head
Khionu Terabite GitHub 9 years ago
parent
commit
10145f3cae
1 changed files with 0 additions and 68 deletions
  1. +0
    -68
      src/Discord.Net/Extensions/FindEntityExtensions.cs

+ 0
- 68
src/Discord.Net/Extensions/FindEntityExtensions.cs View File

@@ -1,69 +1 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace Discord.Extensions
{
public static class FindEntityExtensions
{
// Guilds

public static async Task<IEnumerable<IGuildUser>> FindUsersAsync(this IGuild guild, string name)
=> (await guild.GetUsersAsync()).Where(x => distance(name, x.Username) < 5);

public static IEnumerable<IRole> FindRoles(this IGuild guild, string name)
=> guild.Roles.Where(x => distance(name, x.Name) < 5);

public static async Task<IEnumerable<IGuildChannel>> FindChannels(this IGuild guild, string name)
=> (await guild.GetChannelsAsync()).Where(x => distance(name, x.Name) < 5);

public static async Task<IEnumerable<ITextChannel>> FindTextChannels(this IGuild guild, string name)
=> (await guild.GetChannelsAsync()).Select(x => x as ITextChannel)
.Where(x => x != null).Where(x => distance(name, x.Name) < 5);

public static async Task<IEnumerable<IVoiceChannel>> FindVoiceChannels(this IGuild guild, string name)
=> (await guild.GetChannelsAsync()).Select(x => x as IVoiceChannel)
.Where(x => x != null).Where(x => distance(name, x.Name) < 5);

// Channels

public static async Task<IEnumerable<IUser>> FindUsersAsync(this IChannel channel, string name)
=> (await channel.GetUsersAsync()).Where(x => distance(name, x.Username) < 5);

/// <summary>
/// Compute the distance between two strings.
/// Copied from DotNetPerls
/// </summary>
private static int distance(string s, string t)
{
int n = s.Length;
int m = t.Length;
int[,] d = new int[n + 1, m + 1];

if (n == 0)
return m;

if (m == 0)
return n;

for (int i = 0; i <= n; d[i, 0] = i++) { }

for (int j = 0; j <= m; d[0, j] = j++) { }

for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
int cost = (t[j - 1] == s[i - 1]) ? 0 : 1;

d[i, j] = Math.Min(
Math.Min(d[i - 1, j] + 1, d[i, j - 1] + 1),
d[i - 1, j - 1] + cost);
}
}

return d[n, m];
}
}
}

Loading…
Cancel
Save