Esempio n. 1
0
        public DadJokesService()
        {
            var dbPath = Path.Combine(FileSystem.AppDataDirectory, "jokes.db");

            db = new SQLiteAsyncConnection(dbPath);

            init = Task.WhenAll(db.CreateTableAsync <Joke>());

            client = new DadJokeClient("UWC Demo");
        }
        private async void  Client_OnMessageReceived(object sender, OnMessageReceivedArgs e)
        {
            Random rand  = new Random();
            bool   isMod = e.ChatMessage.IsModerator || e.ChatMessage.IsBroadcaster;
            bool   continueOrStopBecasueNotMod = !requireMod || (requireMod && isMod);

            string[] prettyStrings = new string[] { "I believe in you (name).", "You are valid (name), and I see you.", "Hey (name), I appreciate you.", "You are superior to negative thoughts and low actions (name)", "(name) is bold and courageous.", "You are highly valued (name)!", "If opportunity doesn't knock, build a door (name).", "Wherever you go, no matter what the weather, (name) is always bringing the sunshine!", "(name) you are in charge of your own happiness." };
            if (pretty)
            {
                if (rand.Next(0, pretyIntVal) == pretyIntVal - 1)
                {
                    string toSend = prettyStrings[rand.Next(0, prettyStrings.Count() - 1)].Replace("(name)", e.ChatMessage.Username);
                    client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), toSend);
                }
            }



            if (!continueOrStopBecasueNotMod)
            {
                return;
            }
            string message = e.ChatMessage.Message.ToLower();

            foreach (command cmd in commands)
            {
                if (message.ToLower().Contains(cmd.commandString.ToLower()))
                {
                    client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), cmd.response);
                }
            }
            foreach (sfx sfx in sfxes)
            {
                if (message.ToLower().Contains(sfx.commandString))
                {
                    sfx.play();
                }
            }
            foreach (string ct in countersList)
            {
                if (message.ToLower().Contains(ct.ToLower()))
                {
                    List <counter> CTs   = counters.FindAll().ToList();
                    counter        ctOBJ = CTs.Where(counter => message.Contains(counter.commandString.ToLower())).FirstOrDefault();
                    string         count = ctOBJ.increment().ToString();
                    counters.Update(ctOBJ);
                    client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), ctOBJ.textPartA + " " + count + " " + ctOBJ.textPartB);
                }
            }
            if (e.ChatMessage.Message.ToLower().Contains("!stats"))
            {
                string count = "";

                foreach (string ctCommand in countersList)
                {
                    List <counter> CTs   = counters.FindAll().ToList();
                    counter        ctOBJ = CTs.Where(counter => ctCommand.Contains(counter.commandString.ToLower())).FirstOrDefault();
                    count = count + ctOBJ.textPartA + " " + ctOBJ.count.ToString() + " " + ctOBJ.textPartB + "\r\n\r\n";
                }
                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), count);
            }
            if (e.ChatMessage.Message.ToLower().Contains("!quote") && quote)
            {
                var restClient = new RestClient("https://rapidapi.p.rapidapi.com/ai-quotes/0");
                var request    = new RestRequest(Method.GET);
                request.AddHeader("x-rapidapi-key", "5881a49a26mshe388135102c2cebp1a0796jsn99699e24584c");
                request.AddHeader("x-rapidapi-host", "quoteai.p.rapidapi.com");
                IRestResponse response   = restClient.Execute(request);
                List <string> quoteParts = response.Content.Replace("{", "").Split(",").ToList();
                string        quote      = quoteParts[0].Remove(0, quoteParts[0].IndexOf(":")) + " -- " + quoteParts.Find(String => String.Contains("quote")).Remove(0, quoteParts.Find(String => String.Contains("quote")).IndexOf(":"));
                quote = quote.Replace(":", "").Replace("\"", "");
                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), quote);
            }
            if (e.ChatMessage.Message.ToLower().Contains("!temp"))
            {
                string tempString = e.ChatMessage.Message.ToLower().Replace("!temp", "").Replace(" ", "");
                if (tempString.Contains("c"))
                {
                    Int32 T = 0;
                    Int32.TryParse(tempString.Replace("c", ""), out T);
                    T = (int)((T * 1.8) + 32);

                    client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), T + "F");
                }
                else
                {
                    Int32 T = 0;
                    Int32.TryParse(tempString.Replace("f", ""), out T);
                    T = (int)((T - 32) / 1.8);
                    client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), T + "C");
                }
            }
            if (e.ChatMessage.Message.ToLower().Contains("!roll") && dice)
            {
                int result = rand.Next(1, 7);
                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), result.ToString());
            }
            if (e.ChatMessage.Message.ToLower().Contains("!flip") && coin)
            {
                string[] msg    = new string[] { "Heads", "Tails" };
                int      result = rand.Next(0, 2);
                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), msg[result]);
            }
            if (message.ToLower() == "!dad" && dadBool)
            {
                var    libraryName = "ICanHazDadJoke.NET Workbook";
                var    contactUri  = "https://github.com/mattleibow/ICanHazDadJoke.NET";
                var    dadClient   = new DadJokeClient(libraryName, contactUri);
                string joke        = await dadClient.GetRandomJokeStringAsync();

                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), joke);
            }
            if (message.ToLower().Contains("!sj") && !message.ToLower().Contains("!sjreset") && swearJar && message.ToLower().Length > 3)
            {
                List <swearJarAcc> accountsList   = accounts.FindAll().ToList();
                string             userNameToFind = e.ChatMessage.Message.Remove(0, 3).Replace(" ", "");
                swearJarAcc        acc            = accountsList.Where(swearJarAcc => swearJarAcc.useranme == userNameToFind).FirstOrDefault();
                string             owings         = "";
                if (acc == null)
                {
                    acc          = new swearJarAcc();
                    acc.useranme = userNameToFind;
                    acc.owings   = 0;
                    owings       = acc.increment(denomination).ToString();
                    accounts.Insert(acc);
                }
                else
                {
                    owings = acc.increment(denomination).ToString();
                    accounts.Update(acc);
                }



                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), userNameToFind + " ows " + owings + "$ to the swear jar!");
            }
            if (message.ToLower().Contains("!sj") && !message.ToLower().Contains("!sjreset") && swearJar && message.ToLower().Length <= 3)
            {
                List <swearJarAcc> accList = accounts.FindAll().OrderBy(swearJarAcc => swearJarAcc.owings).ToList();
                accList.Reverse();
                string msg = "";
                if (accList.Count > 10)
                {
                    for (int i = 0; i <= 9; i++)
                    {
                        msg += i.ToString() + ". " + accList[i].useranme + ": " + accList[i].owings + Environment.NewLine;
                    }
                }
                else
                {
                    for (int i = 0; i <= accList.Count() - 1; i++)
                    {
                        msg += i.ToString() + ". " + accList[i].useranme + ": " + accList[i].owings + Environment.NewLine;
                    }
                }
                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), msg);
            }
            if (message.ToLower().Contains("!sjreset") && swearJar && isMod)
            {
                List <swearJarAcc> accountsList   = accounts.FindAll().ToList();
                string             userNameToFind = e.ChatMessage.Message.Remove(0, 8).Replace(" ", "").Replace("@", "");
                swearJarAcc        acc            = accountsList.Where(swearJarAcc => swearJarAcc.useranme.Replace("@", "") == userNameToFind).FirstOrDefault();

                if (acc == null)
                {
                    return;
                }
                else
                {
                    acc.reset();
                    accounts.Update(acc);
                }



                client.SendMessage(client.JoinedChannels.Where(JoinedChannel => JoinedChannel.Channel == e.ChatMessage.Channel).FirstOrDefault(), userNameToFind + " ows nothing now!");
            }
        }
