Merge remote-tracking branch 'refs/remotes/Kwoth/1.0' into math

This commit is contained in:
appelemac 2016-08-22 11:56:30 +02:00
commit 1b7927e8da
13 changed files with 41 additions and 42 deletions

@ -1 +1 @@
Subproject commit 06184c1a655232beedd608a8b0190ca2c70b9b23
Subproject commit fa06826f92fd020f2af5f48aa25784d10239f668

View File

@ -23,7 +23,6 @@ namespace NadekoBot.Modules.Administration
{
}
////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)]
@ -445,6 +444,7 @@ namespace NadekoBot.Modules.Administration
public async Task Prune(IMessage msg, int count)
{
var channel = msg.Channel as ITextChannel;
await msg.DeleteAsync();
while (count > 0)
{
int limit = (count < 100) ? count : 100;
@ -646,7 +646,7 @@ namespace NadekoBot.Modules.Administration
foreach (var role in roles)
{
send += $"\n`{role.Name}`\n";
send += string.Join(", ", (await channel.Guild.GetUsersAsync()).Where(u => u.Roles.Contains(role)).Distinct());
send += string.Join(", ", (await channel.Guild.GetUsersAsync()).Where(u => u.Roles.Contains(role)).Distinct().Select(u=>u.Mention));
}
while (send.Length > 2000)

View File

@ -30,7 +30,7 @@ namespace NadekoBot.Modules.Administration
{
var channel = imsg.Channel as ITextChannel;
if (channel == null || await imsg.IsAuthor(_client))
if (channel == null || await imsg.IsAuthor())
return;
ConcurrentDictionary<ulong, DateTime> userTimePair;
if (!RatelimitingChannels.TryGetValue(channel.Id, out userTimePair)) return;

View File

@ -196,7 +196,7 @@ namespace NadekoBot.Modules.Gambling
private async Task Client_MessageReceived(IMessage imsg)
{
if (await imsg.IsAuthor(NadekoBot.Client) || !(imsg.Channel is ITextChannel) || imsg.Channel != raceChannel)
if (await imsg.IsAuthor() || !(imsg.Channel is ITextChannel) || imsg.Channel != raceChannel)
return;
messagesSinceGameStarted++;
}

View File

@ -27,7 +27,7 @@ namespace NadekoBot.Modules.Gambling
role = role ?? channel.Guild.EveryoneRole;
var members = (await role.Members()).Where(u => u.Status == UserStatus.Online);
var members = role.Members().Where(u => u.Status == UserStatus.Online);
var membersArray = members as IUser[] ?? members.ToArray();
var usr = membersArray[new Random().Next(0, membersArray.Length)];
await channel.SendMessageAsync($"**Raffled user:** {usr.Username} (id: {usr.Id})").ConfigureAwait(false);

View File

@ -73,8 +73,8 @@ namespace NadekoBot.Modules.Searches
var channel = imsg.Channel as ITextChannel;
using (var http = new HttpClient())
{
var response = await http.GetStringAsync("http://tambal.azurewebsites.net/joke/random").ConfigureAwait(false);
await channel.SendMessageAsync("`" + JObject.Parse(response)["joke"].ToString() + "` 😆").ConfigureAwait(false);
var response = await http.GetStringAsync("http://api.icndb.com/jokes/random/").ConfigureAwait(false);
await channel.SendMessageAsync("`" + JObject.Parse(response)["value"]["joke"].ToString() + "` 😆").ConfigureAwait(false);
}
}

View File

@ -59,8 +59,7 @@ $@"🌍 **Weather for** 【{obj["target"]}】
await channel.SendMessageAsync("No results found for that query.");
return;
}
var shortUrl = await result.ShortenUrl().ConfigureAwait(false);
await channel.SendMessageAsync(shortUrl).ConfigureAwait(false);
await channel.SendMessageAsync(result).ConfigureAwait(false);
}
[LocalizedCommand, LocalizedDescription, LocalizedSummary]

View File

@ -36,7 +36,6 @@ namespace NadekoBot
AudioMode = Discord.Audio.AudioMode.Incoming,
LargeThreshold = 200,
LogLevel = LogSeverity.Warning,
MessageCacheSize = 10,
});
//initialize Services
@ -105,7 +104,7 @@ namespace NadekoBot
}
else if (!t.IsSuccess && t.Error != CommandError.UnknownCommand)
{
_log.Warn("Command errored!\n\tFull Message: {0}\n\tError:{1}", imsg.Content, t.Error);
_log.Warn("Command errored!\n\tFull Message: {0}\n\tError:{1}", imsg.Content, t.ErrorReason);
}
});

View File

@ -10,7 +10,7 @@ namespace NadekoBot.Services
string Token { get; }
string GoogleApiKey { get; }
ulong[] OwnerIds { get; }
IEnumerable<string> MashapeKey { get; }
string MashapeKey { get; }
string LoLApiKey { get; }
bool IsOwner(IUser u);

View File

