more work, repo DOES NOT BUILD
This commit is contained in:
parent
874eefdf89
commit
1f2b9cd3d3
@ -6,7 +6,7 @@ using System;
|
|||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
namespace NadekoBot.Classes {
|
namespace NadekoBot.Classes {
|
||||||
class DBHandler {
|
internal class DBHandler {
|
||||||
private static readonly DBHandler _instance = new DBHandler();
|
private static readonly DBHandler _instance = new DBHandler();
|
||||||
public static DBHandler Instance => _instance;
|
public static DBHandler Instance => _instance;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace NadekoBot.Classes {
|
namespace NadekoBot.Classes {
|
||||||
static class FlowersHandler {
|
internal static class FlowersHandler {
|
||||||
public static async Task AddFlowersAsync(Discord.User u, string reason, int amount) {
|
public static async Task AddFlowersAsync(Discord.User u, string reason, int amount) {
|
||||||
if (amount <= 0)
|
if (amount <= 0)
|
||||||
return;
|
return;
|
||||||
|
@ -299,7 +299,7 @@ namespace NadekoBot.Classes.Music {
|
|||||||
public long readPos;
|
public long readPos;
|
||||||
public long writePos;
|
public long writePos;
|
||||||
|
|
||||||
public DualStream() : base() {
|
public DualStream() {
|
||||||
readPos = writePos = 0;
|
readPos = writePos = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ using Discord.Commands;
|
|||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
|
|
||||||
namespace NadekoBot.Classes.Permissions {
|
namespace NadekoBot.Classes.Permissions {
|
||||||
class PermissionChecker : IPermissionChecker {
|
internal class PermissionChecker : IPermissionChecker {
|
||||||
public static readonly PermissionChecker _instance = new PermissionChecker();
|
public static readonly PermissionChecker _instance = new PermissionChecker();
|
||||||
public static PermissionChecker Instance => _instance;
|
public static PermissionChecker Instance => _instance;
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ using System.Linq;
|
|||||||
using Discord;
|
using Discord;
|
||||||
|
|
||||||
namespace NadekoBot.Classes {
|
namespace NadekoBot.Classes {
|
||||||
static class PermissionHelper {
|
internal static class PermissionHelper {
|
||||||
public static bool ValidateBool(string passedArg) {
|
public static bool ValidateBool(string passedArg) {
|
||||||
if (string.IsNullOrWhiteSpace(passedArg)) {
|
if (string.IsNullOrWhiteSpace(passedArg)) {
|
||||||
throw new ArgumentException("No value supplied! Missing argument");
|
throw new ArgumentException("No value supplied! Missing argument");
|
||||||
|
@ -5,46 +5,57 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Security.Authentication;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using NadekoBot.Classes.JSONModels;
|
||||||
|
|
||||||
namespace NadekoBot.Classes {
|
namespace NadekoBot.Classes {
|
||||||
|
public enum RequestHttpMethod {
|
||||||
|
Get, Post
|
||||||
|
}
|
||||||
|
|
||||||
public static class SearchHelper {
|
public static class SearchHelper {
|
||||||
public static async Task<Stream> GetResponseStream(string v) {
|
|
||||||
var wr = (HttpWebRequest)WebRequest.Create(v);
|
public static async Task<Stream> GetResponseStream(string query, RequestHttpMethod method = RequestHttpMethod.Get) {
|
||||||
return (await (wr).GetResponseAsync()).GetResponseStream();
|
if (string.IsNullOrWhiteSpace(query))
|
||||||
|
throw new ArgumentNullException(nameof(query));
|
||||||
|
var wr = (HttpWebRequest)WebRequest.Create(query);
|
||||||
|
using (var response = await wr.GetResponseAsync()) {
|
||||||
|
var stream = response?.GetResponseStream();
|
||||||
|
if (stream == null)
|
||||||
|
throw new InvalidOperationException("Did not receive a response.");
|
||||||
|
return stream;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<string> GetResponseAsync(string v, WebHeaderCollection headers = null) {
|
public static async Task<string> GetResponseAsync(string url, RequestHttpMethod method = RequestHttpMethod.Get, params Tuple<string,string>[] headers) {
|
||||||
var wr = (HttpWebRequest)WebRequest.Create(v);
|
using (var httpClient = new HttpClient()) {
|
||||||
if (headers != null)
|
if (headers != null) {
|
||||||
wr.Headers = headers;
|
foreach (var header in headers) {
|
||||||
var stream = (await wr.GetResponseAsync()).GetResponseStream();
|
httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
|
||||||
if (stream == null) return "";
|
}
|
||||||
using (var sr = new StreamReader(stream)) {
|
}
|
||||||
return await sr.ReadToEndAsync();
|
return await httpClient.GetStringAsync(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string token = "";
|
private static string token = "";
|
||||||
public static async Task<AnimeResult> GetAnimeQueryResultLink(string query) {
|
public static async Task<AnimeResult> GetAnimeQueryResultLink(string query) {
|
||||||
try {
|
if (string.IsNullOrWhiteSpace(query))
|
||||||
var cl = new RestSharp.RestClient("http://anilist.co/api");
|
throw new ArgumentNullException(nameof(query));
|
||||||
var rq = new RestSharp.RestRequest("/auth/access_token", RestSharp.Method.POST);
|
|
||||||
|
|
||||||
RefreshAnilistToken();
|
RefreshAnilistToken();
|
||||||
|
|
||||||
rq = new RestSharp.RestRequest("/anime/search/" + Uri.EscapeUriString(query));
|
var link = "http://anilist.co/api/anime/search/" + Uri.EscapeUriString(query);
|
||||||
rq.AddParameter("access_token", token);
|
|
||||||
|
|
||||||
var smallObj = JArray.Parse(cl.Execute(rq).Content)[0];
|
Dictionary<string, string> headers = new {"access_token" = token};
|
||||||
|
var smallContent = await GetResponseAsync(link, headers);
|
||||||
|
var smallObj = JArray.Parse(await httpClient.GetStringAsync(link))[0];
|
||||||
|
var content = await httpClient.GetStringAsync("anime/" + smallObj["id"]);
|
||||||
|
|
||||||
rq = new RestSharp.RestRequest("anime/" + smallObj["id"]);
|
return await Task.Run(() => JsonConvert.DeserializeObject<AnimeResult>(content));
|
||||||
rq.AddParameter("access_token", token);
|
|
||||||
return await Task.Run(() => JsonConvert.DeserializeObject<AnimeResult>(cl.Execute(rq).Content));
|
|
||||||
} catch {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
//todo kick out RestSharp and make it truly async
|
//todo kick out RestSharp and make it truly async
|
||||||
public static async Task<MangaResult> GetMangaQueryResultLink(string query) {
|
public static async Task<MangaResult> GetMangaQueryResultLink(string query) {
|
||||||
@ -83,32 +94,36 @@ namespace NadekoBot.Classes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<bool> ValidateQuery(Discord.Channel ch, string query) {
|
public static async Task<bool> ValidateQuery(Discord.Channel ch, string query) {
|
||||||
if (string.IsNullOrEmpty(query.Trim())) {
|
if (!string.IsNullOrEmpty(query.Trim())) return true;
|
||||||
await ch.Send("Please specify search parameters.");
|
await ch.Send("Please specify search parameters.");
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<string> FindYoutubeUrlByKeywords(string v) {
|
public static async Task<string> FindYoutubeUrlByKeywords(string keywords) {
|
||||||
if (string.IsNullOrWhiteSpace(NadekoBot.GoogleAPIKey)) {
|
if (string.IsNullOrWhiteSpace(NadekoBot.Creds.GoogleAPIKey))
|
||||||
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
throw new InvalidCredentialException("Google API Key is missing.");
|
||||||
return @"https://www.youtube.com/watch?v=dQw4w9WgXcQ";
|
if (keywords.Length > 150)
|
||||||
|
throw new ArgumentException("Query is too long.");
|
||||||
|
|
||||||
|
//maybe it is already a youtube url, in which case we will just extract the id and prepend it with youtube.com?v=
|
||||||
|
var match = new Regex("(?:youtu\\.be\\/|v=)(?<id>[\\da-zA-Z\\-_]*)").Match(keywords);
|
||||||
|
if (match.Length > 1) {
|
||||||
|
return $"http://www.youtube.com?v={ match.Groups["id"].Value }";
|
||||||
}
|
}
|
||||||
|
var wr =
|
||||||
|
WebRequest.Create(
|
||||||
|
$"https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q={Uri.EscapeDataString(keywords)}&key={NadekoBot.Creds.GoogleAPIKey}");
|
||||||
try {
|
try {
|
||||||
//maybe it is already a youtube url, in which case we will just extract the id and prepend it with youtube.com?v=
|
using (var response = await wr.GetResponseAsync())
|
||||||
var match = new Regex("(?:youtu\\.be\\/|v=)(?<id>[\\da-zA-Z\\-_]*)").Match(v);
|
using (var stream = response.GetResponseStream()) {
|
||||||
if (match.Length > 1) {
|
try {
|
||||||
string str = $"http://www.youtube.com?v={ match.Groups["id"].Value }";
|
using (var sr = new StreamReader(stream)) {
|
||||||
return str;
|
dynamic obj = JObject.Parse(await sr.ReadToEndAsync());
|
||||||
}
|
return "http://www.youtube.com/watch?v=" + obj.items[0].id.videoId.ToString();
|
||||||
|
}
|
||||||
WebRequest wr = WebRequest.Create("https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q=" + Uri.EscapeDataString(v) + "&key=" + NadekoBot.GoogleAPIKey);
|
} catch (Exception ex) {
|
||||||
|
ex.Message
|
||||||
using (var sr = new StreamReader((await wr.GetResponseAsync()).GetResponseStream())) {
|
}
|
||||||
|
|
||||||
dynamic obj = JObject.Parse(await sr.ReadToEndAsync());
|
|
||||||
return "http://www.youtube.com/watch?v=" + obj.items[0].id.videoId.ToString();
|
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Console.WriteLine($"Error in findyoutubeurl: {ex.Message}");
|
Console.WriteLine($"Error in findyoutubeurl: {ex.Message}");
|
||||||
@ -117,12 +132,12 @@ namespace NadekoBot.Classes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<string> GetPlaylistIdByKeyword(string v) {
|
public static async Task<string> GetPlaylistIdByKeyword(string v) {
|
||||||
if (string.IsNullOrWhiteSpace(NadekoBot.GoogleAPIKey)) {
|
if (string.IsNullOrWhiteSpace(NadekoBot.Creds.GoogleAPIKey)) {
|
||||||
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
WebRequest wr = WebRequest.Create($"https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q={Uri.EscapeDataString(v)}&type=playlist&key={NadekoBot.creds.GoogleAPIKey}");
|
WebRequest wr = WebRequest.Create($"https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=1&q={Uri.EscapeDataString(v)}&type=playlist&key={NadekoBot.Creds.GoogleAPIKey}");
|
||||||
|
|
||||||
var sr = new StreamReader((await wr.GetResponseAsync()).GetResponseStream());
|
var sr = new StreamReader((await wr.GetResponseAsync()).GetResponseStream());
|
||||||
|
|
||||||
@ -136,12 +151,12 @@ namespace NadekoBot.Classes {
|
|||||||
|
|
||||||
public static async Task<List<string>> GetVideoIDs(string v) {
|
public static async Task<List<string>> GetVideoIDs(string v) {
|
||||||
List<string> toReturn = new List<string>();
|
List<string> toReturn = new List<string>();
|
||||||
if (string.IsNullOrWhiteSpace(NadekoBot.GoogleAPIKey)) {
|
if (string.IsNullOrWhiteSpace(NadekoBot.Creds.GoogleAPIKey)) {
|
||||||
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
Console.WriteLine("ERROR: No google api key found. Playing `Never gonna give you up`.");
|
||||||
return toReturn;
|
return toReturn;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
WebRequest wr = WebRequest.Create($"https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults={30}&playlistId={v}&key={ NadekoBot.creds.GoogleAPIKey }");
|
WebRequest wr = WebRequest.Create($"https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&maxResults={30}&playlistId={v}&key={ NadekoBot.Creds.GoogleAPIKey }");
|
||||||
var response = await wr.GetResponseAsync();
|
var response = await wr.GetResponseAsync();
|
||||||
if (response == null) return toReturn;
|
if (response == null) return toReturn;
|
||||||
var responseStream = response.GetResponseStream();
|
var responseStream = response.GetResponseStream();
|
||||||
@ -206,9 +221,9 @@ namespace NadekoBot.Classes {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<string> ShortenUrl(string url) {
|
public static async Task<string> ShortenUrl(string url) {
|
||||||
if (string.IsNullOrWhiteSpace(NadekoBot.creds.GoogleAPIKey)) return url;
|
if (string.IsNullOrWhiteSpace(NadekoBot.Creds.GoogleAPIKey)) return url;
|
||||||
try {
|
try {
|
||||||
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + NadekoBot.creds.GoogleAPIKey);
|
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.googleapis.com/urlshortener/v1/url?key=" + NadekoBot.Creds.GoogleAPIKey);
|
||||||
httpWebRequest.ContentType = "application/json";
|
httpWebRequest.ContentType = "application/json";
|
||||||
httpWebRequest.Method = "POST";
|
httpWebRequest.Method = "POST";
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace NadekoBot.Classes.Trivia {
|
namespace NadekoBot.Classes.Trivia {
|
||||||
class TriviaGame {
|
internal class TriviaGame {
|
||||||
private readonly object _guessLock = new object();
|
private readonly object _guessLock = new object();
|
||||||
|
|
||||||
private Server _server { get; }
|
private Server _server { get; }
|
||||||
|
@ -7,7 +7,7 @@ using System.Collections.Concurrent;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class ClashOfClans : DiscordCommand {
|
internal class ClashOfClans : DiscordCommand {
|
||||||
|
|
||||||
private static string prefix = ",";
|
private static string prefix = ",";
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ namespace NadekoBot.Commands {
|
|||||||
|
|
||||||
private object writeLock { get; } = new object();
|
private object writeLock { get; } = new object();
|
||||||
|
|
||||||
public ClashOfClans() : base() {
|
public ClashOfClans() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@ using Discord.Commands;
|
|||||||
|
|
||||||
namespace NadekoBot
|
namespace NadekoBot
|
||||||
{
|
{
|
||||||
class CopyCommand : DiscordCommand
|
internal class CopyCommand : DiscordCommand
|
||||||
{
|
{
|
||||||
private List<ulong> CopiedUsers;
|
private List<ulong> CopiedUsers;
|
||||||
|
|
||||||
public CopyCommand() : base()
|
public CopyCommand()
|
||||||
{
|
{
|
||||||
CopiedUsers = new List<ulong>();
|
CopiedUsers = new List<ulong>();
|
||||||
client.MessageReceived += Client_MessageReceived;
|
client.MessageReceived += Client_MessageReceived;
|
||||||
|
@ -8,8 +8,8 @@ using System.Drawing.Imaging;
|
|||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
|
|
||||||
namespace NadekoBot {
|
namespace NadekoBot {
|
||||||
class DiceRollCommand : DiscordCommand {
|
internal class DiceRollCommand : DiscordCommand {
|
||||||
public DiceRollCommand() : base() { }
|
public DiceRollCommand() { }
|
||||||
|
|
||||||
public override Func<CommandEventArgs, Task> DoFunc() {
|
public override Func<CommandEventArgs, Task> DoFunc() {
|
||||||
Random r = new Random();
|
Random r = new Random();
|
||||||
|
@ -7,10 +7,10 @@ using System.Collections.Concurrent;
|
|||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
|
|
||||||
namespace NadekoBot {
|
namespace NadekoBot {
|
||||||
class DrawCommand : DiscordCommand {
|
internal class DrawCommand : DiscordCommand {
|
||||||
private static ConcurrentDictionary<Discord.Server, Cards> AllDecks = new ConcurrentDictionary<Discord.Server, Cards>();
|
private static ConcurrentDictionary<Discord.Server, Cards> AllDecks = new ConcurrentDictionary<Discord.Server, Cards>();
|
||||||
|
|
||||||
public DrawCommand() : base() {
|
public DrawCommand() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ using NadekoBot.Extensions;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace NadekoBot {
|
namespace NadekoBot {
|
||||||
class FlipCoinCommand : DiscordCommand {
|
internal class FlipCoinCommand : DiscordCommand {
|
||||||
|
|
||||||
private Random _r;
|
private Random _r;
|
||||||
public FlipCoinCommand() : base() {
|
public FlipCoinCommand() {
|
||||||
_r = new Random();
|
_r = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace NadekoBot {
|
namespace NadekoBot {
|
||||||
class HelpCommand : DiscordCommand {
|
internal class HelpCommand : DiscordCommand {
|
||||||
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
||||||
#region OldHelp
|
#region OldHelp
|
||||||
/*
|
/*
|
||||||
|
@ -9,7 +9,7 @@ using NadekoBot.Extensions;
|
|||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class LoLCommands : DiscordCommand {
|
internal class LoLCommands : DiscordCommand {
|
||||||
|
|
||||||
private class CachedChampion {
|
private class CachedChampion {
|
||||||
public System.IO.Stream ImageStream { get; set; }
|
public System.IO.Stream ImageStream { get; set; }
|
||||||
@ -22,7 +22,7 @@ namespace NadekoBot.Commands {
|
|||||||
|
|
||||||
|
|
||||||
private System.Timers.Timer clearTimer { get; } = new System.Timers.Timer();
|
private System.Timers.Timer clearTimer { get; } = new System.Timers.Timer();
|
||||||
public LoLCommands() : base() {
|
public LoLCommands() {
|
||||||
clearTimer.Interval = new TimeSpan(0, 10, 0).TotalMilliseconds;
|
clearTimer.Interval = new TimeSpan(0, 10, 0).TotalMilliseconds;
|
||||||
clearTimer.Start();
|
clearTimer.Start();
|
||||||
clearTimer.Elapsed += (s, e) => {
|
clearTimer.Elapsed += (s, e) => {
|
||||||
@ -36,7 +36,7 @@ namespace NadekoBot.Commands {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
string[] trashTalk = new[] { "Better ban your counters. You are going to carry the game anyway.",
|
private string[] trashTalk = new[] { "Better ban your counters. You are going to carry the game anyway.",
|
||||||
"Go with the flow. Don't think. Just ban one of these.",
|
"Go with the flow. Don't think. Just ban one of these.",
|
||||||
"DONT READ BELOW! Ban Urgot mid OP 100%. Im smurf Diamond 1.",
|
"DONT READ BELOW! Ban Urgot mid OP 100%. Im smurf Diamond 1.",
|
||||||
"Ask your teammates what would they like to play, and ban that.",
|
"Ask your teammates what would they like to play, and ban that.",
|
||||||
@ -47,7 +47,7 @@ namespace NadekoBot.Commands {
|
|||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
class MatchupModel {
|
private class MatchupModel {
|
||||||
public int Games { get; set; }
|
public int Games { get; set; }
|
||||||
public float WinRate { get; set; }
|
public float WinRate { get; set; }
|
||||||
[Newtonsoft.Json.JsonProperty("key")]
|
[Newtonsoft.Json.JsonProperty("key")]
|
||||||
@ -270,7 +270,8 @@ Assists: {general["assists"]} Ban: {general["banRate"]}%
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
enum GetImageType {
|
|
||||||
|
private enum GetImageType {
|
||||||
Champion,
|
Champion,
|
||||||
Item
|
Item
|
||||||
}
|
}
|
||||||
|
@ -5,19 +5,19 @@ using Discord.Commands;
|
|||||||
using Discord;
|
using Discord;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class LogCommand : DiscordCommand {
|
internal class LogCommand : DiscordCommand {
|
||||||
|
|
||||||
public LogCommand() : base() {
|
public LogCommand() {
|
||||||
NadekoBot.Client.MessageReceived += MsgRecivd;
|
NadekoBot.Client.MessageReceived += MsgRecivd;
|
||||||
NadekoBot.Client.MessageDeleted += MsgDltd;
|
NadekoBot.Client.MessageDeleted += MsgDltd;
|
||||||
NadekoBot.Client.MessageUpdated += MsgUpdtd;
|
NadekoBot.Client.MessageUpdated += MsgUpdtd;
|
||||||
NadekoBot.Client.UserUpdated += UsrUpdtd;
|
NadekoBot.Client.UserUpdated += UsrUpdtd;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConcurrentDictionary<Server, Channel> logs = new ConcurrentDictionary<Server, Channel>();
|
private ConcurrentDictionary<Server, Channel> logs = new ConcurrentDictionary<Server, Channel>();
|
||||||
ConcurrentDictionary<Server, Channel> loggingPresences = new ConcurrentDictionary<Server, Channel>();
|
private ConcurrentDictionary<Server, Channel> loggingPresences = new ConcurrentDictionary<Server, Channel>();
|
||||||
//
|
//
|
||||||
ConcurrentDictionary<Channel, Channel> voiceChannelLog = new ConcurrentDictionary<Channel, Channel>();
|
private ConcurrentDictionary<Channel, Channel> voiceChannelLog = new ConcurrentDictionary<Channel, Channel>();
|
||||||
|
|
||||||
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
||||||
if (!NadekoBot.IsOwner(e.User.Id) ||
|
if (!NadekoBot.IsOwner(e.User.Id) ||
|
||||||
|
@ -7,7 +7,7 @@ using Discord.Commands;
|
|||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class PlayingRotate : DiscordCommand {
|
internal class PlayingRotate : DiscordCommand {
|
||||||
|
|
||||||
private static List<string> rotatingStatuses = new List<string>();
|
private static List<string> rotatingStatuses = new List<string>();
|
||||||
private static Timer timer = new Timer(12000);
|
private static Timer timer = new Timer(12000);
|
||||||
|
@ -4,7 +4,7 @@ using Discord.Commands;
|
|||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class RequestsCommand : DiscordCommand {
|
internal class RequestsCommand : DiscordCommand {
|
||||||
public void SaveRequest(CommandEventArgs e, string text) {
|
public void SaveRequest(CommandEventArgs e, string text) {
|
||||||
Classes.DBHandler.Instance.InsertData(new Classes._DataModels.Request {
|
Classes.DBHandler.Instance.InsertData(new Classes._DataModels.Request {
|
||||||
RequestText = text,
|
RequestText = text,
|
||||||
|
@ -21,13 +21,13 @@ public class AsyncLazy<T> : Lazy<Task<T>>
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class ServerGreetCommand : DiscordCommand {
|
internal class ServerGreetCommand : DiscordCommand {
|
||||||
|
|
||||||
public static ConcurrentDictionary<ulong, AnnounceControls> AnnouncementsDictionary;
|
public static ConcurrentDictionary<ulong, AnnounceControls> AnnouncementsDictionary;
|
||||||
|
|
||||||
public static long Greeted = 0;
|
public static long Greeted = 0;
|
||||||
|
|
||||||
public ServerGreetCommand() : base() {
|
public ServerGreetCommand() {
|
||||||
AnnouncementsDictionary = new ConcurrentDictionary<ulong, AnnounceControls>();
|
AnnouncementsDictionary = new ConcurrentDictionary<ulong, AnnounceControls>();
|
||||||
|
|
||||||
NadekoBot.Client.UserJoined += UserJoined;
|
NadekoBot.Client.UserJoined += UserJoined;
|
||||||
|
@ -105,11 +105,11 @@ namespace NadekoBot.Commands {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SpeedTyping : DiscordCommand {
|
internal class SpeedTyping : DiscordCommand {
|
||||||
|
|
||||||
private static Dictionary<ulong, TypingGame> runningContests;
|
private static Dictionary<ulong, TypingGame> runningContests;
|
||||||
|
|
||||||
public SpeedTyping() : base() {
|
public SpeedTyping() {
|
||||||
runningContests = new Dictionary<ulong, TypingGame>();
|
runningContests = new Dictionary<ulong, TypingGame>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ using Discord;
|
|||||||
using TriviaGame = NadekoBot.Classes.Trivia.TriviaGame;
|
using TriviaGame = NadekoBot.Classes.Trivia.TriviaGame;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class Trivia : DiscordCommand {
|
internal class Trivia : DiscordCommand {
|
||||||
public static ConcurrentDictionary<Server, TriviaGame> runningTrivias = new ConcurrentDictionary<Server, TriviaGame>();
|
public static ConcurrentDictionary<Server, TriviaGame> runningTrivias = new ConcurrentDictionary<Server, TriviaGame>();
|
||||||
|
|
||||||
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
||||||
|
@ -6,15 +6,15 @@ using System.Collections.Concurrent;
|
|||||||
using Discord;
|
using Discord;
|
||||||
|
|
||||||
namespace NadekoBot.Commands {
|
namespace NadekoBot.Commands {
|
||||||
class VoiceNotificationCommand : DiscordCommand {
|
internal class VoiceNotificationCommand : DiscordCommand {
|
||||||
|
|
||||||
|
|
||||||
public VoiceNotificationCommand() : base() {
|
public VoiceNotificationCommand() {
|
||||||
//NadekoBot.client.
|
//NadekoBot.client.
|
||||||
}
|
}
|
||||||
|
|
||||||
//voicechannel/text channel
|
//voicechannel/text channel
|
||||||
ConcurrentDictionary<Channel, Channel> subscribers = new ConcurrentDictionary<Channel, Channel>();
|
private ConcurrentDictionary<Channel, Channel> subscribers = new ConcurrentDictionary<Channel, Channel>();
|
||||||
|
|
||||||
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
public override Func<CommandEventArgs, Task> DoFunc() => async e => {
|
||||||
var arg = e.GetArg("voice_name");
|
var arg = e.GetArg("voice_name");
|
||||||
|
@ -15,9 +15,9 @@ using NadekoBot.Properties;
|
|||||||
using NadekoBot.Commands;
|
using NadekoBot.Commands;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class Conversations : DiscordModule {
|
internal class Conversations : DiscordModule {
|
||||||
private string firestr = "🔥 ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้ 🔥";
|
private string firestr = "🔥 ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้ 🔥";
|
||||||
public Conversations() : base() {
|
public Conversations() {
|
||||||
commands.Add(new CopyCommand());
|
commands.Add(new CopyCommand());
|
||||||
commands.Add(new RequestsCommand());
|
commands.Add(new RequestsCommand());
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
using Discord.Modules;
|
using Discord.Modules;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace NadekoBot.Modules
|
namespace NadekoBot.Modules {
|
||||||
{
|
internal abstract class DiscordModule : IModule {
|
||||||
abstract class DiscordModule : IModule
|
protected List<DiscordCommand> commands = new List<DiscordCommand>();
|
||||||
{
|
|
||||||
public List<DiscordCommand> commands;
|
|
||||||
|
|
||||||
protected DiscordModule() {
|
protected DiscordModule() {
|
||||||
commands = new List<DiscordCommand>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void Install(ModuleManager manager);
|
public abstract void Install(ModuleManager manager);
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
using Discord.Modules;
|
using Discord.Modules;
|
||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Discord;
|
||||||
|
|
||||||
namespace NadekoBot.Modules
|
namespace NadekoBot.Modules
|
||||||
{
|
{
|
||||||
class Gambling : DiscordModule
|
internal class Gambling : DiscordModule
|
||||||
{
|
{
|
||||||
|
|
||||||
public Gambling() {
|
public Gambling() {
|
||||||
@ -33,33 +34,16 @@ namespace NadekoBot.Modules
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var members = role.Members.Where(u => u.Status == Discord.UserStatus.Online); // only online
|
var members = role.Members.Where(u => u.Status == Discord.UserStatus.Online); // only online
|
||||||
try {
|
var membersArray = members as User[] ?? members.ToArray();
|
||||||
var usr = members.ToArray()[new System.Random().Next(0, members.Count())];
|
var usr = membersArray[new System.Random().Next(0, membersArray.Length)];
|
||||||
await e.Channel.SendMessage($"**Raffled user:** {usr.Name} (id: {usr.Id})");
|
await e.Channel.SendMessage($"**Raffled user:** {usr.Name} (id: {usr.Id})");
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
});
|
});
|
||||||
/*
|
|
||||||
cgb.CreateCommand("$$")
|
|
||||||
.Description("Add moneyz")
|
|
||||||
.Parameter("val", ParameterType.Required)
|
|
||||||
.Do(e => {
|
|
||||||
var arg = e.GetArg("val");
|
|
||||||
var num = int.Parse(arg);
|
|
||||||
Classes.DBHandler.Instance.InsertData(
|
|
||||||
new Classes._DataModels.CurrencyTransaction {
|
|
||||||
Value = num,
|
|
||||||
Reason = "Money plz",
|
|
||||||
UserId = (long)e.User.Id,
|
|
||||||
});
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
cgb.CreateCommand("$$$")
|
cgb.CreateCommand("$$$")
|
||||||
.Description("Check how many NadekoFlowers you have.")
|
.Description("Check how many NadekoFlowers you have.")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
var pts = Classes.DBHandler.Instance.GetStateByUserId((long)e.User.Id)?.Value ?? 0;
|
var pts = Classes.DBHandler.Instance.GetStateByUserId((long)e.User.Id)?.Value ?? 0;
|
||||||
string str = $"`You have {pts} NadekoFlowers".SnPl((int)pts)+"`\n";
|
var str = $"`You have {pts} NadekoFlowers".SnPl((int)pts)+"`\n";
|
||||||
for (int i = 0; i < pts; i++) {
|
for (var i = 0; i < pts; i++) {
|
||||||
str += "🌸";
|
str += "🌸";
|
||||||
}
|
}
|
||||||
await e.Channel.SendMessage(str);
|
await e.Channel.SendMessage(str);
|
||||||
|
@ -6,14 +6,12 @@ using Newtonsoft.Json.Linq;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
//🃏
|
//🃏
|
||||||
//🏁
|
//🏁
|
||||||
namespace NadekoBot.Modules
|
namespace NadekoBot.Modules {
|
||||||
{
|
internal class Games : DiscordModule {
|
||||||
class Games : DiscordModule
|
private readonly string[] _8BallAnswers;
|
||||||
{
|
private Random rng = new Random();
|
||||||
private string[] _8BallAnswers;
|
|
||||||
private Random _r = new Random();
|
|
||||||
|
|
||||||
public Games() : base() {
|
public Games() {
|
||||||
commands.Add(new Trivia());
|
commands.Add(new Trivia());
|
||||||
commands.Add(new SpeedTyping());
|
commands.Add(new SpeedTyping());
|
||||||
commands.Add(new PollCommand());
|
commands.Add(new PollCommand());
|
||||||
@ -22,8 +20,7 @@ namespace NadekoBot.Modules
|
|||||||
_8BallAnswers = JArray.Parse(File.ReadAllText("data/8ball.json")).Select(t => t.ToString()).ToArray();
|
_8BallAnswers = JArray.Parse(File.ReadAllText("data/8ball.json")).Select(t => t.ToString()).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Install(ModuleManager manager)
|
public override void Install(ModuleManager manager) {
|
||||||
{
|
|
||||||
manager.CreateCommands("", cgb => {
|
manager.CreateCommands("", cgb => {
|
||||||
|
|
||||||
cgb.AddCheck(Classes.Permissions.PermissionChecker.Instance);
|
cgb.AddCheck(Classes.Permissions.PermissionChecker.Instance);
|
||||||
@ -40,39 +37,35 @@ namespace NadekoBot.Modules
|
|||||||
var list = arg.Split(';');
|
var list = arg.Split(';');
|
||||||
if (list.Count() < 2)
|
if (list.Count() < 2)
|
||||||
return;
|
return;
|
||||||
await e.Channel.SendMessage(list[new Random().Next(0, list.Length)]);
|
await e.Channel.SendMessage(list[rng.Next(0, list.Length)]);
|
||||||
});
|
});
|
||||||
|
|
||||||
cgb.CreateCommand(">8ball")
|
cgb.CreateCommand(">8ball")
|
||||||
.Description("Ask the 8ball a yes/no question.")
|
.Description("Ask the 8ball a yes/no question.")
|
||||||
.Parameter("question",Discord.Commands.ParameterType.Unparsed)
|
.Parameter("question", Discord.Commands.ParameterType.Unparsed)
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
string question = e.GetArg("question");
|
var question = e.GetArg("question");
|
||||||
if (string.IsNullOrWhiteSpace(question))
|
if (string.IsNullOrWhiteSpace(question))
|
||||||
return;
|
return;
|
||||||
try {
|
try {
|
||||||
await e.Channel.SendMessage(
|
await e.Channel.SendMessage(
|
||||||
$":question: **Question**: `{question}` \n:crystal_ball: **8Ball Answers**: `{_8BallAnswers[new Random().Next(0, _8BallAnswers.Length)]}`");
|
$":question: **Question**: `{question}` \n:crystal_ball: **8Ball Answers**: `{_8BallAnswers[rng.Next(0, _8BallAnswers.Length)]}`");
|
||||||
}
|
} catch { }
|
||||||
catch { }
|
|
||||||
});
|
});
|
||||||
|
|
||||||
cgb.CreateCommand(">")
|
cgb.CreateCommand(">")
|
||||||
.Description("Attack a person. Supported attacks: 'splash', 'strike', 'burn', 'surge'.\n**Usage**: > strike @User")
|
.Description("Attack a person. Supported attacks: 'splash', 'strike', 'burn', 'surge'.\n**Usage**: > strike @User")
|
||||||
.Parameter("attack_type",Discord.Commands.ParameterType.Required)
|
.Parameter("attack_type", Discord.Commands.ParameterType.Required)
|
||||||
.Parameter("target",Discord.Commands.ParameterType.Required)
|
.Parameter("target", Discord.Commands.ParameterType.Required)
|
||||||
.Do(async e =>
|
.Do(async e => {
|
||||||
{
|
|
||||||
var usr = e.Server.FindUsers(e.GetArg("target")).FirstOrDefault();
|
var usr = e.Server.FindUsers(e.GetArg("target")).FirstOrDefault();
|
||||||
var usrType = GetType(usr.Id);
|
var usrType = GetType(usr.Id);
|
||||||
string response = "";
|
var response = "";
|
||||||
int dmg = GetDamage(usrType, e.GetArg("attack_type").ToLowerInvariant());
|
var dmg = GetDamage(usrType, e.GetArg("attack_type").ToLowerInvariant());
|
||||||
response = e.GetArg("attack_type") + (e.GetArg("attack_type") == "splash" ? "es " : "s ") + $"{usr.Mention}{GetImage(usrType)} for {dmg}\n";
|
response = e.GetArg("attack_type") + (e.GetArg("attack_type") == "splash" ? "es " : "s ") + $"{usr.Mention}{GetImage(usrType)} for {dmg}\n";
|
||||||
if (dmg >= 65)
|
if (dmg >= 65) {
|
||||||
{
|
|
||||||
response += "It's super effective!";
|
response += "It's super effective!";
|
||||||
}
|
} else if (dmg <= 35) {
|
||||||
else if (dmg <= 35) {
|
|
||||||
response += "Ineffective!";
|
response += "Ineffective!";
|
||||||
}
|
}
|
||||||
await e.Channel.SendMessage($"{ e.User.Mention }{GetImage(GetType(e.User.Id))} {response}");
|
await e.Channel.SendMessage($"{ e.User.Mention }{GetImage(GetType(e.User.Id))} {response}");
|
||||||
@ -81,11 +74,11 @@ namespace NadekoBot.Modules
|
|||||||
cgb.CreateCommand("poketype")
|
cgb.CreateCommand("poketype")
|
||||||
.Parameter("target", Discord.Commands.ParameterType.Required)
|
.Parameter("target", Discord.Commands.ParameterType.Required)
|
||||||
.Description("Gets the users element type. Use this to do more damage with strike!")
|
.Description("Gets the users element type. Use this to do more damage with strike!")
|
||||||
.Do(async e =>
|
.Do(async e => {
|
||||||
{
|
|
||||||
var usr = e.Server.FindUsers(e.GetArg("target")).FirstOrDefault();
|
var usr = e.Server.FindUsers(e.GetArg("target")).FirstOrDefault();
|
||||||
if (usr == null) {
|
if (usr == null) {
|
||||||
await e.Channel.SendMessage("No such person.");
|
await e.Channel.SendMessage("No such person.");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
var t = GetType(usr.Id);
|
var t = GetType(usr.Id);
|
||||||
await e.Channel.SendMessage($"{usr.Name}'s type is {GetImage(t)} {t}");
|
await e.Channel.SendMessage($"{usr.Name}'s type is {GetImage(t)} {t}");
|
||||||
@ -104,7 +97,8 @@ namespace NadekoBot.Modules
|
|||||||
🐛 Insect
|
🐛 Insect
|
||||||
🌟 or 💫 or ✨ Fairy
|
🌟 or 💫 or ✨ Fairy
|
||||||
*/
|
*/
|
||||||
string GetImage(PokeType t) {
|
|
||||||
|
private string GetImage(PokeType t) {
|
||||||
switch (t) {
|
switch (t) {
|
||||||
case PokeType.WATER:
|
case PokeType.WATER:
|
||||||
return "💦";
|
return "💦";
|
||||||
@ -119,11 +113,9 @@ namespace NadekoBot.Modules
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int GetDamage(PokeType targetType, string v)
|
private int GetDamage(PokeType targetType, string v) {
|
||||||
{
|
|
||||||
var rng = new Random();
|
var rng = new Random();
|
||||||
switch (v)
|
switch (v) {
|
||||||
{
|
|
||||||
case "splash": //water
|
case "splash": //water
|
||||||
if (targetType == PokeType.FIRE)
|
if (targetType == PokeType.FIRE)
|
||||||
return rng.Next(65, 100);
|
return rng.Next(65, 100);
|
||||||
@ -166,21 +158,16 @@ namespace NadekoBot.Modules
|
|||||||
var remainder = id % 10;
|
var remainder = id % 10;
|
||||||
if (remainder < 3)
|
if (remainder < 3)
|
||||||
return PokeType.WATER;
|
return PokeType.WATER;
|
||||||
else if (remainder >= 3 && remainder < 5)
|
else if (remainder >= 3 && remainder < 5) {
|
||||||
{
|
|
||||||
return PokeType.GRASS;
|
return PokeType.GRASS;
|
||||||
}
|
} else if (remainder >= 5 && remainder < 8) {
|
||||||
else if (remainder >= 5 && remainder < 8)
|
|
||||||
{
|
|
||||||
return PokeType.FIRE;
|
return PokeType.FIRE;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return PokeType.ELECTRICAL;
|
return PokeType.ELECTRICAL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private enum PokeType
|
private enum PokeType {
|
||||||
{
|
|
||||||
WATER, GRASS, FIRE, ELECTRICAL
|
WATER, GRASS, FIRE, ELECTRICAL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,9 +3,9 @@ using Discord.Modules;
|
|||||||
using Discord.Commands;
|
using Discord.Commands;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class Help : DiscordModule {
|
internal class Help : DiscordModule {
|
||||||
|
|
||||||
public Help() : base() {
|
public Help() {
|
||||||
commands.Add(new HelpCommand());
|
commands.Add(new HelpCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,16 +11,16 @@ using System.Threading.Tasks;
|
|||||||
using Timer = System.Timers.Timer;
|
using Timer = System.Timers.Timer;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class Music : DiscordModule {
|
internal class Music : DiscordModule {
|
||||||
|
|
||||||
public static ConcurrentDictionary<Server, MusicPlayer> musicPlayers = new ConcurrentDictionary<Server, MusicPlayer>();
|
public static ConcurrentDictionary<Server, MusicPlayer> musicPlayers = new ConcurrentDictionary<Server, MusicPlayer>();
|
||||||
public static ConcurrentDictionary<ulong, float> defaultMusicVolumes = new ConcurrentDictionary<ulong, float>();
|
public static ConcurrentDictionary<ulong, float> defaultMusicVolumes = new ConcurrentDictionary<ulong, float>();
|
||||||
|
|
||||||
Timer setgameTimer => new Timer();
|
private Timer setgameTimer => new Timer();
|
||||||
|
|
||||||
bool setgameEnabled = false;
|
private bool setgameEnabled = false;
|
||||||
|
|
||||||
public Music() : base() {
|
public Music() {
|
||||||
|
|
||||||
setgameTimer.Interval = 20000;
|
setgameTimer.Interval = 20000;
|
||||||
setgameTimer.Elapsed += (s, e) => {
|
setgameTimer.Elapsed += (s, e) => {
|
||||||
|
@ -5,11 +5,11 @@ using Newtonsoft.Json.Linq;
|
|||||||
using NadekoBot.Classes;
|
using NadekoBot.Classes;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class NSFW : DiscordModule {
|
internal class NSFW : DiscordModule {
|
||||||
|
|
||||||
private Random _r = new Random();
|
private Random _r = new Random();
|
||||||
|
|
||||||
public NSFW() : base() {
|
public NSFW() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,10 @@ using PermsHandler = NadekoBot.Classes.Permissions.PermissionsHandler;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class PermissionModule : DiscordModule {
|
internal class PermissionModule : DiscordModule {
|
||||||
string prefix = ";";
|
private const string prefix = ";";
|
||||||
public PermissionModule() : base() {
|
|
||||||
|
public PermissionModule() {
|
||||||
//Empty for now
|
//Empty for now
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +136,7 @@ namespace NadekoBot.Modules {
|
|||||||
cgb.CreateCommand(prefix + "sm").Alias(prefix + "servermodule")
|
cgb.CreateCommand(prefix + "sm").Alias(prefix + "servermodule")
|
||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Description("Sets a module's permission at the server level.\n**Usage**: ;sm <module_name> enable")
|
.Description("Sets a module's permission at the server level.\n**Usage**: ;sm [module_name] enable")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||||
@ -155,7 +156,7 @@ namespace NadekoBot.Modules {
|
|||||||
cgb.CreateCommand(prefix + "sc").Alias(prefix + "servercommand")
|
cgb.CreateCommand(prefix + "sc").Alias(prefix + "servercommand")
|
||||||
.Parameter("command", ParameterType.Required)
|
.Parameter("command", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Description("Sets a command's permission at the server level.\n**Usage**: ;sc <command_name> disable")
|
.Description("Sets a command's permission at the server level.\n**Usage**: ;sc [command_name] disable")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
||||||
@ -176,7 +177,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("role", ParameterType.Unparsed)
|
.Parameter("role", ParameterType.Unparsed)
|
||||||
.Description("Sets a module's permission at the role level.\n**Usage**: ;rm <module_name> enable <role_name>")
|
.Description("Sets a module's permission at the role level.\n**Usage**: ;rm [module_name] enable [role_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||||
@ -207,7 +208,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("command", ParameterType.Required)
|
.Parameter("command", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("role", ParameterType.Unparsed)
|
.Parameter("role", ParameterType.Unparsed)
|
||||||
.Description("Sets a command's permission at the role level.\n**Usage**: ;rc <command_name> disable <role_name>")
|
.Description("Sets a command's permission at the role level.\n**Usage**: ;rc [command_name] disable [role_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
||||||
@ -238,7 +239,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("channel", ParameterType.Unparsed)
|
.Parameter("channel", ParameterType.Unparsed)
|
||||||
.Description("Sets a module's permission at the channel level.\n**Usage**: ;cm <module_name> enable <channel_name>")
|
.Description("Sets a module's permission at the channel level.\n**Usage**: ;cm [module_name] enable [channel_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||||
@ -269,7 +270,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("command", ParameterType.Required)
|
.Parameter("command", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("channel", ParameterType.Unparsed)
|
.Parameter("channel", ParameterType.Unparsed)
|
||||||
.Description("Sets a command's permission at the channel level.\n**Usage**: ;cm enable <channel_name>")
|
.Description("Sets a command's permission at the channel level.\n**Usage**: ;cc [command_name] enable [channel_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
||||||
@ -300,7 +301,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("user", ParameterType.Unparsed)
|
.Parameter("user", ParameterType.Unparsed)
|
||||||
.Description("Sets a module's permission at the user level.\n**Usage**: ;um <module_name> enable <user_name>")
|
.Description("Sets a module's permission at the user level.\n**Usage**: ;um [module_name] enable [user_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
|
||||||
@ -322,7 +323,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("command", ParameterType.Required)
|
.Parameter("command", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("user", ParameterType.Unparsed)
|
.Parameter("user", ParameterType.Unparsed)
|
||||||
.Description("Sets a command's permission at the user level.\n**Usage**: ;uc <module_command> enable <user_name>")
|
.Description("Sets a command's permission at the user level.\n**Usage**: ;uc [command_name] enable [user_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
|
||||||
@ -342,7 +343,7 @@ namespace NadekoBot.Modules {
|
|||||||
|
|
||||||
cgb.CreateCommand(prefix + "asm").Alias(prefix + "allservermodules")
|
cgb.CreateCommand(prefix + "asm").Alias(prefix + "allservermodules")
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Description("Sets permissions for all modules at the server level.\n**Usage**: ;asm <enable/disable>")
|
.Description("Sets permissions for all modules at the server level.\n**Usage**: ;asm [enable/disable]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||||
@ -363,7 +364,7 @@ namespace NadekoBot.Modules {
|
|||||||
cgb.CreateCommand(prefix + "asc").Alias(prefix + "allservercommands")
|
cgb.CreateCommand(prefix + "asc").Alias(prefix + "allservercommands")
|
||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Description("Sets permissions for all commands from a certain module at the server level.\n**Usage**: ;asc <module_name> <enable/disable>")
|
.Description("Sets permissions for all commands from a certain module at the server level.\n**Usage**: ;asc [module_name] [enable/disable]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||||
@ -385,7 +386,7 @@ namespace NadekoBot.Modules {
|
|||||||
cgb.CreateCommand(prefix + "acm").Alias(prefix + "allchannelmodules")
|
cgb.CreateCommand(prefix + "acm").Alias(prefix + "allchannelmodules")
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("channel", ParameterType.Unparsed)
|
.Parameter("channel", ParameterType.Unparsed)
|
||||||
.Description("Sets permissions for all modules at the channel level.\n**Usage**: ;acm <enable/disable> <channel_name>")
|
.Description("Sets permissions for all modules at the channel level.\n**Usage**: ;acm [enable/disable] [channel_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||||
@ -408,7 +409,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("channel", ParameterType.Unparsed)
|
.Parameter("channel", ParameterType.Unparsed)
|
||||||
.Description("Sets permissions for all commands from a certain module at the channel level.\n**Usage**: ;acc <module_name> <enable/disable> <channel_name>")
|
.Description("Sets permissions for all commands from a certain module at the channel level.\n**Usage**: ;acc [module_name] [enable/disable] [channel_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||||
@ -430,7 +431,7 @@ namespace NadekoBot.Modules {
|
|||||||
cgb.CreateCommand(prefix + "arm").Alias(prefix + "allrolemodules")
|
cgb.CreateCommand(prefix + "arm").Alias(prefix + "allrolemodules")
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("role", ParameterType.Unparsed)
|
.Parameter("role", ParameterType.Unparsed)
|
||||||
.Description("Sets permissions for all modules at the role level.\n**Usage**: ;arm <enable/disable> <role_name>")
|
.Description("Sets permissions for all modules at the role level.\n**Usage**: ;arm [enable/disable] [role_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||||
@ -453,7 +454,7 @@ namespace NadekoBot.Modules {
|
|||||||
.Parameter("module", ParameterType.Required)
|
.Parameter("module", ParameterType.Required)
|
||||||
.Parameter("bool", ParameterType.Required)
|
.Parameter("bool", ParameterType.Required)
|
||||||
.Parameter("channel", ParameterType.Unparsed)
|
.Parameter("channel", ParameterType.Unparsed)
|
||||||
.Description("Sets permissions for all commands from a certain module at the role level.\n**Usage**: ;arc <module_name> <enable/disable> <channel_name>")
|
.Description("Sets permissions for all commands from a certain module at the role level.\n**Usage**: ;arc [module_name] [enable/disable] [channel_name]")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
|
||||||
|
@ -10,16 +10,14 @@ using NadekoBot.Classes;
|
|||||||
using NadekoBot.Commands;
|
using NadekoBot.Commands;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class Searches : DiscordModule {
|
internal class Searches : DiscordModule {
|
||||||
private Random _r;
|
private readonly Random rng;
|
||||||
public Searches() : base() {
|
public Searches() {
|
||||||
commands.Add(new LoLCommands());
|
commands.Add(new LoLCommands());
|
||||||
_r = new Random();
|
rng = new Random();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Install(ModuleManager manager) {
|
public override void Install(ModuleManager manager) {
|
||||||
var client = NadekoBot.Client;
|
|
||||||
|
|
||||||
manager.CreateCommands("", cgb => {
|
manager.CreateCommands("", cgb => {
|
||||||
|
|
||||||
cgb.AddCheck(Classes.Permissions.PermissionChecker.Instance);
|
cgb.AddCheck(Classes.Permissions.PermissionChecker.Instance);
|
||||||
@ -34,14 +32,14 @@ namespace NadekoBot.Modules {
|
|||||||
|
|
||||||
var str = await SearchHelper.ShortenUrl(await SearchHelper.FindYoutubeUrlByKeywords(e.GetArg("query")));
|
var str = await SearchHelper.ShortenUrl(await SearchHelper.FindYoutubeUrlByKeywords(e.GetArg("query")));
|
||||||
if (string.IsNullOrEmpty(str.Trim())) {
|
if (string.IsNullOrEmpty(str.Trim())) {
|
||||||
await e.Channel.SendMessage("Query failed");
|
await e.Channel.SendMessage("Query failed.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await e.Channel.SendMessage(str);
|
await e.Channel.SendMessage(str);
|
||||||
});
|
});
|
||||||
|
|
||||||
cgb.CreateCommand("~ani")
|
cgb.CreateCommand("~ani")
|
||||||
.Alias("~anime").Alias("~aq")
|
.Alias("~anime", "~aq")
|
||||||
.Parameter("query", ParameterType.Unparsed)
|
.Parameter("query", ParameterType.Unparsed)
|
||||||
.Description("Queries anilist for an anime and shows the first result.")
|
.Description("Queries anilist for an anime and shows the first result.")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
@ -75,13 +73,10 @@ namespace NadekoBot.Modules {
|
|||||||
.Description("Shows a random cat image.")
|
.Description("Shows a random cat image.")
|
||||||
.Do(async e => {
|
.Do(async e => {
|
||||||
try {
|
try {
|
||||||
await e.Channel.SendMessage(JObject.Parse(new StreamReader(
|
await e.Channel.SendMessage(JObject.Parse(
|
||||||
WebRequest.Create("http://www.random.cat/meow")
|
await SearchHelper.GetResponseAsync("http://www.random.cat/meow"))["file"].ToString());
|
||||||
.GetResponse()
|
|
||||||
.GetResponseStream())
|
|
||||||
.ReadToEnd())["file"].ToString());
|
|
||||||
}
|
}
|
||||||
catch { }
|
catch {}
|
||||||
});
|
});
|
||||||
|
|
||||||
cgb.CreateCommand("~i")
|
cgb.CreateCommand("~i")
|
||||||
@ -91,11 +86,10 @@ namespace NadekoBot.Modules {
|
|||||||
if (string.IsNullOrWhiteSpace(e.GetArg("query")))
|
if (string.IsNullOrWhiteSpace(e.GetArg("query")))
|
||||||
return;
|
return;
|
||||||
try {
|
try {
|
||||||
var reqString = $"https://www.googleapis.com/customsearch/v1?q={Uri.EscapeDataString(e.GetArg("query"))}&cx=018084019232060951019%3Ahs5piey28-e&num=1&searchType=image&fields=items%2Flink&key={NadekoBot.creds.GoogleAPIKey}";
|
var reqString = $"https://www.googleapis.com/customsearch/v1?q={Uri.EscapeDataString(e.GetArg("query"))}&cx=018084019232060951019%3Ahs5piey28-e&num=1&searchType=image&fields=items%2Flink&key={NadekoBot.Creds.GoogleAPIKey}";
|
||||||
var obj = JObject.Parse(await SearchHelper.GetResponseAsync(reqString));
|
var obj = JObject.Parse(await SearchHelper.GetResponseAsync(reqString));
|
||||||
await e.Channel.SendMessage(obj["items"][0]["link"].ToString());
|
await e.Channel.SendMessage(obj["items"][0]["link"].ToString());
|
||||||
}
|
} catch (Exception ex) {
|
||||||
catch (Exception ex) {
|
|
||||||
await e.Channel.SendMessage($"💢 {ex.Message}");
|
await e.Channel.SendMessage($"💢 {ex.Message}");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -107,11 +101,10 @@ namespace NadekoBot.Modules {
|
|||||||
if (string.IsNullOrWhiteSpace(e.GetArg("query")))
|
if (string.IsNullOrWhiteSpace(e.GetArg("query")))
|
||||||
return;
|
return;
|
||||||
try {
|
try {
|
||||||
var reqString = $"https://www.googleapis.com/customsearch/v1?q={Uri.EscapeDataString(e.GetArg("query"))}&cx=018084019232060951019%3Ahs5piey28-e&num=1&searchType=image&start={ _r.Next(1, 150) }&fields=items%2Flink&key={NadekoBot.creds.GoogleAPIKey}";
|
var reqString = $"https://www.googleapis.com/customsearch/v1?q={Uri.EscapeDataString(e.GetArg("query"))}&cx=018084019232060951019%3Ahs5piey28-e&num=1&searchType=image&start={ rng.Next(1, 150) }&fields=items%2Flink&key={NadekoBot.Creds.GoogleAPIKey}";
|
||||||
var obj = JObject.Parse(await SearchHelper.GetResponseAsync(reqString));
|
var obj = JObject.Parse(await SearchHelper.GetResponseAsync(reqString));
|
||||||
await e.Channel.SendMessage(obj["items"][0]["link"].ToString());
|
await e.Channel.SendMessage(obj["items"][0]["link"].ToString());
|
||||||
}
|
} catch (Exception ex) {
|
||||||
catch (Exception ex) {
|
|
||||||
await e.Channel.SendMessage($"💢 {ex.Message}");
|
await e.Channel.SendMessage($"💢 {ex.Message}");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -134,8 +127,7 @@ namespace NadekoBot.Modules {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await e.Channel.SendIsTyping();
|
await e.Channel.SendIsTyping();
|
||||||
var headers = new WebHeaderCollection();
|
var headers = new WebHeaderCollection {{"X-Mashape-Key", NadekoBot.Creds.MashapeKey}};
|
||||||
headers.Add("X-Mashape-Key", NadekoBot.creds.MashapeKey);
|
|
||||||
var res = await SearchHelper.GetResponseAsync($"https://omgvamp-hearthstone-v1.p.mashape.com/cards/search/{Uri.EscapeUriString(arg)}", headers);
|
var res = await SearchHelper.GetResponseAsync($"https://omgvamp-hearthstone-v1.p.mashape.com/cards/search/{Uri.EscapeUriString(arg)}", headers);
|
||||||
try {
|
try {
|
||||||
var items = JArray.Parse(res);
|
var items = JArray.Parse(res);
|
||||||
@ -155,11 +147,8 @@ namespace NadekoBot.Modules {
|
|||||||
if (items.Count > 4) {
|
if (items.Count > 4) {
|
||||||
await e.Channel.SendMessage("⚠ Found over 4 images. Showing random 4.");
|
await e.Channel.SendMessage("⚠ Found over 4 images. Showing random 4.");
|
||||||
}
|
}
|
||||||
Console.WriteLine("Start");
|
|
||||||
await e.Channel.SendFile(arg + ".png", (await images.MergeAsync()).ToStream(System.Drawing.Imaging.ImageFormat.Png));
|
await e.Channel.SendFile(arg + ".png", (await images.MergeAsync()).ToStream(System.Drawing.Imaging.ImageFormat.Png));
|
||||||
Console.WriteLine("Finish");
|
} catch (Exception ex) {
|
||||||
}
|
|
||||||
catch (Exception ex) {
|
|
||||||
await e.Channel.SendMessage($"💢 Error {ex.Message}");
|
await e.Channel.SendMessage($"💢 Error {ex.Message}");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -180,11 +169,9 @@ namespace NadekoBot.Modules {
|
|||||||
try {
|
try {
|
||||||
await e.Channel.SendFile($"{e.GetArg("usr")}.png", new MemoryStream(cle.Result));
|
await e.Channel.SendFile($"{e.GetArg("usr")}.png", new MemoryStream(cle.Result));
|
||||||
await e.Channel.SendMessage($"`Profile Link:`https://osu.ppy.sh/u/{Uri.EscapeDataString(e.GetArg("usr"))}\n`Image provided by https://lemmmy.pw/osusig`");
|
await e.Channel.SendMessage($"`Profile Link:`https://osu.ppy.sh/u/{Uri.EscapeDataString(e.GetArg("usr"))}\n`Image provided by https://lemmmy.pw/osusig`");
|
||||||
}
|
} catch { }
|
||||||
catch { }
|
|
||||||
};
|
};
|
||||||
}
|
} catch {
|
||||||
catch {
|
|
||||||
await e.Channel.SendMessage("💢 Failed retrieving osu signature :\\");
|
await e.Channel.SendMessage("💢 Failed retrieving osu signature :\\");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -201,7 +188,7 @@ namespace NadekoBot.Modules {
|
|||||||
}
|
}
|
||||||
await e.Channel.SendIsTyping();
|
await e.Channel.SendIsTyping();
|
||||||
var headers = new WebHeaderCollection();
|
var headers = new WebHeaderCollection();
|
||||||
headers.Add("X-Mashape-Key", NadekoBot.creds.MashapeKey);
|
headers.Add("X-Mashape-Key", NadekoBot.Creds.MashapeKey);
|
||||||
var res = await SearchHelper.GetResponseAsync($"https://mashape-community-urban-dictionary.p.mashape.com/define?term={Uri.EscapeUriString(arg)}", headers);
|
var res = await SearchHelper.GetResponseAsync($"https://mashape-community-urban-dictionary.p.mashape.com/define?term={Uri.EscapeUriString(arg)}", headers);
|
||||||
try {
|
try {
|
||||||
var items = JObject.Parse(res);
|
var items = JObject.Parse(res);
|
||||||
@ -210,8 +197,7 @@ namespace NadekoBot.Modules {
|
|||||||
sb.AppendLine($"`Definition:` {items["list"][0]["definition"].ToString()}");
|
sb.AppendLine($"`Definition:` {items["list"][0]["definition"].ToString()}");
|
||||||
sb.Append($"`Link:` <{await items["list"][0]["permalink"].ToString().ShortenUrl()}>");
|
sb.Append($"`Link:` <{await items["list"][0]["permalink"].ToString().ShortenUrl()}>");
|
||||||
await e.Channel.SendMessage(sb.ToString());
|
await e.Channel.SendMessage(sb.ToString());
|
||||||
}
|
} catch {
|
||||||
catch {
|
|
||||||
await e.Channel.SendMessage("💢 Failed finding a definition for that term.");
|
await e.Channel.SendMessage("💢 Failed finding a definition for that term.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -227,7 +213,7 @@ namespace NadekoBot.Modules {
|
|||||||
}
|
}
|
||||||
await e.Channel.SendIsTyping();
|
await e.Channel.SendIsTyping();
|
||||||
var headers = new WebHeaderCollection();
|
var headers = new WebHeaderCollection();
|
||||||
headers.Add("X-Mashape-Key", NadekoBot.creds.MashapeKey);
|
headers.Add("X-Mashape-Key", NadekoBot.Creds.MashapeKey);
|
||||||
var res = await SearchHelper.GetResponseAsync($"https://tagdef.p.mashape.com/one.{Uri.EscapeUriString(arg)}.json", headers);
|
var res = await SearchHelper.GetResponseAsync($"https://tagdef.p.mashape.com/one.{Uri.EscapeUriString(arg)}.json", headers);
|
||||||
try {
|
try {
|
||||||
var items = JObject.Parse(res);
|
var items = JObject.Parse(res);
|
||||||
@ -236,8 +222,7 @@ namespace NadekoBot.Modules {
|
|||||||
sb.AppendLine($"`Definition:` {items["defs"]["def"]["text"].ToString()}");
|
sb.AppendLine($"`Definition:` {items["defs"]["def"]["text"].ToString()}");
|
||||||
sb.Append($"`Link:` <{await items["defs"]["def"]["uri"].ToString().ShortenUrl()}>");
|
sb.Append($"`Link:` <{await items["defs"]["def"]["uri"].ToString().ShortenUrl()}>");
|
||||||
await e.Channel.SendMessage(sb.ToString());
|
await e.Channel.SendMessage(sb.ToString());
|
||||||
}
|
} catch {
|
||||||
catch {
|
|
||||||
await e.Channel.SendMessage("💢 Failed finidng a definition for that tag.");
|
await e.Channel.SendMessage("💢 Failed finidng a definition for that tag.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -8,7 +8,7 @@ using System.Timers;
|
|||||||
using NadekoBot.Extensions;
|
using NadekoBot.Extensions;
|
||||||
|
|
||||||
namespace NadekoBot.Modules {
|
namespace NadekoBot.Modules {
|
||||||
class Trello : DiscordModule {
|
internal class Trello : DiscordModule {
|
||||||
public override void Install(ModuleManager manager) {
|
public override void Install(ModuleManager manager) {
|
||||||
|
|
||||||
var client = manager.Client;
|
var client = manager.Client;
|
||||||
|
@ -21,7 +21,7 @@ namespace NadekoBot {
|
|||||||
|
|
||||||
private static Channel OwnerPrivateChannel { get; set; }
|
private static Channel OwnerPrivateChannel { get; set; }
|
||||||
|
|
||||||
static void Main() {
|
private static void Main() {
|
||||||
try {
|
try {
|
||||||
//load credentials from credentials.json
|
//load credentials from credentials.json
|
||||||
Creds = JsonConvert.DeserializeObject<Credentials>(File.ReadAllText("credentials.json"));
|
Creds = JsonConvert.DeserializeObject<Credentials>(File.ReadAllText("credentials.json"));
|
||||||
|
Loading…
Reference in New Issue
Block a user