Esempio n. 3
0
        static async Task MainAsync(string[] args)
        {
            VulgarBot FuckOff     = new VulgarBot();
            var       libraryName = "dadJokesForOrbitalshocKsDiscord";
            var       contactUri  = "*****@*****.**";
            int       SheffCount  = 0;

            discord = new DiscordClient(new DiscordConfiguration
            {
                Token                 = "NDQ4MDA4NDQxNzk4MTk3MjQ5.DeP4bQ.kcBpbZbpA6FjdvFtsGIkKtdhDwY",
                TokenType             = TokenType.Bot,
                UseInternalLogHandler = true,
                LogLevel              = LogLevel.Debug
            });



            //TW - Leave this here for an example of how solution "listens" for certain phrases that don't use the commands up above.
            discord.MessageCreated += async e =>
            {
                if (e.Message.Content.ToLower().StartsWith("ping"))
                {
                    await e.Message.RespondAsync("pong!");
                }
            };
            //END



            //listen for dad joke request
            discord.MessageCreated += async e =>
            {
                bool DadJokeRequested = e.Message.Content.Contains("Dad Joke", StringComparison.OrdinalIgnoreCase);

                if (DadJokeRequested)
                {
                    //Create a connection to joke site
                    var client = new DadJokeClient(libraryName, contactUri);
                    // getting a dad joke
                    string dadJoke = await client.GetRandomJokeStringAsync();

                    await e.Message.RespondAsync(dadJoke);
                }
            };


            //F**k off generator brahhhhhhhhhh
            discord.MessageCreated += async e =>
            {
                if (e.Message.Author.IsBot)
                {
                    //Do nothing, or it'll make an infinite loop.
                }
                else
                {
                    var random       = new Random();
                    var randomResult = random.Next(1, 1000);
                    Console.WriteLine(randomResult);
                    bool fireMessage = false;
                    if (e.Author.Username.Contains("XLGrandma", StringComparison.OrdinalIgnoreCase))
                    {
                        fireMessage = randomResult >= 600;
                    }
                    else
                    {
                        fireMessage = randomResult >= 900;
                    }
                    if (fireMessage)
                    {
                        var result = await VulgarBot.RandomAsync("Paddle Tennis, Inc.", "a", e.Message.Author.Mention, "slurp", "Bag of Dicks", "Edward Scissorhands", "sad", "bad", "condoms", "English");

                        var trimmedResult = result.Remove(result.Length - 3);
                        await Task.Delay(3000);

                        await e.Message.RespondAsync(trimmedResult);
                    }
                }
            };



            //troll sheff. make him have to do something 3 times haha. increase integer above
            //discord.MessageCreated += async e =>
            //{
            //    if (e.Author.Username.Contains("Orbitalshock", StringComparison.OrdinalIgnoreCase))
            //    {
            //        string lols = LOLSPEAK.GIMIE(e.Message.Content);
            //        await Task.Delay(10000);
            //        await e.Message.RespondAsync("**" + lols.ToUpper() + "**");
            //        //switch (SheffCount)
            //        //{
            //        //    case 0:
            //        //        {
            //        //            await e.Message.RespondAsync($"{e.Author.Mention}, There seems to be something wrong with your monitor. :MasterRace:");
            //        //            SheffCount++;
            //        //            break;
            //        //        }
            //        //    case 1:
            //        //        {
            //        //            await e.Message.RespondAsync($"{e.Author.Mention}, What do 1080P and a garbage truck have in common? They both belong at the dump! :MasterRace:");
            //        //            SheffCount++;
            //        //            break;
            //        //        }
            //        //    default:
            //        //        {
            //        //            break;
            //        //        }

            //        //}
            //    }
            //};



            // super easy example of three VERY common things in c#. this is a very lazy request but will work for most cases. WebClient is something that does a "GET" to an API, among hundreds of other things.
            //Here, i've done a GET to http://api.icndb.com/jokes/random  . The second thing you see is something that is used in countless millions of apps written in c#. it's called Newtonsoft.json  it deserializes json.
            //notice the <> that has dynamic written in it. what this means...is that as long as i spelled it right and put it in the right order.....the c# will assume i know the structure of the json that's being returned. this means i don't have to create a class, or do any code
            // to tell the system what JSON Structure that API will return. navigate to the above link and you'll see what i mean. first there's a value, and under each value is a joke. the reason it is organized this way is you can actually ask for 5 jokes...where each value would have 1 joke attached to it.
            // here is an example of 5 jokes. notice the brackets after the "Value" segment. that denotes that everything after it is 'a child' of the value....similar to how a menu on a website works (i.e Eletronics will have children menu items such as cameras, tvs, home audio, appliances, sex toys, etc.).

            //the httputility.htmldecode gets rid of things like &quot; instead of " that you see in programming when returning something from html.
            discord.MessageCreated += async e =>
            {
                if (e.Message.Content.Contains("chuck", StringComparison.OrdinalIgnoreCase) || e.Message.Content.Contains("norris", StringComparison.OrdinalIgnoreCase))
                {
                    if (e.Message.Author.IsBot)
                    {
                    }
                    else
                    {
                        WebClient chuckClient     = new WebClient();
                        var       chuckRequest    = chuckClient.DownloadString("http://api.icndb.com/jokes/random");
                        var       chuckJokeString = JsonConvert.DeserializeObject <dynamic>(chuckRequest);
                        var       chuckJoke       = chuckJokeString.value.joke;
                        //string chuckJokeFormatted = HttpUtility.HtmlDecode(chuckJoke);
                        await e.Message.RespondAsync($"hah, {chuckJokeString.value.joke}");
                    }



                    //WebClient chuckClient = new WebClient();
                    //var chuckJoke = chuckClient.DownloadString("http://api.icndb.com/jokes/random");
                    //var jokes = JsonConvert.DeserializeObject<dynamic>(chuckJoke);
                    ////var serializer = new json
                    //Console.WriteLine(jokes.value.joke);
                    //var returnableJoke = jokes.value.joke;
                    //await e.Message.RespondAsync($"{returnableJoke}");
                }
            };



            //Registers the commands created above in the Public Class MyCommands section at the very top of solution
            commands = discord.UseCommandsNext(new CommandsNextConfiguration
            {
                StringPrefix = ";;",
            });
            commands.RegisterCommands <MyCommands>();
            await discord.ConnectAsync();

            await Task.Delay(-1);

            //END
        }
Esempio n. 4
0
 public HttpJokes()
 {
     client = new DadJokeClient("UWC Demo");
 }