Repo builds, probably with a lot of bugs
This commit is contained in:
@ -482,7 +482,7 @@ namespace NadekoBot.Modules {
|
||||
.Description("Sets the bots game.")
|
||||
.Parameter("set_game", ParameterType.Unparsed)
|
||||
.Do(e => {
|
||||
if (e.User.Id != NadekoBot.Creds.OwnerID || e.GetArg("set_game") == null) return;
|
||||
if (!NadekoBot.IsOwner(e.User.Id) || e.GetArg("set_game") == null) return;
|
||||
|
||||
client.SetGame(e.GetArg("set_game"));
|
||||
});
|
||||
|
@ -20,15 +20,14 @@ namespace NadekoBot.Modules {
|
||||
|
||||
private bool setgameEnabled = false;
|
||||
|
||||
public Music() {
|
||||
public Music() {
|
||||
|
||||
setgameTimer.Interval = 20000;
|
||||
setgameTimer.Elapsed += (s, e) => {
|
||||
try {
|
||||
int num = musicPlayers.Where(kvp => kvp.Value.CurrentSong != null).Count();
|
||||
NadekoBot.Client.SetGame($"{num} songs".SnPl(num) + $", {musicPlayers.Sum(kvp => kvp.Value.Playlist.Count())} queued");
|
||||
}
|
||||
catch { }
|
||||
} catch { }
|
||||
};
|
||||
|
||||
}
|
||||
@ -62,8 +61,7 @@ namespace NadekoBot.Modules {
|
||||
await Task.Delay(5000);
|
||||
try {
|
||||
await msg.Delete();
|
||||
}
|
||||
catch { }
|
||||
} catch { }
|
||||
});
|
||||
|
||||
cgb.CreateCommand("p")
|
||||
@ -212,9 +210,14 @@ namespace NadekoBot.Modules {
|
||||
}
|
||||
var ids = await SearchHelper.GetVideoIDs(await SearchHelper.GetPlaylistIdByKeyword(e.GetArg("playlist")));
|
||||
//todo TEMPORARY SOLUTION, USE RESOLVE QUEUE IN THE FUTURE
|
||||
var msg = await e.Channel.SendMessage($"🎵 `Attempting to queue {ids.Count} songs".SnPl(ids.Count) + "...`");
|
||||
foreach (var id in ids) {
|
||||
await QueueSong(e.Channel, e.User.VoiceChannel, id, true);
|
||||
var idArray = ids as string[] ?? ids.ToArray();
|
||||
var count = idArray.Count();
|
||||
var msg =
|
||||
await e.Channel.SendMessage($"🎵 `Attempting to queue {count} songs".SnPl(count) + "...`");
|
||||
foreach (var id in idArray) {
|
||||
try {
|
||||
await QueueSong(e.Channel, e.User.VoiceChannel, id, true);
|
||||
} catch { }
|
||||
}
|
||||
await msg.Edit("🎵 `Playlist queue complete.`");
|
||||
});
|
||||
@ -233,8 +236,7 @@ namespace NadekoBot.Modules {
|
||||
await QueueSong(e.Channel, e.User.VoiceChannel, file, true, MusicType.Local);
|
||||
}
|
||||
await e.Channel.SendMessage("🎵 `Directory queue complete.`");
|
||||
}
|
||||
catch { }
|
||||
} catch { }
|
||||
});
|
||||
|
||||
cgb.CreateCommand("radio").Alias("ra")
|
||||
@ -306,7 +308,7 @@ namespace NadekoBot.Modules {
|
||||
|
||||
private async Task QueueSong(Channel TextCh, Channel VoiceCh, string query, bool silent = false, MusicType musicType = MusicType.Normal) {
|
||||
if (VoiceCh == null || VoiceCh.Server != TextCh.Server) {
|
||||
if(!silent)
|
||||
if (!silent)
|
||||
await TextCh.SendMessage("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining.");
|
||||
throw new ArgumentNullException(nameof(VoiceCh));
|
||||
}
|
||||
@ -322,22 +324,20 @@ namespace NadekoBot.Modules {
|
||||
OnCompleted = async (song) => {
|
||||
try {
|
||||
await TextCh.SendMessage($"🎵`Finished`{song.PrettyName}");
|
||||
}
|
||||
catch { }
|
||||
} catch { }
|
||||
},
|
||||
OnStarted = async (song) => {
|
||||
try {
|
||||
var msgTxt = $"🎵`Playing`{song.PrettyName} `Vol: {(int)(musicPlayer.Volume * 100)}%`";
|
||||
await TextCh.SendMessage(msgTxt);
|
||||
}
|
||||
catch { }
|
||||
} catch { }
|
||||
},
|
||||
};
|
||||
musicPlayers.TryAdd(TextCh.Server, musicPlayer);
|
||||
}
|
||||
var resolvedSong = await Song.ResolveSong(query, musicType);
|
||||
resolvedSong.MusicPlayer = musicPlayer;
|
||||
if(!silent)
|
||||
if (!silent)
|
||||
await TextCh.Send($"🎵`Queued`{resolvedSong.PrettyName}");
|
||||
musicPlayer.AddSong(resolvedSong);
|
||||
}
|
||||
|
@ -6,6 +6,8 @@ using Newtonsoft.Json.Linq;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Extensions;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using NadekoBot.Classes;
|
||||
using NadekoBot.Commands;
|
||||
|
||||
@ -30,12 +32,8 @@ namespace NadekoBot.Modules {
|
||||
.Do(async e => {
|
||||
if (!(await SearchHelper.ValidateQuery(e.Channel, e.GetArg("query")))) return;
|
||||
|
||||
var str = await SearchHelper.ShortenUrl(await SearchHelper.FindYoutubeUrlByKeywords(e.GetArg("query")));
|
||||
if (string.IsNullOrEmpty(str.Trim())) {
|
||||
await e.Channel.SendMessage("Query failed.");
|
||||
return;
|
||||
}
|
||||
await e.Channel.SendMessage(str);
|
||||
var shortUrl = await SearchHelper.ShortenUrl(await SearchHelper.FindYoutubeUrlByKeywords(e.GetArg("query")));
|
||||
await e.Channel.SendMessage(shortUrl);
|
||||
});
|
||||
|
||||
cgb.CreateCommand("~ani")
|
||||
@ -44,9 +42,10 @@ namespace NadekoBot.Modules {
|
||||
.Description("Queries anilist for an anime and shows the first result.")
|
||||
.Do(async e => {
|
||||
if (!(await SearchHelper.ValidateQuery(e.Channel, e.GetArg("query")))) return;
|
||||
|
||||
var result = await SearchHelper.GetAnimeQueryResultLink(e.GetArg("query"));
|
||||
if (result == null) {
|
||||
string result;
|
||||
try {
|
||||
result = (await SearchHelper.GetAnimeQueryResultLink(e.GetArg("query"))).ToString();
|
||||
} catch {
|
||||
await e.Channel.SendMessage("Failed to find that anime.");
|
||||
return;
|
||||
}
|
||||
@ -60,23 +59,21 @@ namespace NadekoBot.Modules {
|
||||
.Description("Queries anilist for a manga and shows the first result.")
|
||||
.Do(async e => {
|
||||
if (!(await SearchHelper.ValidateQuery(e.Channel, e.GetArg("query")))) return;
|
||||
|
||||
var result = await SearchHelper.GetMangaQueryResultLink(e.GetArg("query"));
|
||||
if (result == null) {
|
||||
await e.Channel.SendMessage("Failed to find that manga.");
|
||||
string result;
|
||||
try {
|
||||
result = (await SearchHelper.GetMangaQueryResultLink(e.GetArg("query"))).ToString();
|
||||
} catch {
|
||||
await e.Channel.SendMessage("Failed to find that anime.");
|
||||
return;
|
||||
}
|
||||
await e.Channel.SendMessage(result.ToString());
|
||||
await e.Channel.SendMessage(result);
|
||||
});
|
||||
|
||||
cgb.CreateCommand("~randomcat")
|
||||
.Description("Shows a random cat image.")
|
||||
.Do(async e => {
|
||||
try {
|
||||
await e.Channel.SendMessage(JObject.Parse(
|
||||
await SearchHelper.GetResponseStringAsync("http://www.random.cat/meow"))["file"].ToString());
|
||||
}
|
||||
catch {}
|
||||
await e.Channel.SendMessage(JObject.Parse(
|
||||
await SearchHelper.GetResponseStringAsync("http://www.random.cat/meow"))["file"].ToString());
|
||||
});
|
||||
|
||||
cgb.CreateCommand("~i")
|
||||
@ -127,22 +124,18 @@ namespace NadekoBot.Modules {
|
||||
return;
|
||||
}
|
||||
await e.Channel.SendIsTyping();
|
||||
var headers = new WebHeaderCollection {{"X-Mashape-Key", NadekoBot.Creds.MashapeKey}};
|
||||
var headers = new Dictionary<string, string> { { "X-Mashape-Key", NadekoBot.Creds.MashapeKey } };
|
||||
var res = await SearchHelper.GetResponseStringAsync($"https://omgvamp-hearthstone-v1.p.mashape.com/cards/search/{Uri.EscapeUriString(arg)}", headers);
|
||||
try {
|
||||
var items = JArray.Parse(res);
|
||||
List<System.Drawing.Image> images = new List<System.Drawing.Image>();
|
||||
var items = JArray.Parse(res) as JArray;
|
||||
var images = new List<System.Drawing.Image>();
|
||||
if (items == null)
|
||||
throw new KeyNotFoundException("Cannot find a card by that name");
|
||||
int cnt = 0;
|
||||
var cnt = 0;
|
||||
items.Shuffle();
|
||||
foreach (var item in items) {
|
||||
if (cnt >= 4)
|
||||
break;
|
||||
if (!item.HasValues || item["img"] == null)
|
||||
continue;
|
||||
cnt++;
|
||||
images.Add(System.Drawing.Bitmap.FromStream(await SearchHelper.GetResponseStreamAsync(item["img"].ToString())));
|
||||
foreach (var item in items.TakeWhile(item => cnt++ < 4).Where(item => item.HasValues && item["img"] != null)) {
|
||||
images.Add(
|
||||
Image.FromStream(await SearchHelper.GetResponseStreamAsync(item["img"].ToString())));
|
||||
}
|
||||
if (items.Count > 4) {
|
||||
await e.Channel.SendMessage("⚠ Found over 4 images. Showing random 4.");
|
||||
@ -187,8 +180,7 @@ namespace NadekoBot.Modules {
|
||||
return;
|
||||
}
|
||||
await e.Channel.SendIsTyping();
|
||||
var headers = new WebHeaderCollection();
|
||||
headers.Add("X-Mashape-Key", NadekoBot.Creds.MashapeKey);
|
||||
var headers = new Dictionary<string, string> { { "X-Mashape-Key", NadekoBot.Creds.MashapeKey } };
|
||||
var res = await SearchHelper.GetResponseStringAsync($"https://mashape-community-urban-dictionary.p.mashape.com/define?term={Uri.EscapeUriString(arg)}", headers);
|
||||
try {
|
||||
var items = JObject.Parse(res);
|
||||
@ -212,8 +204,7 @@ namespace NadekoBot.Modules {
|
||||
return;
|
||||
}
|
||||
await e.Channel.SendIsTyping();
|
||||
var headers = new WebHeaderCollection();
|
||||
headers.Add("X-Mashape-Key", NadekoBot.Creds.MashapeKey);
|
||||
var headers = new Dictionary<string, string> { { "X-Mashape-Key", NadekoBot.Creds.MashapeKey } };
|
||||
var res = await SearchHelper.GetResponseStringAsync($"https://tagdef.p.mashape.com/one.{Uri.EscapeUriString(arg)}.json", headers);
|
||||
try {
|
||||
var items = JObject.Parse(res);
|
||||
|
@ -18,7 +18,7 @@ namespace NadekoBot.Modules {
|
||||
TrelloConfiguration.Deserializer = serializer;
|
||||
TrelloConfiguration.JsonFactory = new ManateeFactory();
|
||||
TrelloConfiguration.RestClientProvider = new Manatee.Trello.WebApi.WebApiClientProvider();
|
||||
TrelloAuthorization.Default.AppKey = NadekoBot.TrelloAppKey;
|
||||
TrelloAuthorization.Default.AppKey = NadekoBot.Creds.TrelloAppKey;
|
||||
//TrelloAuthorization.Default.UserToken = "[your user token]";
|
||||
|
||||
Discord.Channel bound = null;
|
||||
|
Reference in New Issue
Block a user