@ -17,7 +17,7 @@ namespace NadekoBot.Services.Impl
public string GoogleApiKey { get; }
public IEnumerable<string> MashapeKey { get; }
public string MashapeKey { get; }
public string Token { get; }
@ -35,6 +35,8 @@ namespace NadekoBot.Services.Impl
Token = cm.Token;
OwnerIds = cm.OwnerIds;
LoLApiKey = cm.LoLApiKey;
GoogleApiKey = cm.GoogleApiKey;
MashapeKey = cm.MashapeKey;
}
else
_log.Fatal("credentials.json is missing. Failed to start.");
@ -44,6 +46,8 @@ namespace NadekoBot.Services.Impl
public string Token { get; set; }
public ulong[] OwnerIds { get; set; }
public string LoLApiKey { get; set; }
public string GoogleApiKey { get; set; }
public string MashapeKey { get; set; }
}
public bool IsOwner(IUser u) => OwnerIds.Contains(u.Id);

View File

@ -4,27 +4,12 @@ namespace NadekoBot.Services
{
public class Localization : ILocalization
{
public string this[string key] {
get {
try
{
return Resources.ResponseStrings.ResourceManager.GetString(key);
}
catch (Exception) {
return key;
}
}
}
public string this[string key] => LoadCommandString(key);
public static string LoadCommandString(string key)
{
try
{
return Resources.CommandStrings.ResourceManager.GetString(key);
}
catch (Exception) {
return key;
}
string toReturn = Resources.CommandStrings.ResourceManager.GetString(key);
return string.IsNullOrWhiteSpace(toReturn) ? key : toReturn;
}
//private static string GetCommandString(string key)

View File

@ -22,8 +22,14 @@ namespace NadekoBot.Services.Impl
}
public async Task<IEnumerable<string>> FindPlaylistIdsByKeywordsAsync(string keywords, int count = 1)
{
Contract.Requires<ArgumentNullException>(!string.IsNullOrWhiteSpace(keywords));
Contract.Requires<ArgumentOutOfRangeException>(count > 0);
//Contract.Requires<ArgumentNullException>(!string.IsNullOrWhiteSpace(keywords));
//Contract.Requires<ArgumentOutOfRangeException>(count > 0);
if (string.IsNullOrWhiteSpace(keywords))
throw new ArgumentNullException(nameof(keywords));
if (count <= 0)
throw new ArgumentOutOfRangeException(nameof(count));
var match = new Regex("(?:youtu\\.be\\/|list=)(?<id>[\\da-zA-Z\\-_]*)").Match(keywords);
if (match.Length > 1)
@ -39,8 +45,11 @@ namespace NadekoBot.Services.Impl
public async Task<IEnumerable<string>> FindRelatedVideosAsync(string id, int count = 1)
{
Contract.Requires<ArgumentNullException>(!string.IsNullOrWhiteSpace(id));
Contract.Requires<ArgumentOutOfRangeException>(count > 0);
if (string.IsNullOrWhiteSpace(id))
throw new ArgumentNullException(nameof(id));
if (count <= 0)
throw new ArgumentOutOfRangeException(nameof(count));
var match = new Regex("(?:youtu\\.be\\/|v=)(?<id>[\\da-zA-Z\\-_]*)").Match(id);
if (match.Length > 1)
@ -56,8 +65,11 @@ namespace NadekoBot.Services.Impl
public async Task<IEnumerable<string>> FindVideosByKeywordsAsync(string keywords, int count = 1)
{
Contract.Requires<ArgumentNullException>(!string.IsNullOrWhiteSpace(keywords));
Contract.Requires<ArgumentOutOfRangeException>(count > 0);
if (string.IsNullOrWhiteSpace(keywords))
throw new ArgumentNullException(nameof(keywords));
if (count <= 0)
throw new ArgumentOutOfRangeException(nameof(count));
var query = yt.Search.List("snippet");
query.MaxResults = count;

View File

@ -26,11 +26,11 @@ namespace NadekoBot.Extensions
public static async Task<IMessage> Reply(this IMessage msg, string content) =>
await msg.Channel.SendMessageAsync(content).ConfigureAwait(false);
public static Task<bool> IsAuthor(this IMessage msg, DiscordSocketClient client) =>
Task.FromResult(client.GetCurrentUser().Id == msg.Author.Id);
public static Task<bool> IsAuthor(this IMessage msg) =>
Task.FromResult(NadekoBot.Client.GetCurrentUser().Id == msg.Author.Id);
public static async Task<IEnumerable<IUser>> Members(this IRole role) =>
await role.Members();
public static IEnumerable<IUser> Members(this IRole role) =>
NadekoBot.Client.GetGuilds().Where(g => g.Id == role.GuildId).FirstOrDefault()?.GetUsers().Where(u => u.Roles.Contains(role)) ?? Enumerable.Empty<IUser>();
public static async Task<IMessage[]> ReplyLong(this IMessage msg, string content, string breakOn = "\n", string addToEnd = "", string addToStart = "")
{